diff --git a/.github/actions/warmup-remotejson-cache/action.yml b/.github/actions/warmup-remotejson-cache/action.yml index 04d039c68f05..5686fb2a0c94 100644 --- a/.github/actions/warmup-remotejson-cache/action.yml +++ b/.github/actions/warmup-remotejson-cache/action.yml @@ -33,7 +33,7 @@ runs: - name: Run script if: ${{ inputs.restore-only == '' }} shell: bash - run: node src/archives/scripts/warmup-remotejson.js + run: npm run warmup-remotejson - name: Cache .remotejson-cache (save) if: ${{ inputs.restore-only == '' }} diff --git a/.github/workflows/purge-old-workflow-runs.yml b/.github/workflows/purge-old-workflow-runs.yml index 86d911c7b5af..07561b6e5025 100644 --- a/.github/workflows/purge-old-workflow-runs.yml +++ b/.github/workflows/purge-old-workflow-runs.yml @@ -7,7 +7,7 @@ name: Purge old workflow runs on: workflow_dispatch: schedule: - - cron: '20 */2 * * *' # Run every 2 hours at 20 minutes past the hour + - cron: '20 * * * *' # Run every hour at 20 minutes past the hour permissions: contents: write diff --git a/.github/workflows/validate-asset-images.yml b/.github/workflows/validate-asset-images.yml index 22dd39e7a868..2b3898025d0d 100644 --- a/.github/workflows/validate-asset-images.yml +++ b/.github/workflows/validate-asset-images.yml @@ -1,6 +1,6 @@ name: Validate asset images -# **What it does**: Run ./src/assets/scripts/validate-asset-images.js on all images in assets/ +# **What it does**: Run ./src/assets/scripts/validate-asset-images.ts on all images in assets/ # **Why we have it**: To protect from innocent and potentially malicious bad image assets # **Who does it impact**: Docs content. diff --git a/assets/images/copilot-landing/debugging_invalid_json.png b/assets/images/copilot-landing/debugging_invalid_json.png new file mode 100644 index 000000000000..0883112cbb15 Binary files /dev/null and b/assets/images/copilot-landing/debugging_invalid_json.png differ diff --git a/assets/images/copilot-landing/generating_unit_tests.png b/assets/images/copilot-landing/generating_unit_tests.png new file mode 100644 index 000000000000..3ad2adafa74c Binary files /dev/null and b/assets/images/copilot-landing/generating_unit_tests.png differ diff --git a/assets/images/copilot-landing/improving_code_readability.png b/assets/images/copilot-landing/improving_code_readability.png new file mode 100644 index 000000000000..37e4b01f5f1f Binary files /dev/null and b/assets/images/copilot-landing/improving_code_readability.png differ diff --git a/assets/images/help/2fa/filter-enterprise-members-by-2fa.png b/assets/images/help/2fa/filter-enterprise-members-by-2fa.png new file mode 100644 index 000000000000..a64f84749754 Binary files /dev/null and b/assets/images/help/2fa/filter-enterprise-members-by-2fa.png differ diff --git a/assets/images/help/2fa/filter-org-members-by-2fa.png b/assets/images/help/2fa/filter-org-members-by-2fa.png index d9c9a66babff..70752c1f5a3b 100644 Binary files a/assets/images/help/2fa/filter-org-members-by-2fa.png and b/assets/images/help/2fa/filter-org-members-by-2fa.png differ diff --git a/assets/images/help/2fa/legacy-filter-org-collaborators-by-2fa.png b/assets/images/help/2fa/legacy-filter-org-collaborators-by-2fa.png new file mode 100644 index 000000000000..db309c221a6c Binary files /dev/null and b/assets/images/help/2fa/legacy-filter-org-collaborators-by-2fa.png differ diff --git a/assets/images/help/2fa/legacy-filter-org-members-by-2fa.png b/assets/images/help/2fa/legacy-filter-org-members-by-2fa.png new file mode 100644 index 000000000000..d9c9a66babff Binary files /dev/null and b/assets/images/help/2fa/legacy-filter-org-members-by-2fa.png differ diff --git a/content/account-and-profile/managing-subscriptions-and-notifications-on-github/viewing-and-triaging-notifications/managing-notifications-from-your-inbox.md b/content/account-and-profile/managing-subscriptions-and-notifications-on-github/viewing-and-triaging-notifications/managing-notifications-from-your-inbox.md index 7e4ac4f03df9..3f9bb01375a3 100644 --- a/content/account-and-profile/managing-subscriptions-and-notifications-on-github/viewing-and-triaging-notifications/managing-notifications-from-your-inbox.md +++ b/content/account-and-profile/managing-subscriptions-and-notifications-on-github/viewing-and-triaging-notifications/managing-notifications-from-your-inbox.md @@ -92,7 +92,7 @@ To add a `repo:` filter, you must include the owner of the repository in the que ### Supported `is:` queries -To filter notifications for specific activity on {% data variables.product.prodname_dotcom %}, you can use the `is` query. For example, to only see repository invitation updates, use `is:repository-invitation`, and to only see {% data variables.product.prodname_dependabot_alerts %}, use `is:repository-vulnerability-alert`. +To filter notifications for specific activity on {% data variables.product.prodname_dotcom %}, you can use the `is` query. For example, to only see repository invitation updates, use `is:repository-invitation`, and to only see {% data variables.product.prodname_dependabot_alerts %}, use `is:repository-vulnerability-alert`. * `is:check-suite` * `is:commit` @@ -141,7 +141,7 @@ To filter notifications by user, you can use the `author:` query. An author is t ### Supported `org:` queries -To filter notifications by organization, you can use the `org` query. The organization you need to specify in the query is the organization of the repository for which you are being notified on {% data variables.product.prodname_dotcom %}. This query is useful if you belong to several organizations, and want to see notifications for a specific organization. +To filter notifications by organization, you can use the `org` query. The organization you need to specify in the query is the organization of the repository for which you are being notified on {% data variables.product.prodname_dotcom %}. This query is useful if you belong to several organizations, and want to see notifications for a specific organization. For example, to see notifications from the octo-org organization, use `org:octo-org`. diff --git a/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/pinning-items-to-your-profile.md b/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/pinning-items-to-your-profile.md index daedc642629d..7f6202df71d0 100644 --- a/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/pinning-items-to-your-profile.md +++ b/content/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/pinning-items-to-your-profile.md @@ -20,7 +20,7 @@ You can pin any public gist you own. Pinned items include important information about the item, like the number of stars a repository has received or the first few lines of a gist. Once you pin items to your profile, the "Pinned" section replaces the "Popular repositories" section on your profile. -You can reorder the items in the "Pinned" section. In the upper-right corner of a pin, click {% octicon "grabber" aria-label="The grabber symbol" %} and drag the pin to a new location. +You can reorder the items in the "Pinned" section. In the upper-right corner of a pin, click {% octicon "grabber" aria-label="The grabber symbol" %} and drag the pin to a new location. {% data reusables.profile.access_profile %} 1. At the top of the "Popular repositories" or "Pinned" section, click **Customize your pins**. diff --git a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/managing-multiple-accounts.md b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/managing-multiple-accounts.md index 16ded05d0c51..d8fee3ffb078 100644 --- a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/managing-multiple-accounts.md +++ b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/managing-multiple-accounts.md @@ -14,7 +14,7 @@ shortTitle: Manage multiple accounts In some cases, you may need to use multiple accounts on {% data variables.product.github %}. For example, you may have a personal account for open source contributions, and your employer may also create and manage a user account for you within an enterprise. -You cannot use a {% data variables.enterprise.prodname_managed_user %} to contribute to public projects on {% data variables.location.product_location %}, so you must contribute to those resources using your personal account. For more information, see "[About {% data variables.product.prodname_emus %}]({% ifversion fpt %}/enterprise-cloud@latest{% endif %}/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users#abilities-and-restrictions-of-managed-user-accounts){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% elsif ghec %}."{% endif %} +You cannot use a {% data variables.enterprise.prodname_managed_user %} to contribute to public projects on {% data variables.location.product_location %}, so you must contribute to those resources using your personal account. For more information, see "[About {% data variables.product.prodname_emus %}]({% ifversion fpt %}/enterprise-cloud@latest{% endif %}/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users#abilities-and-restrictions-of-managed-user-accounts){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% elsif ghec %}."{% endif %} {% ifversion account-switcher %} diff --git a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/merging-multiple-personal-accounts.md b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/merging-multiple-personal-accounts.md index f460aa00995b..e88ac09cfe7d 100644 --- a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/merging-multiple-personal-accounts.md +++ b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/merging-multiple-personal-accounts.md @@ -17,13 +17,14 @@ topics: shortTitle: Merge multiple accounts --- -> [!TIP] {% ifversion ghec %} +> [!TIP] > {% data variables.product.prodname_emus %} allow an enterprise to provision unique personal accounts for its members through an identity provider (IdP). For more information, see "[AUTOTITLE](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users)." For other use cases, we recommend using only one personal account to manage both personal and professional repositories. {% else %} +> [!TIP] > We recommend using only one personal account to manage both personal and professional repositories. {% endif %} diff --git a/content/actions/about-github-actions/understanding-github-actions.md b/content/actions/about-github-actions/understanding-github-actions.md index 28869a32e6ad..0ebe9f67e911 100644 --- a/content/actions/about-github-actions/understanding-github-actions.md +++ b/content/actions/about-github-actions/understanding-github-actions.md @@ -23,7 +23,7 @@ topics: ## Overview -{% data reusables.actions.about-actions %} You can create workflows that build and test every pull request to your repository, or deploy merged pull requests to production. +{% data reusables.actions.about-actions %} You can create workflows that build and test every pull request to your repository, or deploy merged pull requests to production. {% data variables.product.prodname_actions %} goes beyond just DevOps and lets you run workflows when other events happen in your repository. For example, you can run a workflow to automatically add the appropriate labels whenever someone creates a new issue in your repository. @@ -45,7 +45,7 @@ For more information about introducing {% data variables.product.prodname_action ## The components of {% data variables.product.prodname_actions %} -You can configure a {% data variables.product.prodname_actions %} **workflow** to be triggered when an **event** occurs in your repository, such as a pull request being opened or an issue being created. Your workflow contains one or more **jobs** which can run in sequential order or in parallel. Each job will run inside its own virtual machine **runner**, or inside a container, and has one or more **steps** that either run a script that you define or run an **action**, which is a reusable extension that can simplify your workflow. +You can configure a {% data variables.product.prodname_actions %} **workflow** to be triggered when an **event** occurs in your repository, such as a pull request being opened or an issue being created. Your workflow contains one or more **jobs** which can run in sequential order or in parallel. Each job will run inside its own virtual machine **runner**, or inside a container, and has one or more **steps** that either run a script that you define or run an **action**, which is a reusable extension that can simplify your workflow. ![Diagram of an event triggering Runner 1 to run Job 1, which triggers Runner 2 to run Job 2. Each of the jobs is broken into multiple steps.](/assets/images/help/actions/overview-actions-simple.png) @@ -59,15 +59,15 @@ For more information, see "[AUTOTITLE](/actions/using-workflows)." ### Events -An **event** is a specific activity in a repository that triggers a **workflow** run. For example, an activity can originate from {% data variables.product.prodname_dotcom %} when someone creates a pull request, opens an issue, or pushes a commit to a repository. You can also trigger a workflow to run on a [schedule](/actions/using-workflows/events-that-trigger-workflows#schedule), by [posting to a REST API](/rest/repos/repos#create-a-repository-dispatch-event), or manually. +An **event** is a specific activity in a repository that triggers a **workflow** run. For example, an activity can originate from {% data variables.product.prodname_dotcom %} when someone creates a pull request, opens an issue, or pushes a commit to a repository. You can also trigger a workflow to run on a [schedule](/actions/using-workflows/events-that-trigger-workflows#schedule), by [posting to a REST API](/rest/repos/repos#create-a-repository-dispatch-event), or manually. For a complete list of events that can be used to trigger workflows, see [Events that trigger workflows](/actions/using-workflows/events-that-trigger-workflows). ### Jobs -A **job** is a set of **steps** in a workflow that is executed on the same **runner**. Each step is either a shell script that will be executed, or an **action** that will be run. Steps are executed in order and are dependent on each other. Since each step is executed on the same runner, you can share data from one step to another. For example, you can have a step that builds your application followed by a step that tests the application that was built. +A **job** is a set of **steps** in a workflow that is executed on the same **runner**. Each step is either a shell script that will be executed, or an **action** that will be run. Steps are executed in order and are dependent on each other. Since each step is executed on the same runner, you can share data from one step to another. For example, you can have a step that builds your application followed by a step that tests the application that was built. -You can configure a job's dependencies with other jobs; by default, jobs have no dependencies and run in parallel. When a job takes a dependency on another job, it waits for the dependent job to complete before running. +You can configure a job's dependencies with other jobs; by default, jobs have no dependencies and run in parallel. When a job takes a dependency on another job, it waits for the dependent job to complete before running. For example, you might configure multiple build jobs for different architectures without any job dependencies and a packaging job that depends on those builds. The build jobs run in parallel, and once they complete successfully, the packaging job runs. @@ -75,7 +75,7 @@ For more information, see "[AUTOTITLE](/actions/using-jobs)." ### Actions -An **action** is a custom application for the {% data variables.product.prodname_actions %} platform that performs a complex but frequently repeated task. Use an action to help reduce the amount of repetitive code that you write in your **workflow** files. An action can pull your Git repository from {% data variables.product.prodname_dotcom %}, set up the correct toolchain for your build environment, or set up the authentication to your cloud provider. +An **action** is a custom application for the {% data variables.product.prodname_actions %} platform that performs a complex but frequently repeated task. Use an action to help reduce the amount of repetitive code that you write in your **workflow** files. An action can pull your Git repository from {% data variables.product.prodname_dotcom %}, set up the correct toolchain for your build environment, or set up the authentication to your cloud provider. You can write your own actions, or you can find actions to use in your workflows in the {% data variables.product.prodname_marketplace %}. diff --git a/content/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/about-actions-runner-controller.md b/content/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/about-actions-runner-controller.md index e2d09ce4b49a..19921124c34d 100644 --- a/content/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/about-actions-runner-controller.md +++ b/content/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/about-actions-runner-controller.md @@ -130,7 +130,7 @@ RUN adduser --disabled-password --gecos "" --uid 1001 runner \ && groupadd docker --gid 123 \ && usermod -aG sudo runner \ && usermod -aG docker runner \ - && echo "%sudo ALL=(ALL:ALL) NOPASSWD:ALL" > /etc/sudoers \ + && echo "%sudo ALL=(ALL:ALL) NOPASSWD:ALL" > /etc/sudoers \ && echo "Defaults env_keep += \"DEBIAN_FRONTEND\"" >> /etc/sudoers WORKDIR /home/runner diff --git a/content/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/deploying-runner-scale-sets-with-actions-runner-controller.md b/content/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/deploying-runner-scale-sets-with-actions-runner-controller.md index beaa3629a3e7..2775d46f2d13 100644 --- a/content/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/deploying-runner-scale-sets-with-actions-runner-controller.md +++ b/content/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/deploying-runner-scale-sets-with-actions-runner-controller.md @@ -614,7 +614,7 @@ minRunners: 0 runnerGroup: "my-custom-runner-group" -## name of the runner scale set to create. Defaults to the helm release name +## name of the runner scale set to create. Defaults to the helm release name runnerScaleSetName: "my-awesome-scale-set" ## template is the PodSpec for each runner Pod @@ -639,7 +639,7 @@ template: echo 'runner:x:1001:1001:runner:/home/runner:/bin/ash' >> /dind-etc/passwd echo 'runner:x:1001:' >> /dind-etc/group echo 'runner:100000:65536' >> /dind-etc/subgid - echo 'runner:100000:65536' >> /dind-etc/subuid + echo 'runner:100000:65536' >> /dind-etc/subuid chmod 755 /dind-etc; chmod u=rwx,g=rx+s,o=rx /dind-home chown 1001:1001 /dind-home @@ -716,7 +716,7 @@ minRunners: 0 runnerGroup: "my-custom-runner-group" -## name of the runner scale set to create. Defaults to the helm release name +## name of the runner scale set to create. Defaults to the helm release name runnerScaleSetName: "my-awesome-scale-set" ## template is the PodSpec for each runner Pod @@ -741,7 +741,7 @@ template: echo 'runner:x:1001:1001:runner:/home/runner:/bin/ash' >> /dind-etc/passwd echo 'runner:x:1001:' >> /dind-etc/group echo 'runner:100000:65536' >> /dind-etc/subgid - echo 'runner:100000:65536' >> /dind-etc/subuid + echo 'runner:100000:65536' >> /dind-etc/subuid chmod 755 /dind-etc; chmod u=rwx,g=rx+s,o=rx /dind-home chown 1001:1001 /dind-home diff --git a/content/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/using-actions-runner-controller-runners-in-a-workflow.md b/content/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/using-actions-runner-controller-runners-in-a-workflow.md index 555cafc25017..c189e93f7c59 100644 --- a/content/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/using-actions-runner-controller-runners-in-a-workflow.md +++ b/content/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/using-actions-runner-controller-runners-in-a-workflow.md @@ -34,7 +34,7 @@ helm install "${INSTALLATION_NAME}" \ oci://ghcr.io/actions/actions-runner-controller-charts/gha-runner-scale-set ``` -To use this configuration in a workflow, set the value of the `runs-on` key in your workflow to `arc-runner-set`, similar to the following example. +To use this configuration in a workflow, set the value of the `runs-on` key in your workflow to `arc-runner-set`, similar to the following example. ```yaml jobs: diff --git a/content/actions/hosting-your-own-runners/managing-self-hosted-runners/adding-self-hosted-runners.md b/content/actions/hosting-your-own-runners/managing-self-hosted-runners/adding-self-hosted-runners.md index a57269ea0904..7ee1b2a0df0a 100644 --- a/content/actions/hosting-your-own-runners/managing-self-hosted-runners/adding-self-hosted-runners.md +++ b/content/actions/hosting-your-own-runners/managing-self-hosted-runners/adding-self-hosted-runners.md @@ -84,7 +84,7 @@ New runners are assigned to the default group. You can modify the runner's group {% ifversion ghec or ghes %} -To add a self-hosted runner to an enterprise, you must be an enterprise owner. For information about how to add a self-hosted runner with the REST API, see the enterprise endpoints in the [{% data variables.product.prodname_actions %} REST API](/rest/actions/self-hosted-runners). +To add a self-hosted runner to an enterprise, you must be an enterprise owner. For information about how to add a self-hosted runner with the REST API, see the enterprise endpoints in the [{% data variables.product.prodname_actions %} REST API](/rest/actions/self-hosted-runners). {% endif %} diff --git a/content/actions/hosting-your-own-runners/managing-self-hosted-runners/autoscaling-with-self-hosted-runners.md b/content/actions/hosting-your-own-runners/managing-self-hosted-runners/autoscaling-with-self-hosted-runners.md index 2b076c487c11..07379ef4f219 100644 --- a/content/actions/hosting-your-own-runners/managing-self-hosted-runners/autoscaling-with-self-hosted-runners.md +++ b/content/actions/hosting-your-own-runners/managing-self-hosted-runners/autoscaling-with-self-hosted-runners.md @@ -15,7 +15,7 @@ type: overview ## About autoscaling -You can automatically increase or decrease the number of self-hosted runners in your environment in response to the webhook events you receive with a particular label. For example, you can create automation that adds a new self-hosted runner each time you receive a [`workflow_job`](/webhooks-and-events/webhooks/webhook-events-and-payloads#workflow_job) webhook event with the [`queued`](/webhooks-and-events/webhooks/webhook-events-and-payloads#workflow_job) activity, which notifies you that a new job is ready for processing. The webhook payload includes label data, so you can identify the type of runner the job is requesting. Once the job has finished, you can then create automation that removes the runner in response to the `workflow_job` [`completed`](/webhooks-and-events/webhooks/webhook-events-and-payloads#workflow_job) activity. +You can automatically increase or decrease the number of self-hosted runners in your environment in response to the webhook events you receive with a particular label. For example, you can create automation that adds a new self-hosted runner each time you receive a [`workflow_job`](/webhooks-and-events/webhooks/webhook-events-and-payloads#workflow_job) webhook event with the [`queued`](/webhooks-and-events/webhooks/webhook-events-and-payloads#workflow_job) activity, which notifies you that a new job is ready for processing. The webhook payload includes label data, so you can identify the type of runner the job is requesting. Once the job has finished, you can then create automation that removes the runner in response to the `workflow_job` [`completed`](/webhooks-and-events/webhooks/webhook-events-and-payloads#workflow_job) activity. ## Supported autoscaling solutions @@ -56,7 +56,7 @@ Alternatively, you can create ephemeral, just-in-time runners using the REST API ## Controlling runner software updates on self-hosted runners -By default, self-hosted runners will automatically perform a software update whenever a new version of the runner software is available. If you use ephemeral runners in containers then this can lead to repeated software updates when a new runner version is released. Turning off automatic updates allows you to update the runner version on the container image directly on your own schedule. +By default, self-hosted runners will automatically perform a software update whenever a new version of the runner software is available. If you use ephemeral runners in containers then this can lead to repeated software updates when a new runner version is released. Turning off automatic updates allows you to update the runner version on the container image directly on your own schedule. To turn off automatic software updates and install software updates yourself, specify the `--disableupdate` flag when registering your runner using `config.sh`. For example: @@ -64,13 +64,13 @@ To turn off automatic software updates and install software updates yourself, sp ./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. +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. -If you disable automatic updates, you will be required to update your runner version within 30 days of a new version being made available. You may want to subscribe to notifications for releases in the [`actions/runner` repository](https://github.com/actions/runner/releases). For more information, see "[AUTOTITLE](/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications#about-custom-notifications)." +If you disable automatic updates, you will be required to update your runner version within 30 days of a new version being made available. You may want to subscribe to notifications for releases in the [`actions/runner` repository](https://github.com/actions/runner/releases). For more information, see "[AUTOTITLE](/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications#about-custom-notifications)." For instructions on how to install the latest runner version, see the installation instructions for [the latest release](https://github.com/actions/runner/releases). ->[!WARNING] Any updates released for the software, including major, minor or patch releases, are considered as an available update. If you do not perform a software update within 30 days, the {% data variables.product.prodname_actions %} service will not queue jobs to your runner. In addition, if a critical security update is required, the {% data variables.product.prodname_actions %} service will not queue jobs to your runner until it has been updated. +>[!WARNING] Any updates released for the software, including major, minor or patch releases, are considered as an available update. If you do not perform a software update within 30 days, the {% data variables.product.prodname_actions %} service will not queue jobs to your runner. In addition, if a critical security update is required, the {% data variables.product.prodname_actions %} service will not queue jobs to your runner until it has been updated. ## Using webhooks for autoscaling @@ -89,7 +89,7 @@ Your access token will require the following scope: * For public repositories, use an access token with the [`public_repo` scope](/apps/oauth-apps/building-oauth-apps/scopes-for-oauth-apps#available-scopes). * For organizations, use an access token with the [`admin:org` scope](/apps/oauth-apps/building-oauth-apps/scopes-for-oauth-apps#available-scopes). -To authenticate using a {% data variables.product.prodname_dotcom %} App, it must be assigned the following permissions: +To authenticate using a {% data variables.product.prodname_dotcom %} App, it must be assigned the following permissions: * For repositories, assign the `administration` permission. * For organizations, assign the `organization_self_hosted_runners` permission. diff --git a/content/actions/hosting-your-own-runners/managing-self-hosted-runners/configuring-the-self-hosted-runner-application-as-a-service.md b/content/actions/hosting-your-own-runners/managing-self-hosted-runners/configuring-the-self-hosted-runner-application-as-a-service.md index 3501ace620e4..dd47abb03c49 100644 --- a/content/actions/hosting-your-own-runners/managing-self-hosted-runners/configuring-the-self-hosted-runner-application-as-a-service.md +++ b/content/actions/hosting-your-own-runners/managing-self-hosted-runners/configuring-the-self-hosted-runner-application-as-a-service.md @@ -141,7 +141,7 @@ Get-Service "{{ service_win_name }}" {% endmac %} - For more information on viewing the status of your self-hosted runner, see "[AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/monitoring-and-troubleshooting-self-hosted-runners)." + For more information on viewing the status of your self-hosted runner, see "[AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/monitoring-and-troubleshooting-self-hosted-runners)." ## Stopping the service diff --git a/content/actions/hosting-your-own-runners/managing-self-hosted-runners/customizing-the-containers-used-by-jobs.md b/content/actions/hosting-your-own-runners/managing-self-hosted-runners/customizing-the-containers-used-by-jobs.md index c526b3cefb97..82a9ec964145 100644 --- a/content/actions/hosting-your-own-runners/managing-self-hosted-runners/customizing-the-containers-used-by-jobs.md +++ b/content/actions/hosting-your-own-runners/managing-self-hosted-runners/customizing-the-containers-used-by-jobs.md @@ -72,7 +72,7 @@ The `prepare_job` command is called when a job is started. {% data variables.pro * `services`: **Optional**. An array of service containers to spin up. * `contextName`: **Required**. The name of the service in the Job context. * `image`: **Required**. A string containing the Docker image. - * `createOptions`: **Optional**. The optional _create_ options specified in the YAML. For more information, see "[AUTOTITLE](/actions/using-jobs/running-jobs-in-a-container#example-running-a-job-within-a-container)." + * `createOptions`: **Optional**. The optional _create_ options specified in the YAML. For more information, see "[AUTOTITLE](/actions/using-jobs/running-jobs-in-a-container#example-running-a-job-within-a-container)." * `environmentVariables`: **Optional**. Sets a map of key environment variables. * `userMountVolumes`: **Optional**. An array of mounts to mount into the container, same fields as above. * `sourceVolumePath`: **Required**. The source path to the volume that will be mounted into the Docker container. diff --git a/content/actions/hosting-your-own-runners/managing-self-hosted-runners/monitoring-and-troubleshooting-self-hosted-runners.md b/content/actions/hosting-your-own-runners/managing-self-hosted-runners/monitoring-and-troubleshooting-self-hosted-runners.md index 9bcc24b35bd2..4609a8f32a8b 100644 --- a/content/actions/hosting-your-own-runners/managing-self-hosted-runners/monitoring-and-troubleshooting-self-hosted-runners.md +++ b/content/actions/hosting-your-own-runners/managing-self-hosted-runners/monitoring-and-troubleshooting-self-hosted-runners.md @@ -76,9 +76,9 @@ If you have any failing checks, you should also verify that your self-hosted run ### Disabling TLS certificate verification {% ifversion ghes %} -By default, the self-hosted runner application verifies the TLS certificate for {% data variables.product.product_name %}. If your {% data variables.product.product_name %} has a self-signed or internally-issued certificate, you may wish to disable TLS certificate verification for testing purposes. +By default, the self-hosted runner application verifies the TLS certificate for {% data variables.product.product_name %}. If your {% data variables.product.product_name %} has a self-signed or internally-issued certificate, you may wish to disable TLS certificate verification for testing purposes. {% else %} -By default, the self-hosted runner application verifies the TLS certificate for {% data variables.product.product_name %}. If you encounter network problems, you may wish to disable TLS certificate verification for testing purposes. +By default, the self-hosted runner application verifies the TLS certificate for {% data variables.product.product_name %}. If you encounter network problems, you may wish to disable TLS certificate verification for testing purposes. {% endif %} To disable TLS certification verification in the self-hosted runner application, set the `GITHUB_ACTIONS_RUNNER_TLS_NO_VERIFY` environment variable to `1` before configuring and running the self-hosted runner application. diff --git a/content/actions/hosting-your-own-runners/managing-self-hosted-runners/running-scripts-before-or-after-a-job.md b/content/actions/hosting-your-own-runners/managing-self-hosted-runners/running-scripts-before-or-after-a-job.md index 9fd6434d4b7d..3271e1b15a1d 100644 --- a/content/actions/hosting-your-own-runners/managing-self-hosted-runners/running-scripts-before-or-after-a-job.md +++ b/content/actions/hosting-your-own-runners/managing-self-hosted-runners/running-scripts-before-or-after-a-job.md @@ -24,7 +24,7 @@ The following scripting languages are supported: Your custom scripts can use the following features: -* **Variables**: Scripts have access to the default variables. The full webhook event payload can be found in `GITHUB_EVENT_PATH`. For more information, see "[AUTOTITLE](/actions/learn-github-actions/variables#default-environment-variables)." +* **Variables**: Scripts have access to the default variables. The full webhook event payload can be found in `GITHUB_EVENT_PATH`. For more information, see "[AUTOTITLE](/actions/learn-github-actions/variables#default-environment-variables)." * **Workflow commands**: Scripts can use workflow commands. For more information, see "[AUTOTITLE](/actions/using-workflows/workflow-commands-for-github-actions)". Scripts can also use environment files. For more information, see [Environment files](/actions/using-workflows/workflow-commands-for-github-actions#environment-files). Your script files must use a file extension for the relevant language, such as `.sh` or `.ps1`, in order to run successfully. diff --git a/content/actions/managing-workflow-runs-and-deployments/managing-deployments/managing-environments-for-deployment.md b/content/actions/managing-workflow-runs-and-deployments/managing-deployments/managing-environments-for-deployment.md index c40bd9e80165..6774d27239c0 100644 --- a/content/actions/managing-workflow-runs-and-deployments/managing-deployments/managing-environments-for-deployment.md +++ b/content/actions/managing-workflow-runs-and-deployments/managing-deployments/managing-environments-for-deployment.md @@ -208,7 +208,7 @@ Variables stored in an environment are only available to workflow jobs that refe 1. Optionally, specify what branches{% ifversion deployment-protections-tag-patterns %} and tags{% endif %} can deploy to this environment. For more information, see "[Deployment branches{% ifversion deployment-protections-tag-patterns %} and tags{% endif %}](/actions/deployment/targeting-different-environments/managing-environments-for-deployment#deployment-branches{% ifversion deployment-protections-tag-patterns %}-and-tags{% endif %})." 1. Select the desired option in the **Deployment branches** dropdown. 1. If you chose **Selected branches{% ifversion deployment-protections-tag-patterns %} and tags{% endif %}**, to add a new rule, click **Add deployment branch{% ifversion deployment-protections-tag-patterns %} or tag{% endif %} rule** - {% ifversion deployment-protections-tag-patterns %}1. In the "Ref type" dropdown menu, depending on what rule you want to apply, click **{% octicon "git-branch" aria-label="The branch icon" %} Branch** or **{% octicon "tag" aria-label="The tag icon" %} Tag**.{% endif %} + {% ifversion deployment-protections-tag-patterns %}1. In the "Ref type" dropdown menu, depending on what rule you want to apply, click **{% octicon "git-branch" aria-hidden="true" %} Branch** or **{% octicon "tag" aria-hidden="true" %} Tag**.{% endif %} 1. Enter the name pattern for the branch{% ifversion deployment-protections-tag-patterns %} or tag{% endif %} that you want to allow. {% ifversion deployment-protections-tag-patterns %} diff --git a/content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/canceling-a-workflow.md b/content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/canceling-a-workflow.md index 6a3a6d2bd0e3..3fd15aba279d 100644 --- a/content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/canceling-a-workflow.md +++ b/content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/canceling-a-workflow.md @@ -29,6 +29,6 @@ When canceling workflow run, you may be running other software that uses resourc 1. To cancel the workflow run, the server re-evaluates `if` conditions for all currently running jobs. If the condition evaluates to `true`, the job will not get canceled. For example, the condition `if: always()` would evaluate to true and the job continues to run. When there is no condition, that is the equivalent of the condition `if: success()`, which only runs if the previous step finished successfully. 1. For jobs that need to be canceled, the server sends a cancellation message to all the runner machines with jobs that need to be canceled. -1. For jobs that continue to run, the server re-evaluates `if` conditions for the unfinished steps. If the condition evaluates to `true`, the step continues to run. You can use the `cancelled` expression to apply a status check of `cancelled()`. For more information see "[AUTOTITLE](/actions/learn-github-actions/expressions#cancelled)." +1. For jobs that continue to run, the server re-evaluates `if` conditions for the unfinished steps. If the condition evaluates to `true`, the step continues to run. You can use the `cancelled` expression to apply a status check of `cancelled()`. For more information see "[AUTOTITLE](/actions/learn-github-actions/expressions#cancelled)." 1. For steps that need to be canceled, the runner machine sends `SIGINT/Ctrl-C` to the step's entry process (`node` for javascript action, `docker` for container action, and `bash/cmd/pwd` when using `run` in a step). If the process doesn't exit within 7500 ms, the runner will send `SIGTERM/Ctrl-Break` to the process, then wait for 2500 ms for the process to exit. If the process is still running, the runner kills the process tree. 1. After the 5 minutes cancellation timeout period, the server will force terminate all jobs and steps that don't finish running or fail to complete the cancellation process. diff --git a/content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/re-running-workflows-and-jobs.md b/content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/re-running-workflows-and-jobs.md index 5bc42b8cb014..be243501d625 100644 --- a/content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/re-running-workflows-and-jobs.md +++ b/content/actions/managing-workflow-runs-and-deployments/managing-workflow-runs/re-running-workflows-and-jobs.md @@ -40,7 +40,7 @@ Re-running a workflow{% ifversion re-run-jobs %} or jobs in a workflow{% endif % {% data reusables.cli.cli-learn-more %} -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. +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 diff --git a/content/actions/migrating-to-github-actions/manually-migrating-to-github-actions/migrating-from-gitlab-cicd-to-github-actions.md b/content/actions/migrating-to-github-actions/manually-migrating-to-github-actions/migrating-from-gitlab-cicd-to-github-actions.md index 2623cc2f56f0..92a986e45b73 100644 --- a/content/actions/migrating-to-github-actions/manually-migrating-to-github-actions/migrating-from-gitlab-cicd-to-github-actions.md +++ b/content/actions/migrating-to-github-actions/manually-migrating-to-github-actions/migrating-from-gitlab-cicd-to-github-actions.md @@ -377,7 +377,7 @@ container-job: {% endraw %} -### {% data variables.product.prodname_actions %} syntax for databases and service containers +### {% data variables.product.prodname_actions %} syntax for databases and service containers ```yaml jobs: diff --git a/content/actions/migrating-to-github-actions/manually-migrating-to-github-actions/migrating-from-travis-ci-to-github-actions.md b/content/actions/migrating-to-github-actions/manually-migrating-to-github-actions/migrating-from-travis-ci-to-github-actions.md index 887755233f7d..bdf3b939a74b 100644 --- a/content/actions/migrating-to-github-actions/manually-migrating-to-github-actions/migrating-from-travis-ci-to-github-actions.md +++ b/content/actions/migrating-to-github-actions/manually-migrating-to-github-actions/migrating-from-travis-ci-to-github-actions.md @@ -214,7 +214,7 @@ When migrating to {% data variables.product.prodname_actions %}, there are diffe ### Job error handling -{% data variables.product.prodname_actions %} uses `if` conditionals to execute jobs or steps in certain situations. For example, you can run a step when another step results in a `failure()`. For more information, see "[AUTOTITLE](/actions/using-workflows/workflow-syntax-for-github-actions#example-using-status-check-functions)." You can also use [`continue-on-error`](/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idcontinue-on-error) to prevent a workflow run from stopping when a job fails. +{% data variables.product.prodname_actions %} uses `if` conditionals to execute jobs or steps in certain situations. For example, you can run a step when another step results in a `failure()`. For more information, see "[AUTOTITLE](/actions/using-workflows/workflow-syntax-for-github-actions#example-using-status-check-functions)." You can also use [`continue-on-error`](/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idcontinue-on-error) to prevent a workflow run from stopping when a job fails. ## Migrating syntax for conditionals and expressions @@ -355,4 +355,4 @@ jobs: ## Next steps -To continue learning about the main features of {% data variables.product.prodname_actions %}, see "[AUTOTITLE](/actions/learn-github-actions)." +To continue learning about the main features of {% data variables.product.prodname_actions %}, see "[AUTOTITLE](/actions/learn-github-actions)." diff --git a/content/actions/migrating-to-github-actions/using-github-actions-importer-to-automate-migrations/migrating-from-azure-devops-with-github-actions-importer.md b/content/actions/migrating-to-github-actions/using-github-actions-importer-to-automate-migrations/migrating-from-azure-devops-with-github-actions-importer.md index 7656ccaa8001..f74cc20321bd 100644 --- a/content/actions/migrating-to-github-actions/using-github-actions-importer-to-automate-migrations/migrating-from-azure-devops-with-github-actions-importer.md +++ b/content/actions/migrating-to-github-actions/using-github-actions-importer-to-automate-migrations/migrating-from-azure-devops-with-github-actions-importer.md @@ -344,7 +344,7 @@ composite_actions: You can use this file to specify which repository and ref a reusable workflow or composite action should be added to. You can then use the `--config-file-path` argument to provide the `config.yml` file to {% data variables.product.prodname_actions_importer %}. For example, you can use this file when running a `migrate` command to open a pull request for each unique repository defined in the config file: ```shell -gh actions-importer migrate azure-devops pipeline --config-file-path config.yml --target-url https://github.com/my-org/my-repo +gh actions-importer migrate azure-devops pipeline --config-file-path config.yml --target-url https://github.com/my-org/my-repo ``` ### Supported syntax for Azure DevOps pipelines diff --git a/content/actions/migrating-to-github-actions/using-github-actions-importer-to-automate-migrations/migrating-from-bamboo-with-github-actions-importer.md b/content/actions/migrating-to-github-actions/using-github-actions-importer-to-automate-migrations/migrating-from-bamboo-with-github-actions-importer.md index edeb53ce93f9..6a358f7b635d 100644 --- a/content/actions/migrating-to-github-actions/using-github-actions-importer-to-automate-migrations/migrating-from-bamboo-with-github-actions-importer.md +++ b/content/actions/migrating-to-github-actions/using-github-actions-importer-to-automate-migrations/migrating-from-bamboo-with-github-actions-importer.md @@ -258,7 +258,7 @@ These environment variables can be specified in a `.env.local` file that is load #### `--source-file-path` -You can use the `--source-file-path` argument with the `dry-run` or `migrate` subcommands. +You can use the `--source-file-path` argument with the `dry-run` or `migrate` subcommands. By default, {% data variables.product.prodname_actions_importer %} fetches pipeline contents from the Bamboo instance. The `--source-file-path` argument tells {% data variables.product.prodname_actions_importer %} to use the specified source file path instead. diff --git a/content/actions/migrating-to-github-actions/using-github-actions-importer-to-automate-migrations/migrating-from-bitbucket-pipelines-with-github-actions-importer.md b/content/actions/migrating-to-github-actions/using-github-actions-importer-to-automate-migrations/migrating-from-bitbucket-pipelines-with-github-actions-importer.md index 30e9b5d77f3b..1c575efc24fd 100644 --- a/content/actions/migrating-to-github-actions/using-github-actions-importer-to-automate-migrations/migrating-from-bitbucket-pipelines-with-github-actions-importer.md +++ b/content/actions/migrating-to-github-actions/using-github-actions-importer-to-automate-migrations/migrating-from-bitbucket-pipelines-with-github-actions-importer.md @@ -240,7 +240,7 @@ These environment variables can be specified in a `.env.local` file that will be #### `--source-file-path` -You can use the `--source-file-path` argument with the `dry-run` or `migrate` subcommands. +You can use the `--source-file-path` argument with the `dry-run` or `migrate` subcommands. By default, {% data variables.product.prodname_actions_importer %} fetches pipeline contents from the Bitbucket instance. The `--source-file-path` argument tells {% data variables.product.prodname_actions_importer %} to use the specified source file path instead. @@ -315,7 +315,7 @@ The following table shows the type of properties that {% data variables.product. | :------------------------------------- | :------------------------------------------------------ | | `CI` | {% raw %}`true`{% endraw %} | | `BITBUCKET_BUILD_NUMBER` | {% raw %}`${{ github.run_number }}`{% endraw %} | -| `BITBUCKET_CLONE_DIR` | {% raw %}`${{ github.workspace }}`{% endraw %} | +| `BITBUCKET_CLONE_DIR` | {% raw %}`${{ github.workspace }}`{% endraw %} | | `BITBUCKET_COMMIT` | {% raw %}`${{ github.sha }}`{% endraw %} | | `BITBUCKET_WORKSPACE` | {% raw %}`${{ github.repository_owner }}`{% endraw %} | | `BITBUCKET_REPO_SLUG` | {% raw %}`${{ github.repository }}`{% endraw %} | diff --git a/content/actions/migrating-to-github-actions/using-github-actions-importer-to-automate-migrations/migrating-from-jenkins-with-github-actions-importer.md b/content/actions/migrating-to-github-actions/using-github-actions-importer-to-automate-migrations/migrating-from-jenkins-with-github-actions-importer.md index c6d0b1799eea..29f43d7d2870 100644 --- a/content/actions/migrating-to-github-actions/using-github-actions-importer-to-automate-migrations/migrating-from-jenkins-with-github-actions-importer.md +++ b/content/actions/migrating-to-github-actions/using-github-actions-importer-to-automate-migrations/migrating-from-jenkins-with-github-actions-importer.md @@ -217,7 +217,7 @@ This section contains reference information on environment variables, optional a * `JENKINS_USERNAME`: The username of the user account that created the Jenkins API token. * `JENKINS_INSTANCE_URL`: The URL of the Jenkins instance. -* `JENKINSFILE_ACCESS_TOKEN` (Optional) The API token used to retrieve the contents of a `Jenkinsfile` stored in the build repository. This requires the `repo` scope. If this is not provided, the `GITHUB_ACCESS_TOKEN` will be used instead. +* `JENKINSFILE_ACCESS_TOKEN` (Optional) The API token used to retrieve the contents of a `Jenkinsfile` stored in the build repository. This requires the `repo` scope. If this is not provided, the `GITHUB_ACCESS_TOKEN` will be used instead. These environment variables can be specified in a `.env.local` file that is loaded by {% data variables.product.prodname_actions_importer %} when it is run. diff --git a/content/actions/monitoring-and-troubleshooting-workflows/monitoring-workflows/viewing-workflow-run-history.md b/content/actions/monitoring-and-troubleshooting-workflows/monitoring-workflows/viewing-workflow-run-history.md index 8964e48e31a0..cd0816eeb429 100644 --- a/content/actions/monitoring-and-troubleshooting-workflows/monitoring-workflows/viewing-workflow-run-history.md +++ b/content/actions/monitoring-and-troubleshooting-workflows/monitoring-workflows/viewing-workflow-run-history.md @@ -42,7 +42,7 @@ To specify the maximum number of runs to return, you can use the `-L` or `--limi 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"`. +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 @@ -62,7 +62,7 @@ To include job steps in the output, use the `-v` or `--verbose` flag. 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. +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 diff --git a/content/actions/security-for-github-actions/security-guides/security-hardening-for-github-actions.md b/content/actions/security-for-github-actions/security-guides/security-hardening-for-github-actions.md index 731482319d13..84fd4c588163 100644 --- a/content/actions/security-for-github-actions/security-guides/security-hardening-for-github-actions.md +++ b/content/actions/security-for-github-actions/security-guides/security-hardening-for-github-actions.md @@ -59,7 +59,7 @@ For more information, see "[AUTOTITLE](/repositories/managing-your-repositorys-s When creating workflows, [custom actions](/actions/creating-actions/about-custom-actions), and [composite actions](/actions/creating-actions/creating-a-composite-action), you should always consider whether your code might execute untrusted input from attackers. This can occur when an attacker adds malicious commands and scripts to a context. When your workflow runs, those strings might be interpreted as code which is then executed on the runner. - Attackers can add their own malicious content to the [`github` context](/actions/learn-github-actions/contexts#github-context), which should be treated as potentially untrusted input. These contexts typically end with `body`, `default_branch`, `email`, `head_ref`, `label`, `message`, `name`, `page_name`,`ref`, and `title`. For example: `github.event.issue.title`, or `github.event.pull_request.body`. + Attackers can add their own malicious content to the [`github` context](/actions/learn-github-actions/contexts#github-context), which should be treated as potentially untrusted input. These contexts typically end with `body`, `default_branch`, `email`, `head_ref`, `label`, `message`, `name`, `page_name`,`ref`, and `title`. For example: `github.event.issue.title`, or `github.event.pull_request.body`. You should ensure that these values do not flow directly into workflows, actions, API calls, or anywhere else where they could be interpreted as executable code. By adopting the same defensive programming posture you would use for any other privileged application code, you can help security harden your use of {% data variables.product.prodname_actions %}. For information on some of the steps an attacker could take, see "[AUTOTITLE](/actions/security-guides/security-hardening-for-github-actions#potential-impact-of-a-compromised-runner)." @@ -90,7 +90,7 @@ A script injection attack can occur directly within a workflow's inline script. This example is vulnerable to script injection because the `run` command executes within a temporary shell script on the runner. Before the shell script is run, the expressions inside {% raw %}`${{ }}`{% endraw %} are evaluated and then substituted with the resulting values, which can make it vulnerable to shell command injection. -To inject commands into this workflow, the attacker could create a pull request with a title of `a"; ls $GITHUB_WORKSPACE"`: +To inject commands into this workflow, the attacker could create a pull request with a title of `a"; ls $GITHUB_WORKSPACE"`: ![Screenshot of the title of a pull request in edit mode. A new title has been entered in the field: a"; ls $GITHUB_WORKSPACE".](/assets/images/help/actions/example-script-injection-pr-title.png) @@ -293,7 +293,7 @@ This list describes the recommended approaches for accessing repository data wit * You should never use a {% data variables.product.pat_v1 %}. These tokens grant access to all repositories within the organizations that you have access to, as well as all personal repositories in your personal account. This indirectly grants broad access to all write-access users of the repository the workflow is in. * If you do use a {% data variables.product.pat_generic %}, you should never use a {% data variables.product.pat_generic %} from your own account. If you later leave an organization, workflows using this token will immediately break, and debugging this issue can be challenging. Instead, you should use a {% data variables.product.pat_v2 %}for a new account that belongs to your organization and that is only granted access to the specific repositories that are needed for the workflow. Note that this approach is not scalable and should be avoided in favor of alternatives, such as deploy keys. 1. **SSH keys on a personal account** - * Workflows should never use the SSH keys on a personal account. Similar to {% data variables.product.pat_v1_plural %}, they grant read/write permissions to all of your personal repositories as well as all the repositories you have access to through organization membership. This indirectly grants broad access to all write-access users of the repository the workflow is in. If you're intending to use an SSH key because you only need to perform repository clones or pushes, and do not need to interact with public APIs, then you should use individual deploy keys instead. + * Workflows should never use the SSH keys on a personal account. Similar to {% data variables.product.pat_v1_plural %}, they grant read/write permissions to all of your personal repositories as well as all the repositories you have access to through organization membership. This indirectly grants broad access to all write-access users of the repository the workflow is in. If you're intending to use an SSH key because you only need to perform repository clones or pushes, and do not need to interact with public APIs, then you should use individual deploy keys instead. ## Hardening for {% data variables.product.prodname_dotcom %}-hosted runners diff --git a/content/actions/security-for-github-actions/security-guides/using-githubs-security-features-to-secure-your-use-of-github-actions.md b/content/actions/security-for-github-actions/security-guides/using-githubs-security-features-to-secure-your-use-of-github-actions.md index 335cfcee54b0..917cc3022d24 100644 --- a/content/actions/security-for-github-actions/security-guides/using-githubs-security-features-to-secure-your-use-of-github-actions.md +++ b/content/actions/security-for-github-actions/security-guides/using-githubs-security-features-to-secure-your-use-of-github-actions.md @@ -18,7 +18,7 @@ This article will explain how you can use some of {% data variables.product.prod ## Understanding dependencies in your workflows -You can use the dependency graph to explore the actions that the workflows in your repository use. The dependency graph is a summary of the manifest and lock files stored in a repository. It also recognizes files in `./github/workflows/` as manifests, which means that any actions or workflows referenced using the syntax `jobs[*].steps[*].uses` or `jobs..uses` will be parsed as dependencies. +You can use the dependency graph to explore the actions that the workflows in your repository use. The dependency graph is a summary of the manifest and lock files stored in a repository. It also recognizes files in `./github/workflows/` as manifests, which means that any actions or workflows referenced using the syntax `jobs[*].steps[*].uses` or `jobs..uses` will be parsed as dependencies. The dependency graph shows the following information about actions used in workflows: diff --git a/content/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions.md b/content/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions.md index a121cf3b279a..3d16aafb51bf 100644 --- a/content/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions.md +++ b/content/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions.md @@ -394,7 +394,7 @@ You can use Base64 encoding to store small binary blobs as secrets. You can then ✓ Set secret CERTIFICATE_BASE64 for octocat/octorepo ``` -1. To access the Base64 string from your runner, pipe the secret to `base64 --decode`. For example: +1. To access the Base64 string from your runner, pipe the secret to `base64 --decode`. For example: ```yaml name: Retrieve Base64 secret diff --git a/content/actions/security-for-github-actions/security-hardening-your-deployments/about-security-hardening-with-openid-connect.md b/content/actions/security-for-github-actions/security-hardening-your-deployments/about-security-hardening-with-openid-connect.md index fe7842c1a013..fa27f6eb27a2 100644 --- a/content/actions/security-for-github-actions/security-hardening-your-deployments/about-security-hardening-with-openid-connect.md +++ b/content/actions/security-for-github-actions/security-hardening-your-deployments/about-security-hardening-with-openid-connect.md @@ -289,7 +289,7 @@ After this setting is applied, the JWT will contain the updated `iss` value. In ### Customizing the subject claims for an organization or repository -To help improve security, compliance, and standardization, you can customize the standard claims to suit your required access conditions. If your cloud provider supports conditions on subject claims, you can create a condition that checks whether the `sub` value matches the path of the reusable workflow, such as `"job_workflow_ref:octo-org/octo-automation/.github/workflows/oidc.yml@refs/heads/main"`. The exact format will vary depending on your cloud provider's OIDC configuration. To configure the matching condition on {% data variables.product.prodname_dotcom %}, you can can use the REST API to require that the `sub` claim must always include a specific custom claim, such as `job_workflow_ref`. You can use the REST API to apply a customization template for the OIDC subject claim; for example, you can require that the `sub` claim within the OIDC token must always include a specific custom claim, such as `job_workflow_ref`. For more information, see "[AUTOTITLE](/rest/actions/oidc)." +To help improve security, compliance, and standardization, you can customize the standard claims to suit your required access conditions. If your cloud provider supports conditions on subject claims, you can create a condition that checks whether the `sub` value matches the path of the reusable workflow, such as `"job_workflow_ref:octo-org/octo-automation/.github/workflows/oidc.yml@refs/heads/main"`. The exact format will vary depending on your cloud provider's OIDC configuration. To configure the matching condition on {% data variables.product.prodname_dotcom %}, you can use the REST API to require that the `sub` claim must always include a specific custom claim, such as `job_workflow_ref`. You can use the REST API to apply a customization template for the OIDC subject claim; for example, you can require that the `sub` claim within the OIDC token must always include a specific custom claim, such as `job_workflow_ref`. For more information, see "[AUTOTITLE](/rest/actions/oidc)." > [!NOTE] > When the organization template is applied, it will not affect any workflows already using OIDC unless their repository has opted in to custom organization templates. For all repositories, existing and new, the repository owner will need to use the repository-level REST API to opt in to receive this configuration by setting `use_default` to `false`. Alternatively, the repository owner could use the REST API to apply a different configuration specific to the repository. For more information, see "[AUTOTITLE](/rest/actions/oidc#set-the-customization-template-for-an-oidc-subject-claim-for-a-repository)." @@ -297,7 +297,8 @@ To help improve security, compliance, and standardization, you can customize the Customizing the claims results in a new format for the entire `sub` claim, which replaces the default predefined `sub` format in the token described in "[AUTOTITLE](/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect#example-subject-claims)." > [!NOTE] -> The `sub` claim uses the shortened form `repo` (for example, `repo:ORG-NAME/REPO-NAME`) instead of `repository` to reference the repository. +> The `sub` claim uses the shortened form `repo` (for example, `repo:ORG-NAME/REPO-NAME`) instead of `repository` to reference the repository. {% ifversion fpt or ghec or ghes > 3.15 %} +> Any `:` within the context value will be replaced with `%3A`. {% endif %} The following example templates demonstrate various ways to customize the subject claim. To configure these settings on {% data variables.product.prodname_dotcom %}, admins use the REST API to specify a list of claims that must be included in the subject (`sub`) claim. @@ -420,6 +421,26 @@ or: In your cloud provider's OIDC configuration, configure the `sub` condition to require a `repository_owner_id` claim that matches the required value. +{% ifversion fpt or ghec or ghes > 3.15 %} + +#### Example: Context value with `:` + +This example demonstrates how to handle context value with `:`. For example, when the job references an environment named `production:eastus`. + +{% data reusables.actions.use-request-body-api %} + +```json +{ + "include_claim_keys": [ + "environment", + "repository_owner" + ] +} +``` + +In your cloud provider's OIDC configuration, configure the `sub` condition to require that claims must include a specific value for `environment` and `repository_owner`. For example: `"sub": "environment:production%3Aeastus:repository_owner:octo-org"`. +{% endif %} + #### Resetting organization template customizations This example template resets the subject claims to the default format. This template effectively opts out of any organization-level customization policy. diff --git a/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services.md b/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services.md index bfcf57d73a54..c660b51e148d 100644 --- a/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services.md +++ b/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-amazon-web-services.md @@ -150,7 +150,7 @@ jobs: role-session-name: samplerolesession aws-region: {% raw %}${{ env.AWS_REGION }}{% endraw %} # Upload a file to AWS s3 - - name: Copy index.html to s3 + - name: Copy index.html to s3 run: | aws s3 cp ./index.html s3://{% raw %}${{ env.BUCKET_NAME }}{% endraw %}/ ``` diff --git a/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-azure.md b/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-azure.md index 7db66568c528..8fda3cafa989 100644 --- a/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-azure.md +++ b/content/actions/security-for-github-actions/security-hardening-your-deployments/configuring-openid-connect-in-azure.md @@ -54,7 +54,7 @@ To configure the OIDC identity provider in Azure, you will need to perform the f Additional guidance for configuring the identity provider: * For security hardening, make sure you've reviewed "[AUTOTITLE](/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect#configuring-the-oidc-trust-with-the-cloud)." For an example, see "[AUTOTITLE](/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect#configuring-the-subject-in-your-cloud-provider)." -* For the `audience` setting, `api://AzureADTokenExchange` is the recommended value, but you can also specify other values here. +* For the `audience` setting, `api://AzureADTokenExchange` is the recommended value, but you can also specify other values here. ## Updating your {% data variables.product.prodname_actions %} workflow diff --git a/content/actions/sharing-automations/creating-actions/creating-a-composite-action.md b/content/actions/sharing-automations/creating-actions/creating-a-composite-action.md index c4be0b28eae2..a313da9d958e 100644 --- a/content/actions/sharing-automations/creating-actions/creating-a-composite-action.md +++ b/content/actions/sharing-automations/creating-actions/creating-a-composite-action.md @@ -19,7 +19,7 @@ topics: ## Introduction -In this guide, you'll learn about the basic components needed to create and use a packaged composite action. To focus this guide on the components needed to package the action, the functionality of the action's code is minimal. The action prints "Hello World" and then "Goodbye", or if you provide a custom name, it prints "Hello [who-to-greet]" and then "Goodbye". The action also maps a random number to the `random-number` output variable, and runs a script named `goodbye.sh`. +In this guide, you'll learn about the basic components needed to create and use a packaged composite action. To focus this guide on the components needed to package the action, the functionality of the action's code is minimal. The action prints "Hello World" and then "Goodbye", or if you provide a custom name, it prints "Hello [who-to-greet]" and then "Goodbye". The action also maps a random number to the `random-number` output variable, and runs a script named `goodbye.sh`. Once you complete this project, you should understand how to build your own composite action and test it in a workflow. diff --git a/content/actions/sharing-automations/creating-actions/creating-a-docker-container-action.md b/content/actions/sharing-automations/creating-actions/creating-a-docker-container-action.md index f09a9a1cfd26..7dec054c0478 100644 --- a/content/actions/sharing-automations/creating-actions/creating-a-docker-container-action.md +++ b/content/actions/sharing-automations/creating-actions/creating-a-docker-container-action.md @@ -81,7 +81,7 @@ runs: {% endraw %} -This metadata defines one `who-to-greet` input and one `time` output parameter. To pass inputs to the Docker container, you should declare the input using `inputs` and pass the input in the `args` keyword. Everything you include in `args` is passed to the container, but for better discoverability for users of your action, we recommended using inputs. +This metadata defines one `who-to-greet` input and one `time` output parameter. To pass inputs to the Docker container, you should declare the input using `inputs` and pass the input in the `args` keyword. Everything you include in `args` is passed to the container, but for better discoverability for users of your action, we recommended using inputs. {% data variables.product.prodname_dotcom %} will build an image from your `Dockerfile`, and run commands in a new container using this image. diff --git a/content/actions/sharing-automations/creating-actions/metadata-syntax-for-github-actions.md b/content/actions/sharing-automations/creating-actions/metadata-syntax-for-github-actions.md index a63f0591c252..70d5f32c7dfc 100644 --- a/content/actions/sharing-automations/creating-actions/metadata-syntax-for-github-actions.md +++ b/content/actions/sharing-automations/creating-actions/metadata-syntax-for-github-actions.md @@ -89,7 +89,7 @@ For example, if a workflow defined the `num-octocats` and `octocat-eye-color` in ## `outputs` for Docker container and JavaScript actions -**Optional** Output parameters allow you to declare data that an action sets. Actions that run later in a workflow can use the output data set in previously run actions. For example, if you had an action that performed the addition of two inputs (x + y = z), the action could output the sum (z) for other actions to use as an input. +**Optional** Output parameters allow you to declare data that an action sets. Actions that run later in a workflow can use the output data set in previously run actions. For example, if you had an action that performed the addition of two inputs (x + y = z), the action could output the sum (z) for other actions to use as an input. {% data reusables.actions.output-limitations %} @@ -304,15 +304,15 @@ steps: #### `runs.steps[*].env` -**Optional** Sets a `map` of environment variables for only that step. If you want to modify the environment variable stored in the workflow, use `echo "{name}={value}" >> $GITHUB_ENV` in a composite step. +**Optional** Sets a `map` of environment variables for only that step. If you want to modify the environment variable stored in the workflow, use `echo "{name}={value}" >> $GITHUB_ENV` in a composite step. #### `runs.steps[*].working-directory` -**Optional** Specifies the working directory where the command is run. +**Optional** Specifies the working directory where the command is run. #### `runs.steps[*].uses` -**Optional** Selects an action to run as part of a step in your job. An action is a reusable unit of code. You can use an action defined in the same repository as the workflow, a public repository, or in a [published Docker container image](https://hub.docker.com/). +**Optional** Selects an action to run as part of a step in your job. An action is a reusable unit of code. You can use an action defined in the same repository as the workflow, a public repository, or in a [published Docker container image](https://hub.docker.com/). We strongly recommend that you include the version of the action you are using by specifying a Git ref, SHA, or Docker tag number. If you don't specify a version, it could break your workflows or cause unexpected behavior when the action owner publishes an update. * Using the commit SHA of a released action version is the safest for stability and security. @@ -345,7 +345,7 @@ runs: #### `runs.steps[*].with` -**Optional** A `map` of the input parameters defined by the action. Each input parameter is a key/value pair. For more information, see [Example: Specifying inputs](#example-specifying-inputs). +**Optional** A `map` of the input parameters defined by the action. Each input parameter is a key/value pair. For more information, see [Example: Specifying inputs](#example-specifying-inputs). ```yaml runs: @@ -363,7 +363,7 @@ runs: #### `runs.steps[*].continue-on-error` -**Optional** Prevents the action from failing when a step fails. Set to `true` to allow the action to pass when this step fails. +**Optional** Prevents the action from failing when a step fails. Set to `true` to allow the action to pass when this step fails. {% endif %} @@ -425,7 +425,7 @@ For more information about how the `entrypoint` executes, see "[AUTOTITLE](/acti ### `runs.post-entrypoint` -**Optional** Allows you to run a cleanup script once the `runs.entrypoint` action has completed. {% data variables.product.prodname_actions %} uses `docker run` to launch this action. Because {% data variables.product.prodname_actions %} runs the script inside a new container using the same base image, the runtime state is different from the main `entrypoint` container. You can access any state you need in either the workspace, `HOME`, or as a `STATE_` variable. The `post-entrypoint:` action always runs by default but you can override this using [`runs.post-if`](#runspost-if). +**Optional** Allows you to run a cleanup script once the `runs.entrypoint` action has completed. {% data variables.product.prodname_actions %} uses `docker run` to launch this action. Because {% data variables.product.prodname_actions %} runs the script inside a new container using the same base image, the runtime state is different from the main `entrypoint` container. You can access any state you need in either the workspace, `HOME`, or as a `STATE_` variable. The `post-entrypoint:` action always runs by default but you can override this using [`runs.post-if`](#runspost-if). ```yaml runs: diff --git a/content/actions/sharing-automations/creating-actions/publishing-actions-in-github-marketplace.md b/content/actions/sharing-automations/creating-actions/publishing-actions-in-github-marketplace.md index 1702f56d67b4..409d374a4df2 100644 --- a/content/actions/sharing-automations/creating-actions/publishing-actions-in-github-marketplace.md +++ b/content/actions/sharing-automations/creating-actions/publishing-actions-in-github-marketplace.md @@ -76,6 +76,6 @@ Actions published on {% data variables.product.prodname_marketplace %} are linke ## About badges in {% data variables.product.prodname_marketplace %} -Actions with the {% octicon "verified" aria-label="The verified badge" %}, or verified creator badge, indicate that {% data variables.product.prodname_dotcom %} has verified the creator of the action as a partner organization. Partners can email partnerships@github.com to request the verified creator badge. +Actions with the {% octicon "verified" aria-label="The verified badge" %}, or verified creator badge, indicate that {% data variables.product.prodname_dotcom %} has verified the creator of the action as a partner organization. Partners can email partnerships@github.com to request the verified creator badge. ![Screenshot of {% data variables.product.prodname_actions %} with the verified creator badge.](/assets/images/marketplace/verified-creator-badge-for-actions.png) diff --git a/content/actions/sharing-automations/reusing-workflows.md b/content/actions/sharing-automations/reusing-workflows.md index 4eb8e735f886..3fa5a9073f71 100644 --- a/content/actions/sharing-automations/reusing-workflows.md +++ b/content/actions/sharing-automations/reusing-workflows.md @@ -68,7 +68,7 @@ The following table shows the accessibility of reusable workflows to a caller wo | Caller repository | Accessible workflows repositories | |----|----| -| `private` | `private`{% ifversion ghes or ghec %}, `internal`,{% endif %} and `public` | +| `private` | `private`{% ifversion ghes or ghec %}, `internal`,{% endif %} and `public` | | {% ifversion ghes or ghec %} | | `internal` | `internal`, and `public` | | {% endif %} | diff --git a/content/actions/use-cases-and-examples/building-and-testing/building-and-testing-java-with-ant.md b/content/actions/use-cases-and-examples/building-and-testing/building-and-testing-java-with-ant.md index 619f91ec0deb..d2b6dff12f71 100644 --- a/content/actions/use-cases-and-examples/building-and-testing/building-and-testing-java-with-ant.md +++ b/content/actions/use-cases-and-examples/building-and-testing/building-and-testing-java-with-ant.md @@ -90,7 +90,7 @@ We recommend that you have a basic understanding of Java and the Ant framework. You can use the same commands that you use locally to build and test your code. -The workflow template will run the default target specified in your _build.xml_ file. Your default target will commonly be set to build classes, run tests and package classes into their distributable format, for example, a JAR file. +The workflow template will run the default target specified in your _build.xml_ file. Your default target will commonly be set to build classes, run tests and package classes into their distributable format, for example, a JAR file. If you use different commands to build your project, or you want to run a different target, you can specify those. For example, you may want to run the `jar` target that's configured in your `_build-ci.xml_` file. diff --git a/content/actions/use-cases-and-examples/building-and-testing/building-and-testing-ruby.md b/content/actions/use-cases-and-examples/building-and-testing/building-and-testing-ruby.md index 60792bf1282e..3320b2d177e4 100644 --- a/content/actions/use-cases-and-examples/building-and-testing/building-and-testing-ruby.md +++ b/content/actions/use-cases-and-examples/building-and-testing/building-and-testing-ruby.md @@ -108,7 +108,7 @@ steps: - run: bundle exec rake ``` -Alternatively, you can check a `.ruby-version` file into the root of your repository and `setup-ruby` will use the version defined in that file. +Alternatively, you can check a `.ruby-version` file into the root of your repository and `setup-ruby` will use the version defined in that file. ## Testing with multiple versions of Ruby diff --git a/content/actions/use-cases-and-examples/deploying/deploying-net-to-azure-app-service.md b/content/actions/use-cases-and-examples/deploying/deploying-net-to-azure-app-service.md index 33bd394218b6..2137948e0b2c 100644 --- a/content/actions/use-cases-and-examples/deploying/deploying-net-to-azure-app-service.md +++ b/content/actions/use-cases-and-examples/deploying/deploying-net-to-azure-app-service.md @@ -52,7 +52,7 @@ Once you've completed the prerequisites, you can proceed with creating the workf The following example workflow demonstrates how to build and deploy a .NET project to Azure App Service when there is a push to the `main` branch. -Ensure that you set `AZURE_WEBAPP_NAME` in the workflow `env` key to the name of the web app you created. If the path to your project is not the repository root, change `AZURE_WEBAPP_PACKAGE_PATH`. If you use a version of .NET other than `5`, change `DOTNET_VERSION`. +Ensure that you set `AZURE_WEBAPP_NAME` in the workflow `env` key to the name of the web app you created. If the path to your project is not the repository root, change `AZURE_WEBAPP_PACKAGE_PATH`. If you use a version of .NET other than `5`, change `DOTNET_VERSION`. {% data reusables.actions.delete-env-key %} diff --git a/content/actions/use-cases-and-examples/deploying/deploying-nodejs-to-azure-app-service.md b/content/actions/use-cases-and-examples/deploying/deploying-nodejs-to-azure-app-service.md index b91eca4683c5..f247a5764d95 100644 --- a/content/actions/use-cases-and-examples/deploying/deploying-nodejs-to-azure-app-service.md +++ b/content/actions/use-cases-and-examples/deploying/deploying-nodejs-to-azure-app-service.md @@ -57,7 +57,7 @@ Once you've completed the prerequisites, you can proceed with creating the workf The following example workflow demonstrates how to build, test, and deploy the Node.js project to Azure App Service when there is a push to the `main` branch. -Ensure that you set `AZURE_WEBAPP_NAME` in the workflow `env` key to the name of the web app you created. If the path to your project is not the repository root, change `AZURE_WEBAPP_PACKAGE_PATH` to your project path. If you use a version of Node.js other than `10.x`, change `NODE_VERSION` to the version that you use. +Ensure that you set `AZURE_WEBAPP_NAME` in the workflow `env` key to the name of the web app you created. If the path to your project is not the repository root, change `AZURE_WEBAPP_PACKAGE_PATH` to your project path. If you use a version of Node.js other than `10.x`, change `NODE_VERSION` to the version that you use. {% data reusables.actions.delete-env-key %} diff --git a/content/actions/use-cases-and-examples/deploying/deploying-to-azure-kubernetes-service.md b/content/actions/use-cases-and-examples/deploying/deploying-to-azure-kubernetes-service.md index 9599f785648e..52e9d28ba96a 100644 --- a/content/actions/use-cases-and-examples/deploying/deploying-to-azure-kubernetes-service.md +++ b/content/actions/use-cases-and-examples/deploying/deploying-to-azure-kubernetes-service.md @@ -80,7 +80,7 @@ jobs: azcliversion: 2.29.1 inlineScript: | az configure --defaults acr={% raw %}${{ env.AZURE_CONTAINER_REGISTRY }}{% endraw %} - az acr build -t -t {% raw %}${{ env.REGISTRY_URL }}{% endraw %}/{% raw %}${{ env.PROJECT_NAME }}{% endraw %}:{% raw %}${{ github.sha }}{% endraw %} + az acr build -t -t {% raw %}${{ env.REGISTRY_URL }}{% endraw %}/{% raw %}${{ env.PROJECT_NAME }}{% endraw %}:{% raw %}${{ github.sha }}{% endraw %} - name: Gets K8s context uses: azure/aks-set-context@94ccc775c1997a3fcfbfbce3c459fec87e0ab188 diff --git a/content/actions/use-cases-and-examples/deploying/deploying-with-github-actions.md b/content/actions/use-cases-and-examples/deploying/deploying-with-github-actions.md index bdd7be83008b..184043b12834 100644 --- a/content/actions/use-cases-and-examples/deploying/deploying-with-github-actions.md +++ b/content/actions/use-cases-and-examples/deploying/deploying-with-github-actions.md @@ -144,7 +144,7 @@ You can also view the logs of each workflow run and the history of workflow runs ## Tracking deployments through apps {% ifversion fpt or ghec %} -If your personal account or organization on {% data variables.product.github %} is integrated with Microsoft Teams or Slack, you can track deployments that use environments through Microsoft Teams or Slack. For example, you can receive notifications through the app when a deployment is pending approval, when a deployment is approved, or when the deployment status changes. For more information about integrating Microsoft Teams or Slack, see "[AUTOTITLE](/get-started/exploring-integrations/github-extensions-and-integrations#team-communication-tools)." +If your personal account or organization on {% data variables.product.github %} is integrated with Microsoft Teams or Slack, you can track deployments that use environments through Microsoft Teams or Slack. For example, you can receive notifications through the app when a deployment is pending approval, when a deployment is approved, or when the deployment status changes. For more information about integrating Microsoft Teams or Slack, see "[AUTOTITLE](/get-started/exploring-integrations/github-extensions-and-integrations#team-communication-tools)." {% endif %} You can also build an app that uses deployment and deployment status webhooks to track deployments. {% data reusables.actions.environment-deployment-event %} For more information, see "[AUTOTITLE](/apps)" and "[AUTOTITLE](/webhooks-and-events/webhooks/webhook-events-and-payloads#deployment)." diff --git a/content/actions/use-cases-and-examples/publishing-packages/publishing-java-packages-with-gradle.md b/content/actions/use-cases-and-examples/publishing-packages/publishing-java-packages-with-gradle.md index c1905ecaf58d..bb08d4d18635 100644 --- a/content/actions/use-cases-and-examples/publishing-packages/publishing-java-packages-with-gradle.md +++ b/content/actions/use-cases-and-examples/publishing-packages/publishing-java-packages-with-gradle.md @@ -39,7 +39,7 @@ You may also find it helpful to have a basic understanding of the following: ## About package configuration -The `groupId` and `artifactId` fields in the `MavenPublication` section of the _build.gradle_ file create a unique identifier for your package that registries use to link your package to a registry. This is similar to the `groupId` and `artifactId` fields of the Maven _pom.xml_ file. For more information, see the "[Maven Publish Plugin](https://docs.gradle.org/current/userguide/publishing_maven.html)" in the Gradle documentation. +The `groupId` and `artifactId` fields in the `MavenPublication` section of the _build.gradle_ file create a unique identifier for your package that registries use to link your package to a registry. This is similar to the `groupId` and `artifactId` fields of the Maven _pom.xml_ file. For more information, see the "[Maven Publish Plugin](https://docs.gradle.org/current/userguide/publishing_maven.html)" in the Gradle documentation. The _build.gradle_ file also contains configuration for the distribution management repositories that Gradle will publish packages to. Each repository must have a name, a deployment URL, and credentials for authentication. @@ -47,7 +47,7 @@ The _build.gradle_ file also contains configuration for the distribution managem Each time you create a new release, you can trigger a workflow to publish your package. The workflow in the example below runs when the `release` event triggers with type `created`. The workflow publishes the package to the Maven Central Repository if CI tests pass. For more information on the `release` event, see "[AUTOTITLE](/actions/using-workflows/events-that-trigger-workflows#release)." -You can define a new Maven repository in the publishing block of your _build.gradle_ file that points to your package repository. For example, if you were deploying to the Maven Central Repository through the OSSRH hosting project, your _build.gradle_ could specify a repository with the name `"OSSRH"`. +You can define a new Maven repository in the publishing block of your _build.gradle_ file that points to your package repository. For example, if you were deploying to the Maven Central Repository through the OSSRH hosting project, your _build.gradle_ could specify a repository with the name `"OSSRH"`. {% raw %} @@ -117,7 +117,7 @@ jobs: Each time you create a new release, you can trigger a workflow to publish your package. The workflow in the example below runs when the `release` event triggers with type `created`. The workflow publishes the package to {% data variables.product.prodname_registry %} if CI tests pass. For more information on the `release` event, see "[AUTOTITLE](/actions/using-workflows/events-that-trigger-workflows#release)." -You can define a new Maven repository in the publishing block of your _build.gradle_ that points to {% data variables.product.prodname_registry %}. In that repository configuration, you can also take advantage of environment variables set in your CI workflow run. You can use the `GITHUB_ACTOR` environment variable as a username, and you can set the `GITHUB_TOKEN` environment variable with your `GITHUB_TOKEN` secret. +You can define a new Maven repository in the publishing block of your _build.gradle_ that points to {% data variables.product.prodname_registry %}. In that repository configuration, you can also take advantage of environment variables set in your CI workflow run. You can use the `GITHUB_ACTOR` environment variable as a username, and you can set the `GITHUB_TOKEN` environment variable with your `GITHUB_TOKEN` secret. {% data reusables.actions.github-token-permissions %} diff --git a/content/actions/use-cases-and-examples/publishing-packages/publishing-java-packages-with-maven.md b/content/actions/use-cases-and-examples/publishing-packages/publishing-java-packages-with-maven.md index 689de03c2ed1..e1aa6fd28af2 100644 --- a/content/actions/use-cases-and-examples/publishing-packages/publishing-java-packages-with-maven.md +++ b/content/actions/use-cases-and-examples/publishing-packages/publishing-java-packages-with-maven.md @@ -39,7 +39,7 @@ You may also find it helpful to have a basic understanding of the following: ## About package configuration -The `groupId` and `artifactId` fields in the _pom.xml_ file create a unique identifier for your package that registries use to link your package to a registry. For more information see [Guide to uploading artifacts to the Central Repository](https://maven.apache.org/repository/guide-central-repository-upload.html) in the Apache Maven documentation. +The `groupId` and `artifactId` fields in the _pom.xml_ file create a unique identifier for your package that registries use to link your package to a registry. For more information see [Guide to uploading artifacts to the Central Repository](https://maven.apache.org/repository/guide-central-repository-upload.html) in the Apache Maven documentation. The _pom.xml_ file also contains configuration for the distribution management repositories that Maven will deploy packages to. Each repository must have a name and a deployment URL. Authentication for these repositories can be configured in the _.m2/settings.xml_ file in the home directory of the user running Maven. @@ -72,7 +72,7 @@ For example, if you were deploying to the Maven Central Repository through the O With this configuration, you can create a workflow that publishes your package to the Maven Central Repository by specifying the repository management `id` to the `setup-java` action. You’ll also need to provide environment variables that contain the username and password to authenticate to the repository. -In the deploy step, you’ll need to set the environment variables to the username that you authenticate with to the repository, and to a secret that you’ve configured with the password or token to authenticate with. For more information, see "[AUTOTITLE](/actions/security-guides/using-secrets-in-github-actions)." +In the deploy step, you’ll need to set the environment variables to the username that you authenticate with to the repository, and to a secret that you’ve configured with the password or token to authenticate with. For more information, see "[AUTOTITLE](/actions/security-guides/using-secrets-in-github-actions)." ```yaml copy name: Publish package to the Maven Central Repository @@ -212,7 +212,7 @@ jobs: GITHUB_TOKEN: {% raw %}${{ secrets.GITHUB_TOKEN }}{% endraw %} ``` -This workflow calls the `setup-java` action twice. Each time the `setup-java` action runs, it overwrites the Maven _settings.xml_ file for publishing packages. For authentication to the repository, the _settings.xml_ file references the distribution management repository `id`, and the username and password. +This workflow calls the `setup-java` action twice. Each time the `setup-java` action runs, it overwrites the Maven _settings.xml_ file for publishing packages. For authentication to the repository, the _settings.xml_ file references the distribution management repository `id`, and the username and password. This workflow performs the following steps: diff --git a/content/actions/use-cases-and-examples/using-containerized-services/about-service-containers.md b/content/actions/use-cases-and-examples/using-containerized-services/about-service-containers.md index 2dc71ffec9f3..1ce3c9a8e786 100644 --- a/content/actions/use-cases-and-examples/using-containerized-services/about-service-containers.md +++ b/content/actions/use-cases-and-examples/using-containerized-services/about-service-containers.md @@ -142,7 +142,7 @@ jobs: password: ${{ secrets.dockerhub_password }} db: # Private registry image - image: ghcr.io/octocat/testdb:latest + image: ghcr.io/octocat/testdb:latest credentials: username: ${{ github.repository_owner }} password: ${{ secrets.ghcr_password }} diff --git a/content/actions/using-github-hosted-runners/using-larger-runners/about-larger-runners.md b/content/actions/using-github-hosted-runners/using-larger-runners/about-larger-runners.md index 9dbfa39ea8b6..afb3e8b3ee81 100644 --- a/content/actions/using-github-hosted-runners/using-larger-runners/about-larger-runners.md +++ b/content/actions/using-github-hosted-runners/using-larger-runners/about-larger-runners.md @@ -50,8 +50,8 @@ Compared to standard {% data variables.product.prodname_dotcom %}-hosted runners These features can enhance your CI/CD pipelines in the following ways. -* Assigning {% data variables.actions.hosted_runners %} static IP addresses from a specific range enables you to use this range to configure a firewall allowlist. For more information, see "[Networking for {% data variables.actions.hosted_runners %}](#networking-for-larger-runners)." -* Autoscaling enables {% data variables.actions.hosted_runners %} to scale up to a maximum limit set by you, so your workflows can run concurrently. For more information, see "[Autoscaling {% data variables.actions.hosted_runners %}](#autoscaling-larger-runners)." +* Assigning {% data variables.actions.hosted_runners %} static IP addresses from a specific range enables you to use this range to configure a firewall allowlist. For more information, see "[Networking for {% data variables.actions.hosted_runners %}](#networking-for-larger-runners)." +* Autoscaling enables {% data variables.actions.hosted_runners %} to scale up to a maximum limit set by you, so your workflows can run concurrently. For more information, see "[Autoscaling {% data variables.actions.hosted_runners %}](#autoscaling-larger-runners)." * Runner groups allow you to control access to {% data variables.actions.hosted_runners %} for your organizations, repositories, and workflows. For more information, see "[AUTOTITLE](/actions/using-github-hosted-runners/controlling-access-to-larger-runners)." ### Runner images @@ -60,7 +60,7 @@ These features can enhance your CI/CD pipelines in the following ways. **{% data variables.product.prodname_dotcom %}-owned images:** These images are maintained by {% data variables.product.prodname_dotcom %} and are available for Linux x64, Windows x64, and macOS (x64 and arm) runners. For more information on these images and a full list of included tools for each runner operating system, see the [{% data variables.product.prodname_actions %} Runner Images](https://github.com/actions/runner-images) repository. -**Partner Images:** Partner images are not managed by {% data variables.product.prodname_dotcom %} and are pulled from the Azure Marketplace. For more information about about the Windows 11 desktop image see [Microsoft Windows 11 Desktop](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/microsoftwindowsdesktop.windows-11?tab=Overview). For more information about the GPU runner compatible images, see [NVIDIA GPU-Optimized VMI](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/nvidia.ngc_azure_17_11) and [Data Science Virtual Machine - Windows 2019](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/microsoft-dsvm.dsvm-win-2019?tab=overview). For more information about the images for ARM-powered runners, see the [`actions/partner-runner-images` repository](https://github.com/actions/partner-runner-images). This is also the place to provide feedback or report issues about third-party images. +**Partner Images:** Partner images are not managed by {% data variables.product.prodname_dotcom %} and are pulled from the Azure Marketplace. For more information about the Windows 11 desktop image see [Microsoft Windows 11 Desktop](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/microsoftwindowsdesktop.windows-11?tab=Overview). For more information about the GPU runner compatible images, see [NVIDIA GPU-Optimized VMI](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/nvidia.ngc_azure_17_11) and [Data Science Virtual Machine - Windows 2019](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/microsoft-dsvm.dsvm-win-2019?tab=overview). For more information about the images for ARM-powered runners, see the [`actions/partner-runner-images` repository](https://github.com/actions/partner-runner-images). This is also the place to provide feedback or report issues about third-party images. ### Understanding billing diff --git a/content/actions/writing-workflows/choosing-what-your-workflow-does/accessing-contextual-information-about-workflow-runs.md b/content/actions/writing-workflows/choosing-what-your-workflow-does/accessing-contextual-information-about-workflow-runs.md index 39bfd2dd44c3..b3d47d29f6ba 100644 --- a/content/actions/writing-workflows/choosing-what-your-workflow-does/accessing-contextual-information-about-workflow-runs.md +++ b/content/actions/writing-workflows/choosing-what-your-workflow-does/accessing-contextual-information-about-workflow-runs.md @@ -543,7 +543,7 @@ jobs: steps: - name: Generate 0 or 1 id: generate_number - run: echo "random_number=$(($RANDOM % 2))" >> $GITHUB_OUTPUT + run: echo "random_number=$(($RANDOM % 2))" >> $GITHUB_OUTPUT - name: Pass or fail run: | if [[ {% raw %}${{ steps.generate_number.outputs.random_number }}{% endraw %} == 0 ]]; then exit 0; else exit 1; fi diff --git a/content/actions/writing-workflows/choosing-what-your-workflow-does/store-information-in-variables.md b/content/actions/writing-workflows/choosing-what-your-workflow-does/store-information-in-variables.md index f076144d3bec..08498f3d3061 100644 --- a/content/actions/writing-workflows/choosing-what-your-workflow-does/store-information-in-variables.md +++ b/content/actions/writing-workflows/choosing-what-your-workflow-does/store-information-in-variables.md @@ -26,7 +26,7 @@ You can set your own custom variables or use the default environment variables t You can set a custom variable in two ways. -* To define an environment variable for use in a single workflow, you can use the `env` key in the workflow file. For more information, see "[Defining environment variables for a single workflow](#defining-environment-variables-for-a-single-workflow)". +* To define an environment variable for use in a single workflow, you can use the `env` key in the workflow file. For more information, see "[Defining environment variables for a single workflow](#defining-environment-variables-for-a-single-workflow)". * To define a configuration variable across multiple workflows, you can define it at the organization, repository, or environment level. For more information, see "[Defining configuration variables for multiple workflows](#defining-configuration-variables-for-multiple-workflows)". > [!WARNING] diff --git a/content/actions/writing-workflows/choosing-what-your-workflow-does/workflow-commands-for-github-actions.md b/content/actions/writing-workflows/choosing-what-your-workflow-does/workflow-commands-for-github-actions.md index 6eb898aeb189..85a9e902d838 100644 --- a/content/actions/writing-workflows/choosing-what-your-workflow-does/workflow-commands-for-github-actions.md +++ b/content/actions/writing-workflows/choosing-what-your-workflow-does/workflow-commands-for-github-actions.md @@ -529,7 +529,7 @@ jobs: ## Sending values to the pre and post actions -You can create environment variables for sharing with your workflow's `pre:` or `post:` actions by writing to the file located at `GITHUB_STATE`. For example, you can create a file with the `pre:` action, pass the file location to the `main:` action, and then use the `post:` action to delete the file. Alternatively, you could create a file with the `main:` action, pass the file location to the `post:` action, and also use the `post:` action to delete the file. +You can create environment variables for sharing with your workflow's `pre:` or `post:` actions by writing to the file located at `GITHUB_STATE`. For example, you can create a file with the `pre:` action, pass the file location to the `main:` action, and then use the `post:` action to delete the file. Alternatively, you could create a file with the `main:` action, pass the file location to the `post:` action, and also use the `post:` action to delete the file. If you have multiple `pre:` or `post:` actions, you can only access the saved value in the action where it was written to `GITHUB_STATE`. For more information on the `post:` action, see "[AUTOTITLE](/actions/creating-actions/metadata-syntax-for-github-actions#runspost)." @@ -549,7 +549,7 @@ fs.appendFileSync(process.env.GITHUB_STATE, `processID=12345${os.EOL}`, { The `STATE_processID` variable is then exclusively available to the cleanup script running under the `main` action. This example runs in `main` and uses JavaScript to display the value assigned to the `STATE_processID` environment variable: ```javascript copy -console.log("The running PID from the main action is: " + process.env.STATE_processID); +console.log("The running PID from the main action is: " + process.env.STATE_processID); ``` ## Environment files diff --git a/content/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows.md b/content/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows.md index 9247f356e61b..6edee3bb183d 100644 --- a/content/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows.md +++ b/content/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows.md @@ -596,7 +596,7 @@ on: - opened jobs: run_if: - if: startsWith(github.head_ref, 'releases/') + if: startsWith(github.head_ref, 'releases/') runs-on: ubuntu-latest steps: - run: echo "The head of this PR starts with 'releases/'" @@ -776,7 +776,7 @@ on: - opened jobs: run_if: - if: startsWith(github.head_ref, 'releases/') + if: startsWith(github.head_ref, 'releases/') runs-on: ubuntu-latest steps: - run: echo "The head of this PR starts with 'releases/'" @@ -981,7 +981,7 @@ on: You can use the {% data variables.product.product_name %} API to trigger a webhook event called [`repository_dispatch`](/webhooks-and-events/webhooks/webhook-events-and-payloads#repository_dispatch) when you want to trigger a workflow for activity that happens outside of {% data variables.product.product_name %}. For more information, see "[AUTOTITLE](/rest/repos/repos#create-a-repository-dispatch-event)." -When you make a request to create a `repository_dispatch` event, you must specify an `event_type` to describe the activity type. By default, all `repository_dispatch` activity types trigger a workflow to run. You can use the `types` keyword to limit your workflow to run when a specific `event_type` value is sent in the `repository_dispatch` webhook payload. +When you make a request to create a `repository_dispatch` event, you must specify an `event_type` to describe the activity type. By default, all `repository_dispatch` activity types trigger a workflow to run. You can use the `types` keyword to limit your workflow to run when a specific `event_type` value is sent in the `repository_dispatch` webhook payload. ```yaml on: @@ -1170,7 +1170,7 @@ You can configure custom-defined input properties, default input values, and req {% data reusables.actions.inputs-vs-github-event-inputs %} -This example defines inputs called `logLevel`, `tags`, and `environment`. You pass values for these inputs to the workflow when you run it. This workflow then prints the values to the log, using the `inputs.logLevel`, `inputs.tags`, and `inputs.environment` context properties. +This example defines inputs called `logLevel`, `tags`, and `environment`. You pass values for these inputs to the workflow when you run it. This workflow then prints the values to the log, using the `inputs.logLevel`, `inputs.tags`, and `inputs.environment` context properties. ```yaml on: diff --git a/content/actions/writing-workflows/quickstart.md b/content/actions/writing-workflows/quickstart.md index 6d4ae49f0883..eb6430254ca8 100644 --- a/content/actions/writing-workflows/quickstart.md +++ b/content/actions/writing-workflows/quickstart.md @@ -19,7 +19,7 @@ shortTitle: Quickstart ## Introduction -{% data reusables.actions.about-actions %} You can create workflows that run tests whenever you push a change to your repository, or that deploy merged pull requests to production. +{% data reusables.actions.about-actions %} You can create workflows that run tests whenever you push a change to your repository, or that deploy merged pull requests to production. This quickstart guide shows you how to use the user interface of {% data variables.product.github %} to add a workflow that demonstrates some of the essential features of {% data variables.product.prodname_actions %}. diff --git a/content/actions/writing-workflows/workflow-syntax-for-github-actions.md b/content/actions/writing-workflows/workflow-syntax-for-github-actions.md index c7857c9e8417..d54889d1965f 100644 --- a/content/actions/writing-workflows/workflow-syntax-for-github-actions.md +++ b/content/actions/writing-workflows/workflow-syntax-for-github-actions.md @@ -986,7 +986,7 @@ strategy: {% data reusables.actions.docker-container-os-support %} -Used to host service containers for a job in a workflow. Service containers are useful for creating databases or cache services like Redis. The runner automatically creates a Docker network and manages the life cycle of the service containers. +Used to host service containers for a job in a workflow. Service containers are useful for creating databases or cache services like Redis. The runner automatically creates a Docker network and manages the life cycle of the service containers. If you configure your job to run in a container, or your step uses container actions, you don't need to map ports to access the service or action. Docker automatically exposes all ports between containers on the same Docker user-defined bridge network. You can directly reference the service container by its hostname. The hostname is automatically mapped to the label name you configure for the service in the workflow. diff --git a/content/admin/administering-your-instance/administering-your-instance-from-the-command-line/command-line-utilities.md b/content/admin/administering-your-instance/administering-your-instance-from-the-command-line/command-line-utilities.md index e24d6085de02..ddb1394ac186 100644 --- a/content/admin/administering-your-instance/administering-your-instance-from-the-command-line/command-line-utilities.md +++ b/content/admin/administering-your-instance/administering-your-instance-from-the-command-line/command-line-utilities.md @@ -978,7 +978,7 @@ ghe-cluster-each -r git -- "ghe-repo-gc --prune USERNAME/REPONAME" ### ghe-actions-check -This utility checks that all services for {% data variables.product.prodname_actions %} are healthy. For more information, see "[AUTOTITLE](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server)" and "[AUTOTITLE](/admin/github-actions/advanced-configuration-and-troubleshooting/troubleshooting-github-actions-for-your-enterprise)." +This utility checks that all services for {% data variables.product.prodname_actions %} are healthy. For more information, see "[AUTOTITLE](/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server)" and "[AUTOTITLE](/admin/github-actions/advanced-configuration-and-troubleshooting/troubleshooting-github-actions-for-your-enterprise)." ```shell ghe-actions-check diff --git a/content/admin/administering-your-instance/administering-your-instance-from-the-web-ui/about-the-management-console.md b/content/admin/administering-your-instance/administering-your-instance-from-the-web-ui/about-the-management-console.md index 0d8ecbfe9900..3d7b1f76ddca 100644 --- a/content/admin/administering-your-instance/administering-your-instance-from-the-web-ui/about-the-management-console.md +++ b/content/admin/administering-your-instance/administering-your-instance-from-the-web-ui/about-the-management-console.md @@ -16,7 +16,7 @@ topics: ## About the {% data variables.enterprise.management_console %} -The {% data variables.enterprise.management_console %} allows you to manage the low-level configuration of {% data variables.location.product_location %}. For example, you can complete initial setup, manage licensing and low-level settings, configure authentication, schedule maintenance windows, and monitor your instance. +The {% data variables.enterprise.management_console %} allows you to manage the low-level configuration of {% data variables.location.product_location %}. For example, you can complete initial setup, manage licensing and low-level settings, configure authentication, schedule maintenance windows, and monitor your instance. You can always reach the {% data variables.enterprise.management_console %} using {% data variables.location.product_location %}'s IP address, even when the instance is in maintenance mode, or there is a critical application failure or hostname or SSL misconfiguration. diff --git a/content/admin/configuring-packages/configuring-package-ecosystem-support-for-your-enterprise.md b/content/admin/configuring-packages/configuring-package-ecosystem-support-for-your-enterprise.md index ef37730d9c55..fcd0f139f552 100644 --- a/content/admin/configuring-packages/configuring-package-ecosystem-support-for-your-enterprise.md +++ b/content/admin/configuring-packages/configuring-package-ecosystem-support-for-your-enterprise.md @@ -47,7 +47,7 @@ If you've enabled npm packages on your enterprise and want to allow access to th {% data variables.product.prodname_registry %} uses a transparent proxy for network traffic that connects to the official npm registry at `registry.npmjs.com`. The proxy is enabled by default and cannot be disabled. -To allow network connections to the npm registry, you will need to configure network ACLs that allow {% data variables.product.prodname_ghe_server %} to send HTTPS traffic to `registry.npmjs.com` over port 443/TCP. +To allow network connections to the npm registry, you will need to configure network ACLs that allow {% data variables.product.prodname_ghe_server %} to send HTTPS traffic to `registry.npmjs.com` over port 443/TCP. Note that connections to `registry.npmjs.com` traverse through the Cloudflare network, and subsequently do not connect to a single static IP address; instead, a connection is made to an IP address within the CIDR ranges listed here: https://www.cloudflare.com/ips/. diff --git a/content/admin/configuring-packages/enabling-github-packages-with-minio.md b/content/admin/configuring-packages/enabling-github-packages-with-minio.md index 5325769f37b7..acf4c390c56f 100644 --- a/content/admin/configuring-packages/enabling-github-packages-with-minio.md +++ b/content/admin/configuring-packages/enabling-github-packages-with-minio.md @@ -34,7 +34,7 @@ Ensure your MinIO external storage access key ID and secret have these permissio ## Enabling {% data variables.product.prodname_registry %} with MinIO external storage -Although MinIO does not currently appear in the user interface under "Package Storage", MinIO is still supported by {% data variables.product.prodname_registry %} on {% data variables.product.prodname_enterprise %}. Also, note that MinIO's object storage is compatible with the S3 API and you can enter MinIO's bucket details in place of AWS S3 details. +Although MinIO does not currently appear in the user interface under "Package Storage", MinIO is still supported by {% data variables.product.prodname_registry %} on {% data variables.product.prodname_enterprise %}. Also, note that MinIO's object storage is compatible with the S3 API and you can enter MinIO's bucket details in place of AWS S3 details. {% data reusables.enterprise_site_admin_settings.access-settings %} {% data reusables.enterprise_site_admin_settings.management-console %} diff --git a/content/admin/configuring-settings/configuring-user-applications-for-your-enterprise/configuring-rate-limits.md b/content/admin/configuring-settings/configuring-user-applications-for-your-enterprise/configuring-rate-limits.md index 5ec5be83923a..61438a5d628d 100644 --- a/content/admin/configuring-settings/configuring-user-applications-for-your-enterprise/configuring-rate-limits.md +++ b/content/admin/configuring-settings/configuring-user-applications-for-your-enterprise/configuring-rate-limits.md @@ -1,7 +1,7 @@ --- title: Configuring rate limits intro: 'You can set rate limits for {% data variables.product.prodname_ghe_server %} using the {% data variables.enterprise.management_console %}.' -permissions: 'Site administrators can configure rate limits for a {% data variables.product.prodname_ghe_server %} instance.' +permissions: 'Site administrators can configure rate limits for a {% data variables.product.prodname_ghe_server %} instance.' redirect_from: - /enterprise/admin/installation/configuring-rate-limits - /enterprise/admin/configuration/configuring-rate-limits @@ -17,7 +17,7 @@ topics: - Performance --- -## About rate limits for {% data variables.product.product_name %} +## About rate limits for {% data variables.product.product_name %} To prevent excessive use of resources on {% data variables.location.product_location %} that could affect the instance's availability or performance for all users, you can configure rate limits. Rate limits are configurable for the {% data variables.product.prodname_enterprise_api %} and {% data variables.product.prodname_actions %}. diff --git a/content/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-codespaces-in-your-enterprise.md b/content/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-codespaces-in-your-enterprise.md index 1d48e36403ff..ef079af855d2 100644 --- a/content/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-codespaces-in-your-enterprise.md +++ b/content/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-codespaces-in-your-enterprise.md @@ -23,7 +23,7 @@ As an enterprise owner, you can set a policy to enable or disable {% data variab If you disable {% data variables.product.prodname_github_codespaces %} for an organization, users cannot use or create codespaces for any of that organization's private or internal repositories, regardless of whether use of the codespace would be billed to the user or to your organization or enterprise. You cannot prevent users from creating and using codespaces for public repositories in your organizations at their own expense, but an organization will not be able to pay for this usage if {% data variables.product.prodname_github_codespaces %} is disabled. -By enabling {% data variables.product.prodname_github_codespaces %}, you can help your members and collaborators get started with projects quickly, without needing to install lots of tools and dependencies locally to start contributing. However, you might want to roll out {% data variables.product.prodname_github_codespaces %} gradually across your organizations by enabling it for more organizations over time. Alternatively, if you need to comply with security regulations that require increased control over the private code in your enterprise, you might want to disable {% data variables.product.prodname_github_codespaces %} for all organizations in your enterprise. +By enabling {% data variables.product.prodname_github_codespaces %}, you can help your members and collaborators get started with projects quickly, without needing to install lots of tools and dependencies locally to start contributing. However, you might want to roll out {% data variables.product.prodname_github_codespaces %} gradually across your organizations by enabling it for more organizations over time. Alternatively, if you need to comply with security regulations that require increased control over the private code in your enterprise, you might want to disable {% data variables.product.prodname_github_codespaces %} for all organizations in your enterprise. If you're an organization owner, you can enable {% data variables.product.prodname_github_codespaces %} for specific members and collaborators in an organization. You can also choose to pay for these users' usage of {% data variables.product.prodname_codespaces %}. For more information, see "[AUTOTITLE](/codespaces/managing-codespaces-for-your-organization/enabling-or-disabling-github-codespaces-for-your-organization)" and "[AUTOTITLE](/codespaces/managing-codespaces-for-your-organization/choosing-who-owns-and-pays-for-codespaces-in-your-organization)." diff --git a/content/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise.md b/content/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise.md index e7c3d44d8f3c..087350374b2f 100644 --- a/content/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise.md +++ b/content/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise.md @@ -38,7 +38,7 @@ You can enforce policies to control the security settings for organizations owne Before you can require two-factor authentication for all organizations owned by your enterprise, you must enable 2FA for your own account. For more information, see "[AUTOTITLE](/authentication/securing-your-account-with-two-factor-authentication-2fa)." -Before you require use of two-factor authentication, we recommend notifying organization members, outside collaborators, and billing managers and asking them to set up 2FA for their accounts. Organization owners can see if members and outside collaborators already use 2FA on each organization's People page. For more information, see "[AUTOTITLE](/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/viewing-whether-users-in-your-organization-have-2fa-enabled)." +Before you require use of two-factor authentication, we recommend notifying organization members, outside collaborators, and billing managers and asking them to set up 2FA for their accounts. Organization owners can see if members and outside collaborators already use 2FA on each organization's "People" page. For more information, see "[AUTOTITLE](/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/viewing-whether-users-in-your-organization-have-2fa-enabled)." {% data reusables.two_fa.ghes_ntp %} @@ -58,10 +58,23 @@ Before you require use of two-factor authentication, we recommend notifying orga {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.security-tab %} 1. Under "Two-factor authentication", review the information about changing the setting. {% data reusables.enterprise-accounts.view-current-policy-config-orgs %} -1. Under "Two-factor authentication", select **Require two-factor authentication for all organizations in your business**, then click **Save**. +1. Under "Two-factor authentication", select **Require two-factor authentication for the enterprise and all of its organizations**, then click **Save**. 1. If prompted, read the information about how user access to organization resources will be affected by a 2FA requirement. To confirm the change, click **Confirm**. -1. Optionally, if any outside collaborators are removed from the organizations owned by your enterprise, we recommend sending them an invitation to reinstate their former privileges and access to your organization. Each person must enable two-factor authentication before they can accept your invitation. +1. Optionally, if any outside collaborators are removed from the organizations owned by your enterprise, we recommend sending them an invitation to reinstate their former privileges and access to your organization. Each person must enable 2FA before they can accept your invitation. +{% ifversion fpt or ghec %} + +### Requiring secure methods of two-factor authentication for organizations in your enterprise + +Alongside requiring two-factor authentication, enterprise owners can require that organization members, billing managers, and outside collaborators in all organizations owned by an enterprise use secure methods of 2FA. Secure two-factor methods are passkeys, security keys, authenticator apps, and the GitHub mobile app. Users who do not have a secure method of 2FA configured, or who have any insecure method configured, will be prevented from accessing resources within any organizations owned by an enterprise. {% ifversion ghec %} This policy is not available for enterprises with managed users.{% endif %} + +Before you require secure methods of two-factor authentication, we recommend notifying organization members, outside collaborators, and billing managers and asking them to set up secure 2FA for their accounts. Organization owners can see if members and outside collaborators already use secure methods of 2FA on each organization's "People" page. For more information, see "[AUTOTITLE](/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/viewing-whether-users-in-your-organization-have-2fa-enabled)." + +{% data reusables.enterprise.secure_two_factor_authentication %} +{% data reusables.organizations.secure_two_factor_authentication_confirm %} +1. Optionally, if any outside collaborators are removed from the organizations owned by your enterprise, we recommend sending them an invitation to reinstate their former privileges and access to your organization. Each person must enable 2FA with a secure method before they can accept your invitation. + +{% endif %} {% endif %} ## Managing SSH certificate authorities for your enterprise diff --git a/content/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise.md b/content/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise.md index 9fbdd3d84966..8f5e74b4f3ae 100644 --- a/content/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise.md +++ b/content/admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise.md @@ -172,7 +172,7 @@ For more information about using deploy keys, see "[AUTOTITLE](/authentication/c Across all organizations owned by your enterprise, you can allow members with admin access to change a repository's visibility, restrict repository visibility changes to organization owners, or allow owners to administer the setting on the organization level. When you prevent members from changing repository visibility, only enterprise owners can change the visibility of a repository. -If an enterprise owner has restricted repository creation to organization owners only, then members will not be able to change repository visibility. For more information, see "[Enforcing a policy for repository creation](#enforcing-a-policy-for-repository-creation)." +If an enterprise owner has restricted repository creation to organization owners only, then members will not be able to change repository visibility. For more information, see "[Enforcing a policy for repository creation](#enforcing-a-policy-for-repository-creation)." {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.policies-tab %} diff --git a/content/admin/enforcing-policies/enforcing-policy-with-pre-receive-hooks/creating-a-pre-receive-hook-environment.md b/content/admin/enforcing-policies/enforcing-policy-with-pre-receive-hooks/creating-a-pre-receive-hook-environment.md index a0fc50b61c98..67cb9f69e69e 100644 --- a/content/admin/enforcing-policies/enforcing-policy-with-pre-receive-hooks/creating-a-pre-receive-hook-environment.md +++ b/content/admin/enforcing-policies/enforcing-policy-with-pre-receive-hooks/creating-a-pre-receive-hook-environment.md @@ -17,7 +17,7 @@ shortTitle: Pre-receive hook environments --- A pre-receive environment for {% data variables.product.prodname_ghe_server %} is a Linux [`chroot`](https://en.wikipedia.org/wiki/Chroot) environment. Because pre-receive hooks execute on every push event, they should be fast and lightweight. The environment needed for such checks will typically be minimal. -{% data variables.product.prodname_ghe_server %} provides a default environment which includes these packages: `awk`, `bash`, `coreutils`, `curl`, `find`, `gnupg`, `grep`, `jq`, `sed`. +{% data variables.product.prodname_ghe_server %} provides a default environment which includes these packages: `awk`, `bash`, `coreutils`, `curl`, `find`, `gnupg`, `grep`, `jq`, `sed`. If you have a specific requirement that isn't met by this environment, such as support for a particular language, you can create and upload your own 64-bit Linux `chroot` environment. diff --git a/content/admin/installing-your-enterprise-server/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-google-cloud-platform.md b/content/admin/installing-your-enterprise-server/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-google-cloud-platform.md index 3e6e3df88006..a71389683b5f 100644 --- a/content/admin/installing-your-enterprise-server/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-google-cloud-platform.md +++ b/content/admin/installing-your-enterprise-server/setting-up-a-github-enterprise-server-instance/installing-github-enterprise-server-on-google-cloud-platform.md @@ -42,7 +42,7 @@ Before launching {% data variables.location.product_location %} on Google Cloud gcloud compute images list --project github-enterprise-public --no-standard-images ``` -1. Take note of the image name for the latest GCE image of {% data variables.product.prodname_ghe_server %}. +1. Take note of the image name for the latest GCE image of {% data variables.product.prodname_ghe_server %}. ## Configuring the firewall diff --git a/content/admin/managing-accounts-and-repositories/managing-organizations-in-your-enterprise/adding-organizations-to-your-enterprise.md b/content/admin/managing-accounts-and-repositories/managing-organizations-in-your-enterprise/adding-organizations-to-your-enterprise.md index 2774267cecc9..760bfec3fef2 100644 --- a/content/admin/managing-accounts-and-repositories/managing-organizations-in-your-enterprise/adding-organizations-to-your-enterprise.md +++ b/content/admin/managing-accounts-and-repositories/managing-organizations-in-your-enterprise/adding-organizations-to-your-enterprise.md @@ -35,7 +35,7 @@ There are three ways to add organizations to your enterprise. After you add an existing organization to your enterprise, the organization's resources remain accessible to members at the same URLs, and the following changes will apply. -* **Two-factor authentication (2FA):** If required by the enterprise, members without 2FA will be removed. +* **Two-factor authentication (2FA):** If required by the enterprise, members without 2FA, or with insecure 2FA, will be unable to access organization resources until they configure 2FA that meets the enterprise's 2FA security requirements. * **Enterprise licenses:** Members become part of the enterprise, and usage is billed to the enterprise account. You must ensure that the enterprise account has enough licenses to accommodate any new members. See "[AUTOTITLE](/billing/managing-your-github-billing-settings/about-billing-for-your-enterprise)." * **Enterprise role management:** Enterprise owners can manage their roles within the organization. See "[AUTOTITLE](/admin/user-management/managing-organizations-in-your-enterprise/managing-your-role-in-an-organization-owned-by-your-enterprise)." * **Enterprise policies:** Any policies applied to the enterprise will apply to the organization. {% data reusables.actions.org-to-enterprise-actions-permissions %} diff --git a/content/admin/managing-accounts-and-repositories/managing-organizations-in-your-enterprise/removing-organizations-from-your-enterprise.md b/content/admin/managing-accounts-and-repositories/managing-organizations-in-your-enterprise/removing-organizations-from-your-enterprise.md index 01963c09c6b0..99128f782488 100644 --- a/content/admin/managing-accounts-and-repositories/managing-organizations-in-your-enterprise/removing-organizations-from-your-enterprise.md +++ b/content/admin/managing-accounts-and-repositories/managing-organizations-in-your-enterprise/removing-organizations-from-your-enterprise.md @@ -35,7 +35,7 @@ As part of the downgrade to the free plan: ## Removing an organization from your enterprise {% data reusables.enterprise-accounts.access-enterprise %} -1. In the left sidebar, click **Organizations**. +1. In the left sidebar, click **Organizations**. 1. In the search bar, begin typing the organization's name until the organization appears in the search results. 1. To the right of the organization's name, select the {% octicon "gear" aria-label="Organization settings" %} dropdown menu and click **Remove organization**. diff --git a/content/admin/managing-accounts-and-repositories/managing-organizations-in-your-enterprise/requiring-two-factor-authentication-for-an-organization.md b/content/admin/managing-accounts-and-repositories/managing-organizations-in-your-enterprise/requiring-two-factor-authentication-for-an-organization.md index e1b62b4619bb..76bd5fdb4bdf 100644 --- a/content/admin/managing-accounts-and-repositories/managing-organizations-in-your-enterprise/requiring-two-factor-authentication-for-an-organization.md +++ b/content/admin/managing-accounts-and-repositories/managing-organizations-in-your-enterprise/requiring-two-factor-authentication-for-an-organization.md @@ -31,10 +31,9 @@ Before you require use of two-factor authentication, we recommend notifying orga {% data reusables.two_fa.ghes_ntp %} > [!WARNING] -> * When you require two-factor authentication, members who do not use 2FA will not be able to access your enterprise resources until they enable 2FA on their account. They will retain membership even without 2FA, including occupying seats in your enterprise and organizations. -> * When your require two-factor authentication, outside collaborators (including bot accounts) who do not use 2FA will be removed from the enterprise and its organization and lose access to repositories, including their forks of private repositories. If they enable 2FA for their personal account within three months of being removed from the organization, you can [reinstate their access privileges and settings](/organizations/managing-membership-in-your-organization/reinstating-a-former-member-of-your-organization). -> * When two-factor authentication is required, outside collaborators who disable 2FA will automatically be removed from the enterprise and its organizations. {% ifversion fpt or ghec %}Members and billing managers{% else %}Members{% endif %} who disable 2FA will not be able to access your enterprise and organization resources until they re-enable it. -> * If you're the sole owner of an organization that requires two-factor authentication, you won't be able to disable 2FA for your personal account without disabling required 2FA for the organization. +> * When you require two-factor authentication, members and outside collaborators (including bot accounts) who do not use 2FA will be removed from the organization and lose access to its repositories, including their forks of private repositories. If they enable 2FA for their personal account within three months of being removed from the organization, you can reinstate their access privileges and settings, see [AUTOTITLE](/organizations/managing-membership-in-your-organization/reinstating-a-former-member-of-your-organization). +> * When 2FA is required, organization members or outside collaborators who disable 2FA will automatically be removed from the organization. +> * If you're the sole owner of an organization that requires two-factor authentication, you won't be able to disable 2FA for your personal account without disabling required two-factor authentication for the organization. ## Requiring two-factor authentication for an organization diff --git a/content/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/exporting-membership-information-for-your-enterprise.md b/content/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/exporting-membership-information-for-your-enterprise.md index 01cab3d2f292..3abb9595f9d7 100644 --- a/content/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/exporting-membership-information-for-your-enterprise.md +++ b/content/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/exporting-membership-information-for-your-enterprise.md @@ -21,7 +21,7 @@ The membership information report includes the following information. > You can only export the datetime of the user's last activity at the organization level. For more information, see "[AUTOTITLE](/organizations/managing-membership-in-your-organization/exporting-member-information-for-your-organization#about-export-of-membership-information)." * Username and display name details -* Whether the user has two-factor authentication enabled {% ifversion mandatory-2fa-required-overview %}or is required to enable it{% endif %} +* Whether the user has two-factor authentication enabled and how secure their 2FA configuration is * Whether the user is an organization owner or member * Organizations with pending invitations * Optionally, additional information that depends on the enterprise's configuration: diff --git a/content/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/viewing-people-in-your-enterprise.md b/content/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/viewing-people-in-your-enterprise.md index 9a71df086f9b..fb4a7b968f5c 100644 --- a/content/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/viewing-people-in-your-enterprise.md +++ b/content/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/viewing-people-in-your-enterprise.md @@ -230,6 +230,18 @@ You can view a list of members in your enterprise who don't have an email addres ## Viewing whether members in your enterprise have 2FA enabled +{% ifversion fpt or ghec %} + +You can see which people in your enterprise have enabled two-factor authentication. + +{% data reusables.enterprise-accounts.access-enterprise %} +{% data reusables.enterprise-accounts.people-tab %} +1. To view the two-factor authentication security levels of enterprise members, on the right, select **Two-factor authentication**, then click **Secure**, **Insecure**, or **Disabled**. + + ![Screenshot of the list of enterprise members. A dropdown menu, labeled "Two-factor authentication", is expanded and outlined in orange.](/assets/images/help/2fa/filter-enterprise-members-by-2fa.png) + +{% else %} + You can see which people in your enterprise have enabled two-factor authentication{% ifversion mandatory-2fa-required-overview %} or are required to do so{% endif %}. {% ifversion mandatory-2fa-required-overview %} @@ -238,9 +250,11 @@ You can see which people in your enterprise have enabled two-factor authenticati {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.people-tab %} -1. To view enterprise members who have enabled or disabled two-factor authentication, on the right, select **2FA**, then click **Enabled** or **Disabled**. {% ifversion mandatory-2fa-required-overview %}Additionally, you can view which members are required to enable two-factor authentication by clicking **Required**. +1. To view enterprise members who have enabled or disabled two-factor authentication, on the right, select **2FA**, then click **Enabled** or **Disabled**. - ![Screenshot of the list of organization members. A dropdown menu, labeled "2FA", is expanded and outlined in orange.](/assets/images/help/2fa/filter-org-members-by-2fa-required.png){% endif %} + ![Screenshot of the list of organization members. A dropdown menu, labeled "2FA", is expanded and outlined in orange.](/assets/images/help/2fa/legacy-filter-org-members-by-2fa.png) + +{% endif %} ## Further reading diff --git a/content/admin/managing-github-actions-for-your-enterprise/enabling-github-actions-for-github-enterprise-server/enabling-github-actions-with-amazon-s3-storage.md b/content/admin/managing-github-actions-for-your-enterprise/enabling-github-actions-for-github-enterprise-server/enabling-github-actions-with-amazon-s3-storage.md index 12599182d505..a390178c36e8 100644 --- a/content/admin/managing-github-actions-for-your-enterprise/enabling-github-actions-for-github-enterprise-server/enabling-github-actions-with-amazon-s3-storage.md +++ b/content/admin/managing-github-actions-for-your-enterprise/enabling-github-actions-for-github-enterprise-server/enabling-github-actions-with-amazon-s3-storage.md @@ -102,7 +102,7 @@ To configure {% data variables.product.prodname_ghe_server %} to use OIDC with a * For "Identity provider", use the **Choose provider** drop-down menu and select the OIDC provider you created in the previous steps. It should be named `HOSTNAME/_services/token`, where `HOSTNAME` is the public hostname for {% data variables.location.product_location_enterprise %}. * For "Audience", select `sts.amazonaws.com`. 1. Click **Next**. -1. On the "Add permissions" page, use the filter to find and select the `AmazonS3FullAccess` policy. +1. On the "Add permissions" page, use the filter to find and select the `AmazonS3FullAccess` policy. 1. Click **Next**. 1. On the "Name, review, and create" page, enter a name for the role, and click **Create role**. 1. On the IAM "Roles" page, select the role you just created. diff --git a/content/admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-cloud.md b/content/admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-cloud.md index da4e39b92ba2..e1349cb67c13 100644 --- a/content/admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-cloud.md +++ b/content/admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-cloud.md @@ -27,7 +27,7 @@ You can use policies to control how enterprise members use {% data variables.pro ## Adding runners -To run {% data variables.product.prodname_actions %} workflows, you need to use runners. {% data reusables.actions.about-runners %} If you use {% data variables.product.company_short %}-hosted runners, you will be be billed based on consumption after exhausting the minutes included in {% data variables.product.product_name %}, while self-hosted runners are free. For more information, see "[AUTOTITLE](/billing/managing-billing-for-github-actions/about-billing-for-github-actions)." +To run {% data variables.product.prodname_actions %} workflows, you need to use runners. {% data reusables.actions.about-runners %} If you use {% data variables.product.company_short %}-hosted runners, you will be billed based on consumption after exhausting the minutes included in {% data variables.product.product_name %}, while self-hosted runners are free. For more information, see "[AUTOTITLE](/billing/managing-billing-for-github-actions/about-billing-for-github-actions)." For more information, see "[AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners)." diff --git a/content/admin/managing-iam/configuring-authentication-for-enterprise-managed-users/about-support-for-your-idps-conditional-access-policy.md b/content/admin/managing-iam/configuring-authentication-for-enterprise-managed-users/about-support-for-your-idps-conditional-access-policy.md index db96a04b5059..d9ddceaa88bb 100644 --- a/content/admin/managing-iam/configuring-authentication-for-enterprise-managed-users/about-support-for-your-idps-conditional-access-policy.md +++ b/content/admin/managing-iam/configuring-authentication-for-enterprise-managed-users/about-support-for-your-idps-conditional-access-policy.md @@ -36,7 +36,7 @@ A deploy key is an SSH key that grants access to an individual repository. Becau ## Considerations for integrations and automations -{% data variables.product.prodname_dotcom %} sends the originating IP address to your IdP for validation against your CAP. To make sure actions and apps are not blocked by your IdP's CAP, you will need to make changes to your configuration. +{% data variables.product.prodname_dotcom %} sends the originating IP address to your IdP for validation against your CAP. To make sure actions and apps are not blocked by your IdP's CAP, you will need to make changes to your configuration. {% data reusables.enterprise-accounts.oidc-gei-warning %} diff --git a/content/admin/managing-iam/configuring-authentication-for-enterprise-managed-users/configuring-saml-single-sign-on-with-okta-for-enterprise-managed-users.md b/content/admin/managing-iam/configuring-authentication-for-enterprise-managed-users/configuring-saml-single-sign-on-with-okta-for-enterprise-managed-users.md index b9927b55455c..34395d383028 100644 --- a/content/admin/managing-iam/configuring-authentication-for-enterprise-managed-users/configuring-saml-single-sign-on-with-okta-for-enterprise-managed-users.md +++ b/content/admin/managing-iam/configuring-authentication-for-enterprise-managed-users/configuring-saml-single-sign-on-with-okta-for-enterprise-managed-users.md @@ -33,7 +33,7 @@ The {% data variables.product.prodname_emu_idp_application %} application on Okt 1. In the application on Okta, click the **Assignments** tab and assign the application to your Okta account. 1. Click the **Sign on** tab. -1. Next to "Enterprise Name," type the name of your {% data variables.enterprise.prodname_emu_enterprise %}. +1. Next to "Enterprise Name," type the name of your {% data variables.enterprise.prodname_emu_enterprise %}. >[!NOTE] >For example, if you sign in to `github.com/enterprises/octocorp` or `{% data variables.enterprise.data_residency_example_domain %}`, your enterprise name is `octocorp`. diff --git a/content/admin/managing-iam/provisioning-user-accounts-with-scim/provisioning-users-and-groups-with-scim-using-the-rest-api.md b/content/admin/managing-iam/provisioning-user-accounts-with-scim/provisioning-users-and-groups-with-scim-using-the-rest-api.md index 56ee38861e31..ac2c9a1f9f14 100644 --- a/content/admin/managing-iam/provisioning-user-accounts-with-scim/provisioning-users-and-groups-with-scim-using-the-rest-api.md +++ b/content/admin/managing-iam/provisioning-user-accounts-with-scim/provisioning-users-and-groups-with-scim-using-the-rest-api.md @@ -106,7 +106,7 @@ To ensure that your environment has a single source of truth, you should only pr However, you can safely retrieve information from {% data variables.product.company_short %}'s APIs with `GET` requests in scripts or ad hoc requests by an enterprise owner. > [!WARNING] -> If you use a partner IdP for SCIM provisioning, the application on the IdP must be the only system that makes write requests to the API. If you make ad hoc requests using the `POST`, `PUT`, `PATCH`, or `DELETE` methods, subsequent synchronization attempts will fail, and provisioning won't function properly for your enterprise. +> If you use a partner IdP for SCIM provisioning, the application on the IdP must be the only system that makes write requests to the API. If you make ad hoc requests using the `POST`, `PUT`, `PATCH`, or `DELETE` methods, subsequent synchronization attempts will fail, and provisioning won't function properly for your enterprise. ### Send valid requests to REST API endpoints diff --git a/content/admin/managing-iam/using-saml-for-enterprise-iam/troubleshooting-saml-authentication.md b/content/admin/managing-iam/using-saml-for-enterprise-iam/troubleshooting-saml-authentication.md index 744d83d1a918..14a76990800c 100644 --- a/content/admin/managing-iam/using-saml-for-enterprise-iam/troubleshooting-saml-authentication.md +++ b/content/admin/managing-iam/using-saml-for-enterprise-iam/troubleshooting-saml-authentication.md @@ -56,7 +56,7 @@ base64 --decode ENCODED_OUTPUT When a user signs into {% data variables.location.product_location %} for the first time with SAML authentication, {% data variables.product.product_name %} creates a user account on the instance and maps the SAML `NameID` and `nameid-format` to the account. -When the user signs in again, {% data variables.product.prodname_ghe_server %} compares the account's `NameID` and `nameid-format` mapping to the IdP's response. If the `NameID` or `nameid-format` in the IdP's response no longer matches the values that {% data variables.product.product_name %} expects for the user, the sign-in will fail. The user will see the following message. +When the user signs in again, {% data variables.product.prodname_ghe_server %} compares the account's `NameID` and `nameid-format` mapping to the IdP's response. If the `NameID` or `nameid-format` in the IdP's response no longer matches the values that {% data variables.product.product_name %} expects for the user, the sign-in will fail. The user will see the following message. > Another user already owns the account. Please have your administrator check the authentication log. diff --git a/content/admin/managing-your-enterprise-account/changing-the-url-for-your-enterprise.md b/content/admin/managing-your-enterprise-account/changing-the-url-for-your-enterprise.md index a704f81a7e4c..152c176492bf 100644 --- a/content/admin/managing-your-enterprise-account/changing-the-url-for-your-enterprise.md +++ b/content/admin/managing-your-enterprise-account/changing-the-url-for-your-enterprise.md @@ -36,7 +36,7 @@ Before changing the slug, to ensure you will have access to your enterprise even Many {% data variables.product.company_short %} API endpoints for managing an enterprise take the enterprise slug as a parameter. If you use these endpoints in automations, you will need to update the API calls to use the new slug. API calls that use the old slug will stop working immediately. The enterprise ID, which can be used as an alternative to the slug in many cases, is not affected by a slug change. -### OpenID Connect with {% data variables.product.prodname_actions %} workflows +### OpenID Connect with {% data variables.product.prodname_actions %} workflows If you use OpenID Connect (OIDC) in {% data variables.product.prodname_actions %} workflows, and have configured your cloud provider to only accept tokens from a unique URL that includes your enterprise slug, you will need to update the settings in your cloud provider. To prevent workflows from failing, the most robust option is to configure your provider to accept tokens from both the old and new slug just before you change the slug. For more information, see "[AUTOTITLE](/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect#customizing-the-issuer-value-for-an-enterprise)." diff --git a/content/admin/monitoring-activity-in-your-enterprise/analyzing-how-your-team-works-with-server-statistics/about-server-statistics.md b/content/admin/monitoring-activity-in-your-enterprise/analyzing-how-your-team-works-with-server-statistics/about-server-statistics.md index 0e3b513dfa39..3ed1d4baef7c 100644 --- a/content/admin/monitoring-activity-in-your-enterprise/analyzing-how-your-team-works-with-server-statistics/about-server-statistics.md +++ b/content/admin/monitoring-activity-in-your-enterprise/analyzing-how-your-team-works-with-server-statistics/about-server-statistics.md @@ -36,7 +36,7 @@ For a better understanding of how we store and secure {% data variables.product. {% data variables.product.company_short %} collects {% data variables.product.prodname_server_statistics %} data for as long as your {% data variables.product.prodname_ghe_server %} license is active and the {% data variables.product.prodname_server_statistics %} feature is enabled. -If you would like to delete your data, you may do so by contacting GitHub Support, your {% data variables.product.prodname_dotcom %} account representative, or your Customer Success Manager. Generally, we delete data in the timeframe specified in our privacy statement. For more information, see [{% data variables.product.company_short %}'s privacy statement](/free-pro-team@latest/site-policy/privacy-policies/github-privacy-statement#data-retention-and-deletion-of-data) in the {% data variables.product.prodname_dotcom_the_website %} documentation. +If you would like to delete your data, you may do so by contacting GitHub Support, your {% data variables.product.prodname_dotcom %} account representative, or your Customer Success Manager. Generally, we delete data in the timeframe specified in our privacy statement. For more information, see [{% data variables.product.company_short %}'s privacy statement](/free-pro-team@latest/site-policy/privacy-policies/github-privacy-statement#data-retention-and-deletion-of-data) in the {% data variables.product.prodname_dotcom_the_website %} documentation. ### About data portability @@ -108,7 +108,7 @@ The following aggregate metrics will be collected and transmitted on a daily bas | AY | `packages_stats.ecosystems.docker.internal_packages_count` | Number of internal Docker images | | AZ | `packages_stats.ecosystems.docker.user_packages_count` | Number of Docker images owned by users | | BA | `packages_stats.ecosystems.docker.organization_packages_count` | Number of Docker images owned by organizations | -| BB | `packages_stats.ecosystems.docker.daily_download_count` | Number of downloads of Docker images | +| BB | `packages_stats.ecosystems.docker.daily_download_count` | Number of downloads of Docker images | | BC | `packages_stats.ecosystems.docker.daily_update_count` | Number of Docker images updated | | BD | `packages_stats.ecosystems.docker.daily_delete_count` | Number of Docker images deleted | | BE | `packages_stats.ecosystems.docker.daily_create_count` | Number of Docker images created | @@ -118,19 +118,19 @@ The following aggregate metrics will be collected and transmitted on a daily bas | BI | `packages_stats.ecosystems.maven.public_packages_count` | Number of public Maven packages | | BJ | `packages_stats.ecosystems.maven.internal_packages_count` | Number of internal Maven packages | | BK | `packages_stats.ecosystems.maven.user_packages_count` | Number of Maven packages owned by user accounts | -| BL | `packages_stats.ecosystems.maven.organization_packages_count` | Number of Maven packages owned by organizations | -| BM | `packages_stats.ecosystems.maven.daily_download_count` | Number of downloads of Maven packages | +| BL | `packages_stats.ecosystems.maven.organization_packages_count` | Number of Maven packages owned by organizations | +| BM | `packages_stats.ecosystems.maven.daily_download_count` | Number of downloads of Maven packages | | BN | `packages_stats.ecosystems.maven.daily_update_count` | Number of Maven packages updated | | BO | `packages_stats.ecosystems.maven.daily_delete_count` | Number of Maven packages deleted | | BP | `packages_stats.ecosystems.maven.daily_create_count` | Number of Maven packages created | | BQ | `packages_stats.ecosystems.npm.registry_enabled` | Whether npm is enabled for {% data variables.product.prodname_registry %} | | BR | `packages_stats.ecosystems.npm.published_packages_count` | Number of published npm packages (private, public, and internal) | | BS | `packages_stats.ecosystems.npm.private_packages_count` | Number of private npm packages | -| BT | `packages_stats.ecosystems.npm.public_packages_count` | Number of public npm packages | +| BT | `packages_stats.ecosystems.npm.public_packages_count` | Number of public npm packages | | BU | `packages_stats.ecosystems.npm.internal_packages_count` | Number of internal npm packages | | BV | `packages_stats.ecosystems.npm.user_packages_count` | Number of npm packages owned by user accounts | | BW | `packages_stats.ecosystems.npm.organization_packages_count` | Number of npm packages owned by organizations | -| BX | `packages_stats.ecosystems.npm.daily_download_count` | Number of downloads of npm packages | +| BX | `packages_stats.ecosystems.npm.daily_download_count` | Number of downloads of npm packages | | BY | `packages_stats.ecosystems.npm.daily_update_count` | Number of npm packages updated | | BZ | `packages_stats.ecosystems.npm.daily_delete_count` | Number of npm packages deleted | | CA | `packages_stats.ecosystems.npm.daily_create_count` | Number of npm packages created | diff --git a/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/searching-the-audit-log-for-your-enterprise.md b/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/searching-the-audit-log-for-your-enterprise.md index b80e2dfa4147..639ee2889cd4 100644 --- a/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/searching-the-audit-log-for-your-enterprise.md +++ b/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/searching-the-audit-log-for-your-enterprise.md @@ -41,7 +41,7 @@ You cannot search for entries using text. You can, however, construct search que | `Yesterday's activity` | All actions created in the past day. | | `Enterprise account management` | All actions in the `business` category. | | `Organization membership` | All actions for when a new user was invited to join an organization. | -| `Team management` | All actions related to team management.
- When a user account or repository was added or removed from a team
- When a team maintainer was promoted or demoted
- When a team was deleted | +| `Team management` | All actions related to team management.
- When a user account or repository was added or removed from a team
- When a team maintainer was promoted or demoted
- When a team was deleted | | `Repository management` | All actions for repository management.
- When a repository was created or deleted
- When the repository visibility was changed
- When a team was added or removed from a repository | | {% ifversion ghec %} | | `Billing updates` | All actions concerning how your enterprise pays for {% data variables.product.prodname_dotcom %} and for when your billing email address was changed. | 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 f956d1daf2bb..c2f946bbbc90 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 @@ -69,6 +69,16 @@ To set up the audit log stream, follow the instructions for your provider: {% endif %} +{% ifversion ghec %} + +### Streaming to multiple endpoints + +>[!NOTE] This feature is currently in {% data variables.release-phases.public_preview %} and subject to change. + +You can stream audit logs to multiple endpoints. For example, you can stream your audit log to two endpoints of the same type, or you can stream to two different providers. To set up multiple streams, follow the instructions for each provider. + +{% endif %} + ### Setting up streaming to Amazon S3 {% ifversion ghes %} diff --git a/content/admin/monitoring-and-managing-your-instance/caching-repositories/about-repository-caching.md b/content/admin/monitoring-and-managing-your-instance/caching-repositories/about-repository-caching.md index 5f527448717e..3e797dcfaa93 100644 --- a/content/admin/monitoring-and-managing-your-instance/caching-repositories/about-repository-caching.md +++ b/content/admin/monitoring-and-managing-your-instance/caching-repositories/about-repository-caching.md @@ -15,7 +15,7 @@ If you have teams and CI farms located around the world, you may experience redu A repository cache eliminates the need for {% data variables.product.product_name %} to transmit the same Git data over a long-haul network link multiple times to serve multiple clients, by serving your repository data close to CI farms and distributed teams. For instance, if your primary instance is in North America and you also have a large presence in Asia, you will benefit from setting up the repository cache in Asia for use by CI runners there. -The repository cache listens to the primary instance, whether that's a single instance or a geo-replicated set of instances, for changes to Git data. CI farms and other read-heavy consumers clone and fetch from the repository cache instead of the primary instance. Changes are propagated across the network, at periodic intervals, once per cache instance rather than once per client. Git data will typically be visible on the repository cache within several minutes after the data is pushed to the primary instance. {% ifversion ghes %}The [`cache_sync` webhook](/webhooks-and-events/webhooks/webhook-events-and-payloads#cache_sync) can be used by CI systems to react to data being available in the cache.{% endif %} +The repository cache listens to the primary instance, whether that's a single instance or a geo-replicated set of instances, for changes to Git data. CI farms and other read-heavy consumers clone and fetch from the repository cache instead of the primary instance. Changes are propagated across the network, at periodic intervals, once per cache instance rather than once per client. Git data will typically be visible on the repository cache within several minutes after the data is pushed to the primary instance.{% ifversion ghes %} The [`cache_sync` webhook](/webhooks-and-events/webhooks/webhook-events-and-payloads#cache_sync) can be used by CI systems to react to data being available in the cache.{% endif %} {% data variables.product.product_name %} caches both Git and {% data variables.large_files.product_name_long %} ({% data variables.large_files.product_name_short %}) data. diff --git a/content/admin/monitoring-and-managing-your-instance/caching-repositories/configuring-a-repository-cache.md b/content/admin/monitoring-and-managing-your-instance/caching-repositories/configuring-a-repository-cache.md index 785c220277be..8ff5b418eba5 100644 --- a/content/admin/monitoring-and-managing-your-instance/caching-repositories/configuring-a-repository-cache.md +++ b/content/admin/monitoring-and-managing-your-instance/caching-repositories/configuring-a-repository-cache.md @@ -58,7 +58,7 @@ Then, when told to fetch `https://github.example.com/myorg/myrepo`, Git will ins ``` 1. To configure the repository cache, use the `ghe-repl-node` command and include the necessary parameters. - * Set a `cache-location` for the repository cache, replacing _CACHE-LOCATION_ with an alphanumeric identifier, such as the region where the cache is deployed. The _CACHE-LOCATION_ value must not be any of the subdomains reserved for use with subdomain isolation, such as `assets` or `media`. For a list of reserved names, see "[AUTOTITLE](/admin/configuration/configuring-network-settings/enabling-subdomain-isolation#about-subdomain-isolation)." + * Set a `cache-location` for the repository cache, replacing _CACHE-LOCATION_ with an alphanumeric identifier, such as the region where the cache is deployed. The _CACHE-LOCATION_ value must not be any of the subdomains reserved for use with subdomain isolation, such as `assets` or `media`. For a list of reserved names, see "[AUTOTITLE](/admin/configuration/configuring-network-settings/enabling-subdomain-isolation#about-subdomain-isolation)." * Set a `cache-domain` for the repository cache, replacing _EXTERNAL-CACHE-DOMAIN_ with the hostname Git clients will use to access the repository cache. If you do not specify a `cache-domain`, {% data variables.product.product_name %} will prepend the _CACHE-LOCATION_ value as a subdomain to the hostname configured for your instance. For more information, see "[AUTOTITLE](/admin/configuration/configuring-network-settings/configuring-a-hostname)." * If you haven't already, set the datacenter name on the primary and any replica appliances, replacing DC-NAME with a datacenter name. diff --git a/content/admin/monitoring-and-managing-your-instance/configuring-clustering/about-clustering.md b/content/admin/monitoring-and-managing-your-instance/configuring-clustering/about-clustering.md index 14f97d8d05c7..9c1de50087f0 100644 --- a/content/admin/monitoring-and-managing-your-instance/configuring-clustering/about-clustering.md +++ b/content/admin/monitoring-and-managing-your-instance/configuring-clustering/about-clustering.md @@ -22,7 +22,7 @@ topics: The cluster topology for {% data variables.product.prodname_ghe_server %} provides horizontal scaling for companies with tens of thousands of developers. {% data variables.product.company_short %} recommends clustering if a single primary node would routinely experience resource exhaustion. -In a cluster, the instance provides services and distributes data across multiple virtual machines (VMs) that run the {% data variables.product.product_name %} software. Each VM is called a node. For more information, see "[AUTOTITLE](/admin/enterprise-management/configuring-clustering/about-cluster-nodes)." +In a cluster, the instance provides services and distributes data across multiple virtual machines (VMs) that run the {% data variables.product.product_name %} software. Each VM is called a node. For more information, see "[AUTOTITLE](/admin/enterprise-management/configuring-clustering/about-cluster-nodes)." diff --git a/content/admin/monitoring-and-managing-your-instance/configuring-clustering/configuring-high-availability-replication-for-a-cluster.md b/content/admin/monitoring-and-managing-your-instance/configuring-clustering/configuring-high-availability-replication-for-a-cluster.md index 9bd2a60328a1..52775446bc88 100644 --- a/content/admin/monitoring-and-managing-your-instance/configuring-clustering/configuring-high-availability-replication-for-a-cluster.md +++ b/content/admin/monitoring-and-managing-your-instance/configuring-clustering/configuring-high-availability-replication-for-a-cluster.md @@ -126,7 +126,7 @@ To configure high availability, you must define a corresponding replica node for For an example configuration, see "[Review an example configuration](#3-review-an-example-configuration)." -1. For each node in your cluster, provision a matching virtual machine with identical specifications, running the same version of {% data variables.product.prodname_ghe_server %}. Note the IPv4 address and hostname for each new cluster node. For more information, see "[Prerequisites](#prerequisites)." +1. For each node in your cluster, provision a matching virtual machine with identical specifications, running the same version of {% data variables.product.prodname_ghe_server %}. Note the IPv4 address and hostname for each new cluster node. For more information, see "[Prerequisites](#prerequisites)." > [!NOTE] > If you're reconfiguring high availability after a failover, you can use the old nodes from the primary datacenter instead. @@ -315,7 +315,7 @@ To monitor the replication of all services, use the following command. ghe-cluster-repl-status ``` -You can use `ghe-cluster-status` to review the overall health of your cluster. For more information, see "[AUTOTITLE](/enterprise/admin/configuration/command-line-utilities#ghe-cluster-status)." +You can use `ghe-cluster-status` to review the overall health of your cluster. For more information, see "[AUTOTITLE](/enterprise/admin/configuration/command-line-utilities#ghe-cluster-status)." ## Reconfiguring high availability replication after a failover diff --git a/content/admin/monitoring-and-managing-your-instance/configuring-clustering/initializing-the-cluster.md b/content/admin/monitoring-and-managing-your-instance/configuring-clustering/initializing-the-cluster.md index 55e5cf4f5122..4d55a7322abd 100644 --- a/content/admin/monitoring-and-managing-your-instance/configuring-clustering/initializing-the-cluster.md +++ b/content/admin/monitoring-and-managing-your-instance/configuring-clustering/initializing-the-cluster.md @@ -43,7 +43,7 @@ On the node that will function as your primary MySQL node, install your {% data To initialize the cluster, you need a cluster configuration file (`cluster.conf`). For more information, see "[AUTOTITLE](/admin/enterprise-management/configuring-clustering/initializing-the-cluster#about-the-cluster-configuration-file)". -1. From the first node that was configured, run `ghe-cluster-config-init`. This will initialize the cluster if there are nodes in the cluster configuration file that are not configured. +1. From the first node that was configured, run `ghe-cluster-config-init`. This will initialize the cluster if there are nodes in the cluster configuration file that are not configured. 1. Run `ghe-cluster-config-apply`. This will validate the `cluster.conf` file, apply the configuration to each node file and bring up the configured services on each node. To check the status of a running cluster use the `ghe-cluster-status` command. diff --git a/content/admin/monitoring-and-managing-your-instance/configuring-clustering/replacing-a-cluster-node.md b/content/admin/monitoring-and-managing-your-instance/configuring-clustering/replacing-a-cluster-node.md index af3019ccc21b..0c4dbe4f8281 100644 --- a/content/admin/monitoring-and-managing-your-instance/configuring-clustering/replacing-a-cluster-node.md +++ b/content/admin/monitoring-and-managing-your-instance/configuring-clustering/replacing-a-cluster-node.md @@ -219,4 +219,4 @@ If you want to provide the VM for your primary MySQL node with more resources, o 1. From the administrative shell of the node where you modified `cluster.conf`, run `ghe-cluster-config-apply`. This will reconfigure the cluster so that the newly added node becomes the primary MySQL node and the original primary MySQL node becomes a replica MySQL node. 1. Check the status of MySQL replication from any node in the cluster by running `ghe-cluster-status -v`. -1. If MySQL replication is finished, from any node in the cluster, disable maintenance mode. For more information, see "[AUTOTITLE](/admin/administering-your-instance/configuring-maintenance-mode/enabling-and-scheduling-maintenance-mode#enabling-or-disabling-maintenance-mode-for-all-nodes-in-a-cluster-via-the-cli)." +1. If MySQL replication is finished, from any node in the cluster, disable maintenance mode. For more information, see "[AUTOTITLE](/admin/administering-your-instance/configuring-maintenance-mode/enabling-and-scheduling-maintenance-mode#enabling-or-disabling-maintenance-mode-for-all-nodes-in-a-cluster-via-the-cli)." diff --git a/content/admin/monitoring-and-managing-your-instance/configuring-clustering/upgrading-a-cluster.md b/content/admin/monitoring-and-managing-your-instance/configuring-clustering/upgrading-a-cluster.md index 2ad09b44400c..67842a588a22 100644 --- a/content/admin/monitoring-and-managing-your-instance/configuring-clustering/upgrading-a-cluster.md +++ b/content/admin/monitoring-and-managing-your-instance/configuring-clustering/upgrading-a-cluster.md @@ -45,7 +45,7 @@ Use an upgrade package to upgrade a {% data variables.product.prodname_ghe_serve 1. 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 diff --git a/content/admin/monitoring-and-managing-your-instance/configuring-high-availability/initiating-a-failover-to-your-replica-appliance.md b/content/admin/monitoring-and-managing-your-instance/configuring-high-availability/initiating-a-failover-to-your-replica-appliance.md index 982d75f0f689..8ded16bc818d 100644 --- a/content/admin/monitoring-and-managing-your-instance/configuring-high-availability/initiating-a-failover-to-your-replica-appliance.md +++ b/content/admin/monitoring-and-managing-your-instance/configuring-high-availability/initiating-a-failover-to-your-replica-appliance.md @@ -67,7 +67,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/monitoring-and-managing-your-instance/configuring-high-availability/recovering-a-high-availability-configuration.md b/content/admin/monitoring-and-managing-your-instance/configuring-high-availability/recovering-a-high-availability-configuration.md index a4a447922253..9f2c524d733b 100644 --- a/content/admin/monitoring-and-managing-your-instance/configuring-high-availability/recovering-a-high-availability-configuration.md +++ b/content/admin/monitoring-and-managing-your-instance/configuring-high-availability/recovering-a-high-availability-configuration.md @@ -36,14 +36,14 @@ You can use the former primary appliance as the new replica appliance if the fai 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/overview/about-github-enterprise-cloud.md b/content/admin/overview/about-github-enterprise-cloud.md index 898ad40482f0..1b1b458a2836 100644 --- a/content/admin/overview/about-github-enterprise-cloud.md +++ b/content/admin/overview/about-github-enterprise-cloud.md @@ -49,4 +49,4 @@ If you require {% data variables.enterprise.data_residency_short %}, contact {% * "[AUTOTITLE](/get-started/onboarding/getting-started-with-github-enterprise-cloud)" * "[AUTOTITLE](/admin/data-residency/about-github-enterprise-cloud-with-data-residency)" -* [ {% data variables.product.prodname_roadmap %} ]( {% data variables.product.prodname_roadmap_link %} ) in the `github/roadmap` repository +* [ {% data variables.product.prodname_roadmap %} ]( {% data variables.product.prodname_roadmap_link %} ) in the `github/roadmap` repository diff --git a/content/admin/overview/about-the-github-enterprise-api.md b/content/admin/overview/about-the-github-enterprise-api.md index 35dcef881140..cb2b91dd3cc2 100644 --- a/content/admin/overview/about-the-github-enterprise-api.md +++ b/content/admin/overview/about-the-github-enterprise-api.md @@ -16,10 +16,13 @@ shortTitle: GitHub Enterprise API --- With the APIs, you can automate many administrative tasks. Some examples include: - -{% ifversion ghes %} -* Perform changes to the {% data variables.enterprise.management_console %}. For more information, see "[AUTOTITLE](/rest/enterprise-admin/management-console)." -* Configure LDAP sync. For more information, see "[AUTOTITLE](/rest/enterprise-admin/ldap)."{% endif %} +* Perform changes to the {% data variables.enterprise.management_console %}. For more information, see +{% ifversion management-console-manage-ghes-parity -%} +"[AUTOTITLE](/rest/enterprise-admin/manage-ghes)." +{%- else -%} +"[AUTOTITLE](/rest/enterprise-admin/management-console)." +{%- endif %} +* Configure LDAP sync. For more information, see "[AUTOTITLE](/rest/enterprise-admin/ldap)." * Collect statistics about your enterprise. For more information, see "[AUTOTITLE](/rest/enterprise-admin/admin-stats)." * Manage your enterprise account. For more information, see "[AUTOTITLE](/graphql/guides/managing-enterprise-accounts)." diff --git a/content/admin/overview/about-upgrades-to-new-releases.md b/content/admin/overview/about-upgrades-to-new-releases.md index d4d58727e317..1ed890a74128 100644 --- a/content/admin/overview/about-upgrades-to-new-releases.md +++ b/content/admin/overview/about-upgrades-to-new-releases.md @@ -49,4 +49,4 @@ There are two ways to upgrade {% data variables.product.prodname_ghe_server %}: ## Further reading -* [{% data variables.product.prodname_roadmap %}]({% data variables.product.prodname_roadmap_link %}) in the `github/roadmap` repository +* [{% data variables.product.prodname_roadmap %}]({% data variables.product.prodname_roadmap_link %}) in the `github/roadmap` repository diff --git a/content/admin/upgrading-your-instance/troubleshooting-upgrades/known-issues-with-upgrades-to-your-instance.md b/content/admin/upgrading-your-instance/troubleshooting-upgrades/known-issues-with-upgrades-to-your-instance.md index fe98b4335963..d959e04b9ce2 100644 --- a/content/admin/upgrading-your-instance/troubleshooting-upgrades/known-issues-with-upgrades-to-your-instance.md +++ b/content/admin/upgrading-your-instance/troubleshooting-upgrades/known-issues-with-upgrades-to-your-instance.md @@ -72,7 +72,7 @@ Before you test any mitigation procedure in a production environment, back up yo To attempt to mitigate the performance impact, you can adjust InnoDB's flushing method to skip the `fsync()` system call after each write operation. For more information, see [`innodb_flush_method`](https://dev.mysql.com/doc/refman/8.0/en/innodb-parameters.html#sysvar_innodb_flush_method) in the MySQL 8.0 Reference Manual. -The following instructions are only intended for {% data variables.product.product_name %} 3.9 and later. +The following instructions are only intended for {% data variables.product.product_name %} 3.9 and later. > [!WARNING] > Adjustment of the flushing method requires that your instance's storage device has a battery-backed cache. If the device's cache is not battery-backed, you risk data loss. @@ -102,7 +102,7 @@ You can reduce pending operations, increase IOPS, and improve performance by pro ### Sharing data with {% data variables.product.company_short %} -Finally, if you're willing to help {% data variables.product.company_short %} understand the real-world impact of the upgrade to MySQL 8, you can provide the data you've collected to {% data variables.contact.github_support %}. Provide the baseline and post-upgrade observations from the monitor dashboard, along with a support bundle that covers the period when you collected data. For more information, see "[AUTOTITLE](/support/learning-about-github-support/about-github-support)" and "[AUTOTITLE](/support/contacting-github-support/providing-data-to-github-support)." +Finally, if you're willing to help {% data variables.product.company_short %} understand the real-world impact of the upgrade to MySQL 8, you can provide the data you've collected to {% data variables.contact.github_support %}. Provide the baseline and post-upgrade observations from the monitor dashboard, along with a support bundle that covers the period when you collected data. For more information, see "[AUTOTITLE](/support/learning-about-github-support/about-github-support)" and "[AUTOTITLE](/support/contacting-github-support/providing-data-to-github-support)." The data you submit helps {% data variables.product.company_short %} continue to provide a performant product, but {% data variables.product.company_short %} does not guarantee any additional mitigation steps or changes to the product as a result of the data you provide. @@ -231,7 +231,7 @@ If you are upgrading from {% data variables.product.prodname_ghe_server %} 3.11 At this stage, please note that these records will be deleted as part of the process. The script will warn you about the users who will need to re-enroll into 2FA after the upgrade. The impacted users' handles are logged in `/tmp/column_encryption_users_to_have_2fa_disabled.log`. These users will need to be re-enrolled into 2FA. -If the script runs into unexpected issues, you will be prompted to [contact {% data variables.contact.github_support %}](/support/contacting-github-support). Errors related to these issues will be logged in `/tmp/column_encryption_unexpected_errors.log`. If you are in a dire situation and are unable to have users re-enroll into 2FA, [contact {% data variables.contact.github_support %}](/support/contacting-github-support) for help. +If the script runs into unexpected issues, you will be prompted to [contact {% data variables.contact.github_support %}](/support/contacting-github-support). Errors related to these issues will be logged in `/tmp/column_encryption_unexpected_errors.log`. If you are in a dire situation and are unable to have users re-enroll into 2FA, [contact {% data variables.contact.github_support %}](/support/contacting-github-support) for help. ### During the upgrade diff --git a/content/apps/creating-github-apps/about-creating-github-apps/about-creating-github-apps.md b/content/apps/creating-github-apps/about-creating-github-apps/about-creating-github-apps.md index bc6ef0a8d2f0..8645842d450c 100644 --- a/content/apps/creating-github-apps/about-creating-github-apps/about-creating-github-apps.md +++ b/content/apps/creating-github-apps/about-creating-github-apps/about-creating-github-apps.md @@ -26,7 +26,7 @@ A {% data variables.product.prodname_github_app %} is a type of integration that Common use cases for {% data variables.product.prodname_github_apps %} include: * Automating tasks or background processes * Supporting "Sign in with {% data variables.product.company_short %}," which allows users to sign in with their {% data variables.product.prodname_dotcom %} account to provide their identity in your ecosystem -* As a developer tool, allowing users to work with {% data variables.product.prodname_dotcom %} by signing into your {% data variables.product.prodname_github_app %}, which can then act on their behalf +* As a developer tool, allowing users to work with {% data variables.product.prodname_dotcom %} by signing into your {% data variables.product.prodname_github_app %}, which can then act on their behalf * Integrating your tool or external service with {% data variables.product.company_short %} Like {% data variables.product.prodname_oauth_apps %}, {% data variables.product.prodname_github_apps %} use OAuth 2.0 and can act on behalf of a user. Unlike {% data variables.product.prodname_oauth_apps %}, {% data variables.product.prodname_github_apps %} can also act independently of a user. diff --git a/content/apps/creating-github-apps/about-creating-github-apps/deciding-when-to-build-a-github-app.md b/content/apps/creating-github-apps/about-creating-github-apps/deciding-when-to-build-a-github-app.md index 578f4f2b9c4e..d6f25a585934 100644 --- a/content/apps/creating-github-apps/about-creating-github-apps/deciding-when-to-build-a-github-app.md +++ b/content/apps/creating-github-apps/about-creating-github-apps/deciding-when-to-build-a-github-app.md @@ -46,7 +46,7 @@ The rate limit for {% data variables.product.prodname_github_apps %} using an in ### {% data variables.product.prodname_github_apps %} have built in webhooks -{% data variables.product.prodname_github_apps %} have built-in, centralized webhooks. {% data variables.product.prodname_github_apps %} can receive webhook events for all repositories and organizations the app can access. Conversely, {% data variables.product.prodname_oauth_apps %} must configure webhooks individually for each repository and organization. +{% data variables.product.prodname_github_apps %} have built-in, centralized webhooks. {% data variables.product.prodname_github_apps %} can receive webhook events for all repositories and organizations the app can access. Conversely, {% data variables.product.prodname_oauth_apps %} must configure webhooks individually for each repository and organization. ### API access differs slightly diff --git a/content/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-json-web-token-jwt-for-a-github-app.md b/content/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-json-web-token-jwt-for-a-github-app.md index 2d9a1888bceb..5bb17f1c498d 100644 --- a/content/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-json-web-token-jwt-for-a-github-app.md +++ b/content/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-json-web-token-jwt-for-a-github-app.md @@ -126,7 +126,7 @@ payload = { # Create JWT encoded_jwt = jwt.encode(payload, signing_key, algorithm='RS256') -print(f"JWT: {encoded_jwt}") +print(f"JWT: {encoded_jwt}") ``` This script will prompt you for the file path where your private key is stored and for the ID of your app. Alternatively, you can pass those values as inline arguments when you execute the script. @@ -134,7 +134,7 @@ This script will prompt you for the file path where your private key is stored a ### Example: Using Bash to generate a JWT > [!NOTE] -> You must pass your {% ifversion client-id-for-app %}Client ID{% else %}App ID{% endif %} and the file path where your private key is stored as arguments when running this script. +> You must pass your {% ifversion client-id-for-app %}Client ID{% else %}App ID{% endif %} and the file path where your private key is stored as arguments when running this script. ```bash copy #!/usr/bin/env bash @@ -202,7 +202,7 @@ $header = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes((Conve $payload = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes((ConvertTo-Json -InputObject @{ iat = [System.DateTimeOffset]::UtcNow.AddSeconds(-10).ToUnixTimeSeconds() exp = [System.DateTimeOffset]::UtcNow.AddMinutes(10).ToUnixTimeSeconds() - {% ifversion client-id-for-app %} iss = $client_id{% else %} iss = $app_id{% endif %} + {% ifversion client-id-for-app %} iss = $client_id {% else %} iss = $app_id {% endif %} }))).TrimEnd('=').Replace('+', '-').Replace('/', '_'); $rsa = [System.Security.Cryptography.RSA]::Create() diff --git a/content/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app.md b/content/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app.md index 7002d6ae6683..3d3452df8998 100644 --- a/content/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app.md +++ b/content/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app.md @@ -74,7 +74,7 @@ The device flow uses the OAuth 2.0 Device Authorization Grant. --- | --- | --- `device_code` | `string` | A verification code that is used to verify the device. This code is 40 characters long. `user_code` | `string` | A verification code that your application should display so that the user can enter the code in a browser. This code is 8 characters with a hyphen in the middle. For example, `WDJB-MJHT`. - `verification_uri` | `string` | The URL where users need to enter their `user_code`. The URL is: {% data variables.product.device_authorization_url %}. + `verification_uri` | `string` | The URL where users need to enter their `user_code`. The URL is: {% data variables.product.device_authorization_url %}. `expires_in` | `integer` | The number of seconds before the `device_code` and `user_code` expire. The default is 900 seconds (15 minutes). `interval` | `integer` | The minimum number of seconds that must pass before you can make a new access token request (`POST {% data variables.product.oauth_host_code %}/login/oauth/access_token`) to complete the device authorization. If you make a request before this interval passes, then you will hit the rate limit and receive a `slow_down` error. The default is 5 seconds. 1. Prompt the user to enter the `user_code` from the previous step at {% data variables.product.device_authorization_url %}. @@ -170,4 +170,4 @@ When you request a user access token via the device flow, the `grant_type` param If the user for whom you are trying to generate a user access token has not verified their primary email address with {% data variables.product.company_short %}, you will receive an `unverified_user_email` error. -To resolve this error, prompt the user to verify the primary email address on their {% data variables.product.company_short %} account. For more information, see {% ifversion fpt or ghec %}"[AUTOTITLE](/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/verifying-your-email-address)."{% else %}"[AUTOTITLE](/free-pro-team@latest/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/verifying-your-email-address)" in the {% data variables.product.prodname_free_user %} documentation.{% endif %} +To resolve this error, prompt the user to verify the primary email address on their {% data variables.product.company_short %} account. For more information, see {% ifversion fpt or ghec %}"[AUTOTITLE](/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/verifying-your-email-address)."{% else %}"[AUTOTITLE](/free-pro-team@latest/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/verifying-your-email-address)" in the {% data variables.product.prodname_free_user %} documentation.{% endif %} diff --git a/content/apps/creating-github-apps/registering-a-github-app/registering-a-github-app.md b/content/apps/creating-github-apps/registering-a-github-app/registering-a-github-app.md index 0bb8cdccf0ba..ae5da99a5670 100644 --- a/content/apps/creating-github-apps/registering-a-github-app/registering-a-github-app.md +++ b/content/apps/creating-github-apps/registering-a-github-app/registering-a-github-app.md @@ -64,7 +64,7 @@ You can register a {% data variables.product.prodname_github_app %} in a few dif 1. If you entered a webhook URL, under "SSL verification", select whether to enable SSL verification. {% data variables.product.company_short %} highly recommends that you enable SSL verification. 1. Under "Permissions", choose the permissions that your app needs. For each permission, select the dropdown menu and click **Read-only**, **Read & write**, or **No access**. You should select the minimum permissions necessary for your app. For more information, see "[AUTOTITLE](/apps/creating-github-apps/setting-up-a-github-app/choosing-permissions-for-a-github-app)." 1. If you selected **Active** in the earlier step to indicate that your app should receive webhook events, under "Subscribe to events", select the webhook events that you want your app to receive. The permissions that you selected in the previous step determine what webhook events are available. For more information about each webhook event, see "[AUTOTITLE](/webhooks-and-events/webhooks/webhook-events-and-payloads)." -1. Under "Where can this {% data variables.product.prodname_github_app %} be installed?", select **Only on this account** or **Any account**.{% ifversion ghec %} If you use {% data variables.product.prodname_emus %}, **Only on this account** will be disabled for user accounts. Instead of **Any account**, the option will read **This enterprise**.{% endif %} For more information on installation options, see "[AUTOTITLE](/apps/creating-github-apps/setting-up-a-github-app/making-a-github-app-public-or-private)."{% ifversion enterprise-apps-public-beta %} +1. Under "Where can this {% data variables.product.prodname_github_app %} be installed?", select **Only on this account** or **Any account**.{% ifversion ghec %} If you use {% data variables.product.prodname_emus %}, **Only on this account** will be disabled for user accounts. Instead of **Any account**, the option will read **This enterprise**.{% endif %} For more information on installation options, see "[AUTOTITLE](/apps/creating-github-apps/setting-up-a-github-app/making-a-github-app-public-or-private)."{% ifversion enterprise-apps-public-beta %} >[!NOTE] If your {% data variables.product.prodname_github_app %} is registered under an enterprise, this step does not apply.{% endif %} 1. Click **Create {% data variables.product.prodname_github_app %}**. diff --git a/content/apps/creating-github-apps/writing-code-for-a-github-app/building-ci-checks-with-a-github-app.md b/content/apps/creating-github-apps/writing-code-for-a-github-app/building-ci-checks-with-a-github-app.md index a65267c8c820..a72dfc0d5e7a 100644 --- a/content/apps/creating-github-apps/writing-code-for-a-github-app/building-ci-checks-with-a-github-app.md +++ b/content/apps/creating-github-apps/writing-code-for-a-github-app/building-ci-checks-with-a-github-app.md @@ -280,7 +280,7 @@ class GHAapp < Sinatra::Application begin @payload = JSON.parse @payload_raw rescue => e - fail 'Invalid JSON (#{e}): #{@payload_raw}' + fail 'Invalid JSON (#{e}): #{@payload_raw}' end end @@ -620,7 +620,7 @@ Open the `server.rb` file that you created in "[Add code for your {% data variab end ``` -In the code block that starts with `post '/event_handler' do`, where it says `# ADD EVENT HANDLING HERE #`, add the following code. This route will handle the `check_suite` event. +In the code block that starts with `post '/event_handler' do`, where it says `# ADD EVENT HANDLING HERE #`, add the following code. This route will handle the `check_suite` event. ```ruby copy # Get the event type from the HTTP_X_GITHUB_EVENT header @@ -920,7 +920,7 @@ In the code block that starts with `helpers do`, find the `initiate_check_run` h # ADD ANNOTATIONS CODE HERE # ``` -The code above runs RuboCop on all files in the repository's directory. The option `--format json` saves a copy of the linting results in a machine-parsable format. For more information, and an example of the JSON format, see "[JSON Formatter](https://docs.rubocop.org/rubocop/formatters.html#json-formatter)" in the RuboCop docs. This code also parses the JSON so you can easily access the keys and values in your {% data variables.product.prodname_github_app %} using the `@output` variable. +The code above runs RuboCop on all files in the repository's directory. The option `--format json` saves a copy of the linting results in a machine-parsable format. For more information, and an example of the JSON format, see "[JSON Formatter](https://docs.rubocop.org/rubocop/formatters.html#json-formatter)" in the RuboCop docs. This code also parses the JSON so you can easily access the keys and values in your {% data variables.product.prodname_github_app %} using the `@output` variable. After running RuboCop and saving the linting results, this code runs the command `rm -rf` to remove the checkout of the repository. Because the code stores the RuboCop results in a `@report` variable, it can safely remove the checkout of the repository. @@ -1502,7 +1502,7 @@ class GHAapp < Sinatra::Application begin @payload = JSON.parse @payload_raw rescue => e - fail 'Invalid JSON (#{e}): #{@payload_raw}' + fail 'Invalid JSON (#{e}): #{@payload_raw}' end end diff --git a/content/apps/github-marketplace/using-the-github-marketplace-api-in-your-app/handling-new-purchases-and-free-trials.md b/content/apps/github-marketplace/using-the-github-marketplace-api-in-your-app/handling-new-purchases-and-free-trials.md index 7f774e33bc2c..ab07ee60e756 100644 --- a/content/apps/github-marketplace/using-the-github-marketplace-api-in-your-app/handling-new-purchases-and-free-trials.md +++ b/content/apps/github-marketplace/using-the-github-marketplace-api-in-your-app/handling-new-purchases-and-free-trials.md @@ -41,7 +41,7 @@ See "[AUTOTITLE](/apps/github-marketplace/using-the-github-marketplace-api-in-yo ## Step 2. Installation -If your app is a {% data variables.product.prodname_github_app %}, {% data variables.product.product_name %} prompts the customer to select which repositories the app can access when they purchase it. {% data variables.product.product_name %} then installs the app on the account the customer selected and grants access to the selected repositories. +If your app is a {% data variables.product.prodname_github_app %}, {% data variables.product.product_name %} prompts the customer to select which repositories the app can access when they purchase it. {% data variables.product.product_name %} then installs the app on the account the customer selected and grants access to the selected repositories. At this point, if you specified a **Setup URL** in your {% data variables.product.prodname_github_app %} settings, {% data variables.product.product_name %} will redirect the customer to that URL. If you do not specify a setup URL, you will not be able to handle purchases of your {% data variables.product.prodname_github_app %}. @@ -65,7 +65,7 @@ For either type of app, the first step is to redirect the customer to [https://g After the customer completes the authorization, your app receives an OAuth access token for the customer. You'll need this token for the next step. > [!NOTE] -> When authorizing a customer on a free trial, grant them the same access they would have on the paid plan. You'll move them to the paid plan after the trial period ends. +> When authorizing a customer on a free trial, grant them the same access they would have on the paid plan. You'll move them to the paid plan after the trial period ends. ## Step 4. Provisioning customer accounts diff --git a/content/apps/oauth-apps/building-oauth-apps/authorizing-oauth-apps.md b/content/apps/oauth-apps/building-oauth-apps/authorizing-oauth-apps.md index c27305aa2a88..0cb0a00f2fb0 100644 --- a/content/apps/oauth-apps/building-oauth-apps/authorizing-oauth-apps.md +++ b/content/apps/oauth-apps/building-oauth-apps/authorizing-oauth-apps.md @@ -32,7 +32,7 @@ If you want to skip authorizing your app in the standard way, such as when testi To authorize your {% data variables.product.prodname_oauth_app %}, consider which authorization flow best fits your app. * [web application flow](#web-application-flow): Used to authorize users for standard {% data variables.product.prodname_oauth_apps %} that run in the browser. (The [implicit grant type](https://tools.ietf.org/html/rfc6749#section-4.2) is not supported.) -* [device flow](#device-flow): Used for headless apps, such as CLI tools. +* [device flow](#device-flow): Used for headless apps, such as CLI tools. {% ifversion ghec %} diff --git a/content/apps/oauth-apps/building-oauth-apps/scopes-for-oauth-apps.md b/content/apps/oauth-apps/building-oauth-apps/scopes-for-oauth-apps.md index f59c64709781..210a1f9910af 100644 --- a/content/apps/oauth-apps/building-oauth-apps/scopes-for-oauth-apps.md +++ b/content/apps/oauth-apps/building-oauth-apps/scopes-for-oauth-apps.md @@ -61,7 +61,7 @@ Name | Description **`admin:org_hook`** | Grants read, write, ping, and delete access to organization hooks. **Note:** OAuth tokens will only be able to perform these actions on organization hooks which were created by the {% data variables.product.prodname_oauth_app %}. {% data variables.product.pat_generic_caps %}s will only be able to perform these actions on organization hooks created by a user. **`gist`** | Grants write access to gists. **`notifications`** | Grants:
read access to a user's notifications
mark as read access to threads
watch and unwatch access to a repository, and
read, write, and delete access to thread subscriptions. -**`user`** | Grants read/write access to profile info only. Note that this scope includes `user:email` and `user:follow`. +**`user`** | Grants read/write access to profile info only. Note that this scope includes `user:email` and `user:follow`.  `read:user`| Grants access to read a user's profile data.  `user:email`| Grants read access to a user's email addresses.  `user:follow`| Grants access to follow or unfollow other users.{% ifversion projects-oauth-scope %} diff --git a/content/apps/oauth-apps/maintaining-oauth-apps/troubleshooting-oauth-app-access-token-request-errors.md b/content/apps/oauth-apps/maintaining-oauth-apps/troubleshooting-oauth-app-access-token-request-errors.md index f085f84f1c26..b622390acf60 100644 --- a/content/apps/oauth-apps/maintaining-oauth-apps/troubleshooting-oauth-app-access-token-request-errors.md +++ b/content/apps/oauth-apps/maintaining-oauth-apps/troubleshooting-oauth-app-access-token-request-errors.md @@ -79,4 +79,4 @@ If the user for whom you are trying to generate a user access token has not veri } ``` -To resolve this error, prompt the user to verify the primary email address on their {% data variables.product.company_short %} account. For more information, see {% ifversion fpt or ghec %}"[AUTOTITLE](/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/verifying-your-email-address)."{% else %}"[AUTOTITLE](/free-pro-team@latest/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/verifying-your-email-address)" in the {% data variables.product.prodname_free_user %} documentation.{% endif %} +To resolve this error, prompt the user to verify the primary email address on their {% data variables.product.company_short %} account. For more information, see {% ifversion fpt or ghec %}"[AUTOTITLE](/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/verifying-your-email-address)."{% else %}"[AUTOTITLE](/free-pro-team@latest/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/verifying-your-email-address)" in the {% data variables.product.prodname_free_user %} documentation.{% endif %} diff --git a/content/apps/sharing-github-apps/making-your-github-app-available-for-github-enterprise-server.md b/content/apps/sharing-github-apps/making-your-github-app-available-for-github-enterprise-server.md index d79876c96830..9e3d2c2e19d1 100644 --- a/content/apps/sharing-github-apps/making-your-github-app-available-for-github-enterprise-server.md +++ b/content/apps/sharing-github-apps/making-your-github-app-available-for-github-enterprise-server.md @@ -20,7 +20,7 @@ If you want your {% data variables.product.prodname_github_app %} to be availabl These steps are not required if your {% data variables.product.prodname_github_app %} will only be used by organizations in a {% data variables.product.prodname_ghe_server %} instance that you are part of. For more information, see "[AUTOTITLE](/apps/maintaining-github-apps/installing-your-own-github-app)." {% endif %} -If {% data variables.product.prodname_ghe_server %} access is important, consider whether a custom action for {% data variables.product.prodname_actions %} will suit your needs instead. Public actions are available on {% data variables.product.prodname_ghe_server %} instances with {% data variables.product.prodname_github_connect %}. For more information, see {% ifversion ghes %}"[AUTOTITLE](/admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect)."{% else %}"[AUTOTITLE](/enterprise-server@latest/admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect)" in the {% data variables.product.prodname_ghe_server %} documentation.{% endif %} +If {% data variables.product.prodname_ghe_server %} access is important, consider whether a custom action for {% data variables.product.prodname_actions %} will suit your needs instead. Public actions are available on {% data variables.product.prodname_ghe_server %} instances with {% data variables.product.prodname_github_connect %}. For more information, see {% ifversion ghes %}"[AUTOTITLE](/admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect)."{% else %}"[AUTOTITLE](/enterprise-server@latest/admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect)" in the {% data variables.product.prodname_ghe_server %} documentation.{% endif %} ## Each {% data variables.product.prodname_ghe_server %} instance must register their own {% data variables.product.prodname_github_app %} diff --git a/content/apps/using-github-apps/reviewing-and-modifying-installed-github-apps.md b/content/apps/using-github-apps/reviewing-and-modifying-installed-github-apps.md index a3f512be1129..6c9f62ce3c0d 100644 --- a/content/apps/using-github-apps/reviewing-and-modifying-installed-github-apps.md +++ b/content/apps/using-github-apps/reviewing-and-modifying-installed-github-apps.md @@ -38,7 +38,7 @@ In addition to reviewing {% data variables.product.prodname_github_apps %} that > In the following steps, you will be taken to the account settings for the organization or personal account where the {% data variables.product.prodname_github_app %} is installed. The settings will affect all repositories where the app is installed under that account, not just the repository where you navigated from. 1. Navigate to the main page of the organization or repository. - 1. Click **{% octicon "gear" aria-label="The Settings gear" %} Settings**. + 1. Click **{% octicon "gear" aria-hidden="true" %} Settings**. 1. Under "Integrations," click **GitHub Apps**. A list of the {% data variables.product.prodname_github_apps %} that have been granted access to your repository will be displayed. 1. Next to the {% data variables.product.prodname_github_app %} you want to review or modify, click **Configure**. diff --git a/content/authentication/authenticating-with-saml-single-sign-on/about-authentication-with-saml-single-sign-on.md b/content/authentication/authenticating-with-saml-single-sign-on/about-authentication-with-saml-single-sign-on.md index 8a9637ef5b45..0a250cfdc646 100644 --- a/content/authentication/authenticating-with-saml-single-sign-on/about-authentication-with-saml-single-sign-on.md +++ b/content/authentication/authenticating-with-saml-single-sign-on/about-authentication-with-saml-single-sign-on.md @@ -31,9 +31,9 @@ If you have recently authenticated with your organization's SAML IdP in your bro ## Linked SAML identities -When you authenticate with your IdP account and return to {% data variables.product.prodname_dotcom %}, {% data variables.product.prodname_dotcom %} will record a link in the organization or enterprise between your {% data variables.product.prodname_dotcom %} personal account and the SAML identity you signed into. This linked identity is used to validate your membership in that organization, and depending on your organization or enterprise setup, is also used to determine which organizations and teams you're a member of as well. Each {% data variables.product.prodname_dotcom %} account can be linked to exactly one SAML identity per organization. Likewise, each SAML identity can be linked to exactly one {% data variables.product.prodname_dotcom %} account in an organization. +When you authenticate with your IdP account and return to {% data variables.product.prodname_dotcom %}, {% data variables.product.prodname_dotcom %} will record a link in the organization or enterprise between your {% data variables.product.prodname_dotcom %} personal account and the SAML identity you signed into. This linked identity is used to validate your membership in that organization, and depending on your organization or enterprise setup, is also used to determine which organizations and teams you're a member of as well. Each {% data variables.product.prodname_dotcom %} account can be linked to exactly one SAML identity per organization. Likewise, each SAML identity can be linked to exactly one {% data variables.product.prodname_dotcom %} account in an organization. -If you sign in with a SAML identity that is already linked to another {% data variables.product.prodname_dotcom %} account, you will receive an error message indicating that you cannot sign in with that SAML identity. This situation can occur if you are attempting to use a new {% data variables.product.prodname_dotcom %} account to work inside of your organization. If you didn't intend to use that SAML identity with that {% data variables.product.prodname_dotcom %} account, then you'll need to sign out of that SAML identity and then repeat the SAML login. If you do want to use that SAML identity with your {% data variables.product.prodname_dotcom %} account, you'll need to ask your admin to unlink your SAML identity from your old account, so that you can link it to your new account. Depending on the setup of your organization or enterprise, your admin may also need to reassign your identity within your SAML provider. For more information, see "[AUTOTITLE](/organizations/granting-access-to-your-organization-with-saml-single-sign-on/viewing-and-managing-a-members-saml-access-to-your-organization#viewing-and-revoking-a-linked-identity)." +If you sign in with a SAML identity that is already linked to another {% data variables.product.prodname_dotcom %} account, you will receive an error message indicating that you cannot sign in with that SAML identity. This situation can occur if you are attempting to use a new {% data variables.product.prodname_dotcom %} account to work inside of your organization. If you didn't intend to use that SAML identity with that {% data variables.product.prodname_dotcom %} account, then you'll need to sign out of that SAML identity and then repeat the SAML login. If you do want to use that SAML identity with your {% data variables.product.prodname_dotcom %} account, you'll need to ask your admin to unlink your SAML identity from your old account, so that you can link it to your new account. Depending on the setup of your organization or enterprise, your admin may also need to reassign your identity within your SAML provider. For more information, see "[AUTOTITLE](/organizations/granting-access-to-your-organization-with-saml-single-sign-on/viewing-and-managing-a-members-saml-access-to-your-organization#viewing-and-revoking-a-linked-identity)." If the SAML identity you sign in with does not match the SAML identity that is currently linked to your {% data variables.product.prodname_dotcom %} account, you'll receive a warning that you are about to relink your account. Because your SAML identity is used to govern access and team membership, continuing with the new SAML identity can cause you to lose access to teams and organizations inside of {% data variables.product.prodname_dotcom %}. Only continue if you know that you're supposed to use that new SAML identity for authentication in the future. diff --git a/content/authentication/connecting-to-github-with-ssh/managing-deploy-keys.md b/content/authentication/connecting-to-github-with-ssh/managing-deploy-keys.md index 59e336391be4..8d426c2ef35d 100644 --- a/content/authentication/connecting-to-github-with-ssh/managing-deploy-keys.md +++ b/content/authentication/connecting-to-github-with-ssh/managing-deploy-keys.md @@ -133,7 +133,7 @@ git clone git@{% ifversion fpt or ghec %}github.com{% else %}my-GHE-hostname.com If your server needs to access repositories across one or more organizations, you can use a {% data variables.product.prodname_github_app %} to define the access you need, and then generate _tightly-scoped_, installation access tokens from that {% data variables.product.prodname_github_app %}. The installation access 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. -Since {% data variables.product.prodname_github_apps %} are a first class actor on {% data variables.product.product_name %}, the installation access tokens are decoupled from any {% data variables.product.prodname_dotcom %} user, which makes them comparable to "service tokens". Additionally, installation access 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 %}](/apps/creating-github-apps/setting-up-a-github-app/rate-limits-for-github-apps). +Since {% data variables.product.prodname_github_apps %} are a first class actor on {% data variables.product.product_name %}, the installation access tokens are decoupled from any {% data variables.product.prodname_dotcom %} user, which makes them comparable to "service tokens". Additionally, installation access 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 %}](/apps/creating-github-apps/setting-up-a-github-app/rate-limits-for-github-apps). ### Pros of installation access tokens @@ -155,7 +155,7 @@ Since {% data variables.product.prodname_github_apps %} are a first class actor 1. Note your {% data variables.product.prodname_github_app %} `id`. 1. Generate and download your {% data variables.product.prodname_github_app %}'s private key, and store this safely. For more information, see [Generating a private key](/apps/creating-github-apps/authenticating-with-a-github-app/managing-private-keys-for-github-apps). 1. Install your {% data variables.product.prodname_github_app %} on the repositories it needs to act upon, optionally you may install the {% data variables.product.prodname_github_app %} on all repositories in your organization. -1. Identify the `installation_id` that represents the connection between your {% data variables.product.prodname_github_app %} and the organization repositories it can access. Each {% data variables.product.prodname_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/apps/apps#get-an-organization-installation-for-the-authenticated-app). This requires authenticating as a {% data variables.product.prodname_github_app %} using a JWT, for more information see [Authenticating as a {% data variables.product.prodname_github_app %}](/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-as-a-github-app). +1. Identify the `installation_id` that represents the connection between your {% data variables.product.prodname_github_app %} and the organization repositories it can access. Each {% data variables.product.prodname_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/apps/apps#get-an-organization-installation-for-the-authenticated-app). This requires authenticating as a {% data variables.product.prodname_github_app %} using a JWT, for more information see [Authenticating as a {% data variables.product.prodname_github_app %}](/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-as-a-github-app). 1. Generate an installation access token using the corresponding REST API endpoint, [Create an installation access token for an app](/rest/apps#create-an-installation-access-token-for-an-app). This requires authenticating as a {% data variables.product.prodname_github_app %} using a JWT, for more information see [Authenticating as a {% data variables.product.prodname_github_app %}](/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-as-a-github-app), and [Authenticating as an installation](/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-as-a-github-app-installation). 1. Use this installation access token to interact with your repositories, either via the REST or GraphQL APIs, or via a Git client. diff --git a/content/authentication/connecting-to-github-with-ssh/using-ssh-agent-forwarding.md b/content/authentication/connecting-to-github-with-ssh/using-ssh-agent-forwarding.md index e0988ff8b25d..0433642d0ffb 100644 --- a/content/authentication/connecting-to-github-with-ssh/using-ssh-agent-forwarding.md +++ b/content/authentication/connecting-to-github-with-ssh/using-ssh-agent-forwarding.md @@ -17,7 +17,7 @@ shortTitle: SSH agent forwarding -SSH agent forwarding can be used to make deploying to a server simple. It allows you to use your local SSH keys instead of leaving keys (without passphrases!) sitting on your server. +SSH agent forwarding can be used to make deploying to a server simple. It allows you to use your local SSH keys instead of leaving keys (without passphrases!) sitting on your server. If you've already set up an SSH key to interact with {% data variables.product.product_name %}, you're probably familiar with `ssh-agent`. It's a program that runs in the background and keeps your key loaded into memory, so that you don't need to enter your passphrase every time you need to use the key. The nifty thing is, you can choose to let servers access your local `ssh-agent` as if they were already running on the server. This is sort of like asking a friend to enter their password so that you can use their computer. @@ -50,7 +50,7 @@ We're off to a great start. Let's set up SSH to allow agent forwarding to your s ## Testing SSH agent forwarding -To test that agent forwarding is working with your server, you can SSH into your server and run `ssh -T git@{% ifversion ghes %}hostname{% else %}github.com{% endif %}` once more. If all is well, you'll get back the same prompt as you did locally. +To test that agent forwarding is working with your server, you can SSH into your server and run `ssh -T git@{% ifversion ghes %}hostname{% else %}github.com{% endif %}` once more. If all is well, you'll get back the same prompt as you did locally. If you're unsure if your local key is being used, you can also inspect the `SSH_AUTH_SOCK` variable on your server: @@ -105,7 +105,7 @@ $ exit # Returns to your local command prompt ``` -In the example above, the file `~/.ssh/config` is loaded first, then `/etc/ssh_config` is read. We can inspect that file to see if it's overriding our options by running the following commands: +In the example above, the file `~/.ssh/config` is loaded first, then `/etc/ssh_config` is read. We can inspect that file to see if it's overriding our options by running the following commands: ```shell $ cat /etc/ssh_config @@ -123,7 +123,7 @@ Agent forwarding may also be blocked on your server. You can check that agent fo ### Your local `ssh-agent` must be running -On most computers, the operating system automatically launches `ssh-agent` for you. On Windows, however, you need to do this manually. We have [a guide on how to start `ssh-agent` whenever you open Git Bash][autolaunch-ssh-agent]. +On most computers, the operating system automatically launches `ssh-agent` for you. On Windows, however, you need to do this manually. We have [a guide on how to start `ssh-agent` whenever you open Git Bash][autolaunch-ssh-agent]. To verify that `ssh-agent` is running on your computer, type the following command in the terminal: diff --git a/content/authentication/keeping-your-account-and-data-secure/switching-between-accounts.md b/content/authentication/keeping-your-account-and-data-secure/switching-between-accounts.md index bafde08c9741..a0dd1525852e 100644 --- a/content/authentication/keeping-your-account-and-data-secure/switching-between-accounts.md +++ b/content/authentication/keeping-your-account-and-data-secure/switching-between-accounts.md @@ -10,7 +10,7 @@ topics: - Access management --- -If you need to use multiple accounts on {% data variables.product.prodname_dotcom %}, you can sign in to your accounts and switch between them without always being required to reauthenticate. You can use the account switcher if you have a personal account and service accounts (sometimes called machine users){% ifversion fpt or ghec %} or if you need to switch between your personal account and {% data variables.enterprise.prodname_managed_users %} in an enterprise that uses {% data variables.product.prodname_emus %}{% endif %}. +If you need to use multiple accounts on {% data variables.product.prodname_dotcom %}, you can sign in to your accounts and switch between them without always being required to reauthenticate. You can use the account switcher if you have a personal account and service accounts (sometimes called machine users){% ifversion fpt or ghec %} or if you need to switch between your personal account and {% data variables.enterprise.prodname_managed_users %} in an enterprise that uses {% data variables.product.prodname_emus %}{% endif %}. When you are signed in to multiple accounts and using the account switcher, those sessions remain on your computer or browser. If you access {% data variables.product.prodname_dotcom %} on another computer or browser, the same accounts will not be available until you add them. diff --git a/content/authentication/managing-commit-signature-verification/about-commit-signature-verification.md b/content/authentication/managing-commit-signature-verification/about-commit-signature-verification.md index 90588be917fc..d6921c373d21 100644 --- a/content/authentication/managing-commit-signature-verification/about-commit-signature-verification.md +++ b/content/authentication/managing-commit-signature-verification/about-commit-signature-verification.md @@ -104,7 +104,7 @@ To sign commits using GPG and have those commits verified on {% data variables.p ## SSH commit signature verification -You can use SSH to sign commits with an SSH key that you generate yourself. For more information, see the [Git reference documentation](https://git-scm.com/docs/git-config#Documentation/git-config.txt-usersigningKey) for `user.Signingkey`. If you already use an SSH key to authenticate with {% data variables.product.product_name %}, +You can use SSH to sign commits with an SSH key that you generate yourself. For more information, see the [Git reference documentation](https://git-scm.com/docs/git-config#Documentation/git-config.txt-usersigningKey) for `user.Signingkey`. If you already use an SSH key to authenticate with {% data variables.product.product_name %}, you can also upload that same key again for use as a signing key. There's no limit on the number of signing keys you can add to your account. {% data variables.product.product_name %} uses [ssh_data](https://github.com/github/ssh_data), an open source Ruby library, to confirm that your locally signed commits and tags are cryptographically verifiable against a public key you have added to your account on {% data variables.location.product_location %}. diff --git a/content/authentication/managing-commit-signature-verification/generating-a-new-gpg-key.md b/content/authentication/managing-commit-signature-verification/generating-a-new-gpg-key.md index a3c944e51e6f..2e2f0b0a8563 100644 --- a/content/authentication/managing-commit-signature-verification/generating-a-new-gpg-key.md +++ b/content/authentication/managing-commit-signature-verification/generating-a-new-gpg-key.md @@ -42,7 +42,7 @@ topics: 1. Enter your user ID information. > [!NOTE] - > When asked to enter your email address, ensure that you enter the verified email address for your GitHub account. {% data reusables.gpg.private-email %} {% ifversion fpt or ghec %} For more information, see "[AUTOTITLE](/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/verifying-your-email-address)" and "[AUTOTITLE](/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address)."{% endif %} + > When asked to enter your email address, ensure that you enter the verified email address for your GitHub account. {% data reusables.gpg.private-email %} {% ifversion fpt or ghec %} For more information, see "[AUTOTITLE](/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/verifying-your-email-address)" and "[AUTOTITLE](/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address)."{% endif %} 1. Type a secure passphrase. {% data reusables.gpg.list-keys-with-note %} diff --git a/content/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication.md b/content/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication.md index c9be3fb8d2b8..19c02dbbd780 100644 --- a/content/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication.md +++ b/content/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication.md @@ -74,6 +74,7 @@ A time-based one-time password (TOTP) application automatically generates an aut If you're unable to configure a TOTP app, you can also register your phone number to receive SMS messages. {% data reusables.two_fa.sms-warning %} +{% data reusables.two_fa.sms-cap-note %} {% data reusables.user-settings.access_settings %} {% data reusables.user-settings.security %} diff --git a/content/authentication/securing-your-account-with-two-factor-authentication-2fa/disabling-two-factor-authentication-for-your-personal-account.md b/content/authentication/securing-your-account-with-two-factor-authentication-2fa/disabling-two-factor-authentication-for-your-personal-account.md index fba144b7a89e..e42b2647e195 100644 --- a/content/authentication/securing-your-account-with-two-factor-authentication-2fa/disabling-two-factor-authentication-for-your-personal-account.md +++ b/content/authentication/securing-your-account-with-two-factor-authentication-2fa/disabling-two-factor-authentication-for-your-personal-account.md @@ -18,8 +18,13 @@ shortTitle: Disable 2FA {% data reusables.two_fa.mandatory-2fa-contributors-2023 %} {% endif %} +{% ifversion fpt or ghec %} > [!WARNING] -> If you're a member{% ifversion fpt or ghec %}, billing manager,{% endif %} or outside collaborator to a public repository of an organization that requires two-factor authentication and you disable 2FA, you'll be automatically removed from the organization, and you'll lose your access to their repositories. To regain access to the organization, re-enable two-factor authentication and contact an organization owner. +> If you're a member{% ifversion fpt or ghec %} or billing manager{% endif %} to a repository of an organization that requires two-factor authentication and you disable 2FA, you'll lose your access to their repositories. To regain access to the organization, re-enable two-factor authentication. +{% else %} +> [!WARNING] +> If you're a member{% ifversion fpt or ghec %}, billing manager,{% endif %} or outside collaborator to a repository of an organization that requires two-factor authentication and you disable 2FA, you'll be automatically removed from the organization, and you'll lose your access to their repositories. To regain access to the organization, re-enable two-factor authentication and contact an organization owner. +{% endif %} We strongly recommend using two-factor authentication (2FA) to secure your account. If you need to disable 2FA, we recommend re-enabling it as soon as possible. @@ -29,11 +34,15 @@ If you are part of the group that {% data variables.product.prodname_dotcom %} i You can modify your existing 2FA configuration instead of disabling it entirely. For more information, see "[AUTOTITLE](/authentication/securing-your-account-with-two-factor-authentication-2fa/changing-your-two-factor-authentication-method)." {% endif %} -If your organization requires two-factor authentication and you're a member, owner, or an outside collaborator on a private repository of your organization, you must first leave your organization before you can disable two-factor authentication. +{% ifversion fpt or ghec %} +If your organization requires two-factor authentication and you're an outside collaborator on a repository of your organization, you must first leave the organization before you can disable two-factor authentication. To remove yourself from your organization, visit your Organizations settings page and select "Leave", or ask an organization owner or repository administrator to remove you from the organization's repositories. For more information, see "[AUTOTITLE](/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-membership-in-organizations/viewing-peoples-roles-in-an-organization)" and "[AUTOTITLE](/organizations/managing-user-access-to-your-organizations-repositories/managing-outside-collaborators/removing-an-outside-collaborator-from-an-organization-repository)." +{% else %} +If your organization requires two-factor authentication and you're a member, owner, or an outside collaborator on a repository of your organization, you must first leave your organization before you can disable two-factor authentication. To remove yourself from your organization: * As an organization member or owner, see "[AUTOTITLE](/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-membership-in-organizations/removing-yourself-from-an-organization)." * As an outside collaborator, ask an organization owner or repository administrator to remove you from the organization's repositories. For more information, see "[AUTOTITLE](/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-membership-in-organizations/viewing-peoples-roles-in-an-organization)" and "[AUTOTITLE](/organizations/managing-user-access-to-your-organizations-repositories/managing-outside-collaborators/removing-an-outside-collaborator-from-an-organization-repository)." +{% endif %} {% data reusables.user-settings.access_settings %} {% data reusables.user-settings.security %} 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 632be12cb165..e005a7aff7e4 100644 --- a/content/authentication/troubleshooting-ssh/error-key-already-in-use.md +++ b/content/authentication/troubleshooting-ssh/error-key-already-in-use.md @@ -39,4 +39,4 @@ If you don't have permissions to transfer the key, and can't contact a user who ## Deploy keys -Once a key has been attached to one repository as a deploy key, it cannot be used on another repository. If you're running into this error while setting up deploy keys, see "[AUTOTITLE](/authentication/connecting-to-github-with-ssh/managing-deploy-keys)." +Once a key has been attached to one repository as a deploy key, it cannot be used on another repository. If you're running into this error while setting up deploy keys, see "[AUTOTITLE](/authentication/connecting-to-github-with-ssh/managing-deploy-keys)." 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 623ed5078252..80ae728046f2 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 @@ -1,6 +1,6 @@ --- title: Using SSH over the HTTPS port -intro: 'Sometimes, firewalls refuse to allow SSH connections entirely. If using [HTTPS cloning with credential caching](/github/getting-started-with-github/caching-your-github-credentials-in-git) is not an option, you can attempt to clone using an SSH connection made over the HTTPS port. Most firewall rules should allow this, but proxy servers may interfere.' +intro: 'Sometimes, firewalls refuse to allow SSH connections entirely. If using [HTTPS cloning with credential caching](/github/getting-started-with-github/caching-your-github-credentials-in-git) is not an option, you can attempt to clone using an SSH connection made over the HTTPS port. Most firewall rules should allow this, but proxy servers may interfere.' redirect_from: - /articles/using-ssh-over-the-https-port - /github/authenticating-to-github/using-ssh-over-the-https-port diff --git a/content/billing/managing-billing-for-your-products/managing-billing-for-github-actions/about-billing-for-github-actions.md b/content/billing/managing-billing-for-your-products/managing-billing-for-github-actions/about-billing-for-github-actions.md index 456f6370e856..b8aa4d1b385b 100644 --- a/content/billing/managing-billing-for-your-products/managing-billing-for-github-actions/about-billing-for-github-actions.md +++ b/content/billing/managing-billing-for-your-products/managing-billing-for-github-actions/about-billing-for-github-actions.md @@ -47,7 +47,7 @@ Minutes reset every month, while storage usage does not. | {% data variables.product.prodname_team %} | 2 GB | 3,000 | | {% data variables.product.prodname_ghe_cloud %} | 50 GB | 50,000 | -The storage used by a repository is the total storage used by {% data variables.product.prodname_actions %} artifacts and {% data variables.product.prodname_registry %}. Your storage cost is the total usage for all repositories owned by your account. For more information about pricing for {% data variables.product.prodname_registry %}, see "[AUTOTITLE](/billing/managing-billing-for-github-packages/about-billing-for-github-packages)." +The storage used by a repository is the total storage used by {% data variables.product.prodname_actions %} artifacts and {% data variables.product.prodname_registry %}. Your storage cost is the total usage for all repositories owned by your account. For more information about pricing for {% data variables.product.prodname_registry %}, see "[AUTOTITLE](/billing/managing-billing-for-github-packages/about-billing-for-github-packages)." If your account's usage surpasses these limits and you have set a spending limit above $0 USD, you will pay $0.008 USD per GB of storage per day and per-minute usage depending on the operating system used by the {% data variables.product.prodname_dotcom %}-hosted runner. {% data variables.product.prodname_dotcom %} rounds the minutes and partial minutes each job uses up to the nearest whole minute. diff --git a/content/billing/managing-billing-for-your-products/managing-billing-for-github-packages/about-billing-for-github-packages.md b/content/billing/managing-billing-for-your-products/managing-billing-for-github-packages/about-billing-for-github-packages.md index 22388b07aa8b..8cdb67b3eba4 100644 --- a/content/billing/managing-billing-for-your-products/managing-billing-for-github-packages/about-billing-for-github-packages.md +++ b/content/billing/managing-billing-for-your-products/managing-billing-for-github-packages/about-billing-for-github-packages.md @@ -84,7 +84,7 @@ At the end of the month, {% data variables.product.prodname_dotcom %} rounds you You can also use this calculation in the middle of a billing cycle, to estimate what your total usage might be for the month. For example, if you have an organization that uses {% data variables.product.prodname_team %}, which provides 2 GB of free storage, and you use 0 GB for the first 5 days of April, 1.5 GB for the following 10 days, and you plan to use 3 GB for the last 15 days of the billing cycle, your projected storage usage for the month would be: -* 0 GB x 5 days x (24 hours per day) = 0 GB-Hours +* 0 GB x 5 days x (24 hours per day) = 0 GB-Hours * 0.5 GB x 10 days x (24 hours per day) = 120 GB-Hours * 3 GB x 15 days x (24 hours per day) = 1080 GB-Hours * 0 GB-Hours + 120 GB-Hours + 1080 GB-Hours = 1200 total GB-Hours diff --git a/content/billing/using-the-new-billing-platform/automating-usage-reporting.md b/content/billing/using-the-new-billing-platform/automating-usage-reporting.md index 55a0feaae840..d7a069ffc4cd 100644 --- a/content/billing/using-the-new-billing-platform/automating-usage-reporting.md +++ b/content/billing/using-the-new-billing-platform/automating-usage-reporting.md @@ -117,8 +117,8 @@ Example of the new response | Previous property | Calculate from new API response | |------ |----------- | | `days_left_in_billing_cycle` | Not available. This information can be inferred by subtracting the current day of the month from the number of days in the current month. | -| `estimated_paid_storage_for_month`| This is now represented as a $ amount via `netAmount`.

Prerequisite: pass the `month` and `year` query parameters.

For Actions storage For Packages storage | -| `estimated_storage_for_month` | Prerequisite: pass the `month` and `year` query parameters.

For Actions storage For Packages storage | +| `estimated_paid_storage_for_month`| This is now represented as a $ amount via `netAmount`.

Prerequisite: pass the `month` and `year` query parameters.

For Actions storage For Packages storage | +| `estimated_storage_for_month` | Prerequisite: pass the `month` and `year` query parameters.

For Actions storage For Packages storage | {% endrowheaders %} diff --git a/content/billing/using-the-new-billing-platform/getting-started-with-the-new-billing-platform.md b/content/billing/using-the-new-billing-platform/getting-started-with-the-new-billing-platform.md index 885932c03602..89dc312447db 100644 --- a/content/billing/using-the-new-billing-platform/getting-started-with-the-new-billing-platform.md +++ b/content/billing/using-the-new-billing-platform/getting-started-with-the-new-billing-platform.md @@ -9,7 +9,7 @@ type: overview topics: - Enterprise - Team -product: '{% data reusables.billing.enhanced-billing-platform-product %}' +product: '{% data reusables.billing.enhanced-billing-platform-product %}' shortTitle: Get started --- diff --git a/content/billing/using-the-new-billing-platform/managing-your-payment-and-billing-information.md b/content/billing/using-the-new-billing-platform/managing-your-payment-and-billing-information.md index ced580a3b4ab..02fa2ec1e31b 100644 --- a/content/billing/using-the-new-billing-platform/managing-your-payment-and-billing-information.md +++ b/content/billing/using-the-new-billing-platform/managing-your-payment-and-billing-information.md @@ -106,6 +106,6 @@ You can add an email address to receive billing notifications regarding payments 1. Display the **Billing & Licensing** section of the sidebar of the enterprise settings. 1. Click **Billing contacts**. 1. Click **Add** in the upper-right corner and follow the prompt. -1. Click {% octicon "pencil" aria-label="The edit icon" %} to edit the primary billing contact or {% octicon "kebab-horizontal" aria-label="Show options" %} to either remove or make a contact the primary billing contact. +1. Click {% octicon "pencil" aria-label="The edit icon" %} to edit the primary billing contact or {% octicon "kebab-horizontal" aria-label="Show options" %} to either remove or make a contact the primary billing contact. {% endif %} diff --git a/content/code-security/adopting-github-advanced-security-at-scale/phase-6-rollout-and-scale-secret-scanning.md b/content/code-security/adopting-github-advanced-security-at-scale/phase-6-rollout-and-scale-secret-scanning.md index f562b611052f..ed104aeba5dc 100644 --- a/content/code-security/adopting-github-advanced-security-at-scale/phase-6-rollout-and-scale-secret-scanning.md +++ b/content/code-security/adopting-github-advanced-security-at-scale/phase-6-rollout-and-scale-secret-scanning.md @@ -58,7 +58,7 @@ Once enabled, you can do the following: 1. **Provide guidance**: Configure a custom link in the message that contributors will see if their push is blocked by {% data variables.product.prodname_secret_scanning %}. The linked resource can provide guidance for contributors on how to resolve the blocked push. For more information, see "[AUTOTITLE](/code-security/secret-scanning/enabling-secret-scanning-features/enabling-push-protection-for-your-repository)." -1. **Notify**: Define a webhook that specifically tracks {% data variables.secret-scanning.alerts %} created when someone bypasses push protection by using the alert property `"push_protection_bypassed": true`. Or, use the API to get updates on which {% data variables.secret-scanning.alerts %} were the result of a push protection bypass by filtering the list of results for `"push_protection_bypassed": true`. For more information, see "[AUTOTITLE](/code-security/getting-started/auditing-security-alerts)." +1. **Notify**: Define a webhook that specifically tracks {% data variables.secret-scanning.alerts %} created when someone bypasses push protection by using the alert property `"push_protection_bypassed": true`. Or, use the API to get updates on which {% data variables.secret-scanning.alerts %} were the result of a push protection bypass by filtering the list of results for `"push_protection_bypassed": true`. For more information, see "[AUTOTITLE](/code-security/getting-started/auditing-security-alerts)." {%- ifversion security-overview-push-protection-metrics-page %} diff --git a/content/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages.md b/content/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages.md index f60dce08d4ba..a88a4415038a 100644 --- a/content/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages.md +++ b/content/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages.md @@ -109,8 +109,8 @@ steps: echo 'If you are using a "manual" build mode for one or more of the' \ 'languages you are analyzing, replace this with the commands to build' \ 'your code, for example:' - echo ' make bootstrap' - echo ' make release' + echo ' make bootstrap' + echo ' make release' exit 1 ``` @@ -190,7 +190,7 @@ The basic {% data variables.code-scanning.codeql_workflow %} uses the `autobuild You can only specify manual build steps if you have enabled advanced setup, see "[AUTOTITLE](/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/configuring-advanced-setup-for-code-scanning#configuring-advanced-setup-for-a-repository)." -{% data reusables.code-scanning.autobuild-add-build-steps %} For information on how to edit the workflow file, see "[AUTOTITLE](/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning#editing-a-code-scanning-workflow)." +{% data reusables.code-scanning.autobuild-add-build-steps %} For information on how to edit the workflow file, see "[AUTOTITLE](/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning#editing-a-code-scanning-workflow)." {% ifversion codeql-no-build %} Update your workflow to define the `build-mode` as `manual`. diff --git a/content/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.md b/content/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.md index 4d3ca26dee19..3e8297b1923d 100644 --- a/content/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.md +++ b/content/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.md @@ -38,7 +38,7 @@ You can run {% data variables.product.prodname_code_scanning %} on {% data varia With advanced setup for {% data variables.product.prodname_code_scanning %}, you can customize a {% data variables.product.prodname_code_scanning %} workflow for granular control over your configuration. For more information, see "[AUTOTITLE](/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/configuring-advanced-setup-for-code-scanning)." -{% data variables.product.prodname_codeql %} analysis is just one type of {% data variables.product.prodname_code_scanning %} you can do in {% data variables.product.prodname_dotcom %}. {% data variables.product.prodname_marketplace %}{% ifversion ghes %} on {% data variables.product.prodname_dotcom_the_website %}{% endif %} contains other {% data variables.product.prodname_code_scanning %} workflows you can use. {% ifversion fpt or ghec %}You can find a selection of these on the "Get started with {% data variables.product.prodname_code_scanning %}" page, which you can access from the **{% octicon "shield" aria-label="The shield symbol" %} Security** tab.{% endif %} The specific examples given in this article relate to the {% data variables.code-scanning.codeql_workflow %} file. +{% data variables.product.prodname_codeql %} analysis is just one type of {% data variables.product.prodname_code_scanning %} you can do in {% data variables.product.prodname_dotcom %}. {% data variables.product.prodname_marketplace %}{% ifversion ghes %} on {% data variables.product.prodname_dotcom_the_website %}{% endif %} contains other {% data variables.product.prodname_code_scanning %} workflows you can use. {% ifversion fpt or ghec %}You can find a selection of these on the "Get started with {% data variables.product.prodname_code_scanning %}" page, which you can access from the **{% octicon "shield" aria-hidden="true" %} Security** tab.{% endif %} The specific examples given in this article relate to the {% data variables.code-scanning.codeql_workflow %} file. ## Editing a {% data variables.product.prodname_code_scanning %} workflow @@ -156,7 +156,7 @@ jobs: {% ifversion ghes %}You must ensure that Git is in the PATH variable on your self-hosted runners.{% else %}If you use a self-hosted runner, you must ensure that Git is in the PATH variable.{% endif %} For more information, see "[AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners)" and "[AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/adding-self-hosted-runners)." -For recommended specifications (RAM, CPU cores, and disk) for running {% data variables.product.prodname_codeql %} analysis{% ifversion not ghes %} on self-hosted machines{% endif %}, see "[AUTOTITLE](/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/recommended-hardware-resources-for-running-codeql)." +For recommended specifications (RAM, CPU cores, and disk) for running {% data variables.product.prodname_codeql %} analysis{% ifversion not ghes %} on self-hosted machines{% endif %}, see "[AUTOTITLE](/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/recommended-hardware-resources-for-running-codeql)." ## Specifying the location for {% data variables.product.prodname_codeql %} databases @@ -336,7 +336,7 @@ If your workflow uses packs that are published on a {% data variables.product.pr The package patterns in the registries list are examined in order, so you should generally place the most specific package patterns first. The values for `token` must be a {% data variables.product.pat_v1 %} generated by the GitHub instance you are downloading from with the `read:packages` permission. -Notice the `|` after the `registries` property name. This is important since {% data variables.product.prodname_actions %} inputs can only accept strings. Using the `|` converts the subsequent text to a string, which is parsed later by the {% data reusables.actions.action-codeql-action-init %} action. +Notice the `|` after the `registries` property name. This is important since {% data variables.product.prodname_actions %} inputs can only accept strings. Using the `|` converts the subsequent text to a string, which is parsed later by the {% data reusables.actions.action-codeql-action-init %} action. ### Using queries in QL packs @@ -549,7 +549,7 @@ This step in a {% data variables.product.prodname_actions %} workflow file uses You can use the same approach to specify any valid configuration options in the workflow file. > [!TIP] -> You can share one configuration across multiple repositories using {% data variables.product.prodname_actions %} variables. One benefit of this approach is that you can update the configuration in a single place without editing the workflow file. +> You can share one configuration across multiple repositories using {% data variables.product.prodname_actions %} variables. One benefit of this approach is that you can update the configuration in a single place without editing the workflow file. > > In the following example, `vars.CODEQL_CONF` is a {% data variables.product.prodname_actions %} variable. Its value can be the contents of any valid configuration file. For more information, see "[AUTOTITLE](/actions/learn-github-actions/variables#defining-configuration-variables-for-multiple-workflows)." > diff --git a/content/code-security/code-scanning/integrating-with-code-scanning/sarif-support-for-code-scanning.md b/content/code-security/code-scanning/integrating-with-code-scanning/sarif-support-for-code-scanning.md index 5fffafa31b7e..52a814e20247 100644 --- a/content/code-security/code-scanning/integrating-with-code-scanning/sarif-support-for-code-scanning.md +++ b/content/code-security/code-scanning/integrating-with-code-scanning/sarif-support-for-code-scanning.md @@ -164,7 +164,7 @@ Any valid SARIF 2.1.0 output file can be uploaded, however, {% data variables.pr ### `reportingDescriptor` object -This is where you store details of the rules that are run during analysis. Information in these objects should change infrequently, typically when you update the tool. For more information, see "[Understanding rules and results](#understanding-rules-and-results)" above. +This is where you store details of the rules that are run during analysis. Information in these objects should change infrequently, typically when you update the tool. For more information, see "[Understanding rules and results](#understanding-rules-and-results)" above. | Name | Required | Description | |----|----|----| @@ -182,7 +182,7 @@ This is where you store details of the rules that are run during analysis. Infor ### `result` object -Each `result` object contains details for one alert in the codebase. Within the `results` object, you can reference the rule that detected the alert. For more information, see "[Understanding rules and results](#understanding-rules-and-results)" above. +Each `result` object contains details for one alert in the codebase. Within the `results` object, you can reference the rule that detected the alert. For more information, see "[Understanding rules and results](#understanding-rules-and-results)" above. {% data reusables.code-scanning.upload-sarif-alert-limit %} @@ -194,7 +194,7 @@ Each `result` object contains details for one alert in the codebase. Within the | `level`| {% octicon "x" aria-label="Optional" %} | The severity of the result. This level overrides the default severity defined by the rule. {% data variables.product.prodname_code_scanning_caps %} uses the level to filter results by severity on {% data variables.product.prodname_dotcom %}. | `message.text`| {% octicon "check" aria-label="Required" %} | A message that describes the result. {% data variables.product.prodname_code_scanning_caps %} displays the message text as the title of the result. Only the first sentence of the message will be displayed when visible space is limited. | `locations[]`| {% octicon "check" aria-label="Required" %} | The set of locations where the result was detected up to a maximum of 10. Only one location should be included unless the problem can only be corrected by making a change at every specified location. **Note:** At least one location is required for {% data variables.product.prodname_code_scanning %} to display a result. {% data variables.product.prodname_code_scanning_caps %} will use this property to decide which file to annotate with the result. Only the first value of this array is used. All other values are ignored. -| `partialFingerprints`| {% octicon "check" aria-label="Required" %} | A set of strings used to track the unique identity of the result. {% data variables.product.prodname_code_scanning_caps %} uses `partialFingerprints` to accurately identify which results are the same across commits and branches. {% data variables.product.prodname_code_scanning_caps %} will attempt to use `partialFingerprints` if they exist. If you are uploading third-party SARIF files with the `upload-action`, the action will create `partialFingerprints` for you when they are not included in the SARIF file. For more information, see "[Providing data to track code scanning alerts across runs](#providing-data-to-track-code-scanning-alerts-across-runs)." **Note:** {% data variables.product.prodname_code_scanning_caps %} only uses the `primaryLocationLineHash`. +| `partialFingerprints`| {% octicon "check" aria-label="Required" %} | A set of strings used to track the unique identity of the result. {% data variables.product.prodname_code_scanning_caps %} uses `partialFingerprints` to accurately identify which results are the same across commits and branches. {% data variables.product.prodname_code_scanning_caps %} will attempt to use `partialFingerprints` if they exist. If you are uploading third-party SARIF files with the `upload-action`, the action will create `partialFingerprints` for you when they are not included in the SARIF file. For more information, see "[Providing data to track code scanning alerts across runs](#providing-data-to-track-code-scanning-alerts-across-runs)." **Note:** {% data variables.product.prodname_code_scanning_caps %} only uses the `primaryLocationLineHash`. | `codeFlows[].threadFlows[].locations[]`| {% octicon "x" aria-label="Optional" %} | An array of `location` objects for a `threadFlow` object, which describes the progress of a program through a thread of execution. A `codeFlow` object describes a pattern of code execution used to detect a result. If code flows are provided, {% data variables.product.prodname_code_scanning %} will expand code flows on {% data variables.product.prodname_dotcom %} for the relevant result. For more information, see the [`location` object](#location-object). | `relatedLocations[]`| {% octicon "x" aria-label="Optional" %} | A set of locations relevant to this result. {% data variables.product.prodname_code_scanning_caps %} will link to related locations when they are embedded in the result message. For more information, see the [`location` object](#location-object). diff --git a/content/code-security/code-scanning/integrating-with-code-scanning/uploading-a-sarif-file-to-github.md b/content/code-security/code-scanning/integrating-with-code-scanning/uploading-a-sarif-file-to-github.md index d20ef199cb47..efe91bf96d1d 100644 --- a/content/code-security/code-scanning/integrating-with-code-scanning/uploading-a-sarif-file-to-github.md +++ b/content/code-security/code-scanning/integrating-with-code-scanning/uploading-a-sarif-file-to-github.md @@ -49,7 +49,7 @@ You can upload the results using {% data variables.product.prodname_actions %}, ## Uploading a {% data variables.product.prodname_code_scanning %} analysis with {% data variables.product.prodname_actions %} -To use {% data variables.product.prodname_actions %} to upload a third-party SARIF file to a repository, you'll need a workflow. For more information, see "[AUTOTITLE](/actions/learn-github-actions)." +To use {% data variables.product.prodname_actions %} to upload a third-party SARIF file to a repository, you'll need a workflow. For more information, see "[AUTOTITLE](/actions/learn-github-actions)." Your workflow will need to use the `upload-sarif` action, which is part of the `github/codeql-action` repository. It has input parameters that you can use to configure the upload. The main input parameters you'll use are: @@ -58,7 +58,7 @@ Your workflow will need to use the `upload-sarif` action, which is part of the ` For more information, see the {% ifversion codeql-action-node16-deprecated %}[`upload-sarif` action](https://github.com/github/codeql-action/tree/v3/upload-sarif){% else %}[`upload-sarif` action](https://github.com/github/codeql-action/tree/v2/upload-sarif){% endif %}. -The `upload-sarif` action can be configured to run when the `push` and `scheduled` event occur. For more information about {% data variables.product.prodname_actions %} events, see "[AUTOTITLE](/actions/using-workflows/events-that-trigger-workflows)." +The `upload-sarif` action can be configured to run when the `push` and `scheduled` event occur. For more information about {% data variables.product.prodname_actions %} events, see "[AUTOTITLE](/actions/using-workflows/events-that-trigger-workflows)." If your SARIF file doesn't include `partialFingerprints`, the `upload-sarif` action will calculate the `partialFingerprints` field for you and attempt to prevent duplicate alerts. {% data variables.product.prodname_dotcom %} can only create `partialFingerprints` when the repository contains both the SARIF file and the source code used in the static analysis. For more information about preventing duplicate alerts, see "[AUTOTITLE](/code-security/code-scanning/integrating-with-code-scanning/sarif-support-for-code-scanning#providing-data-to-track-code-scanning-alerts-across-runs)." diff --git a/content/code-security/code-scanning/integrating-with-code-scanning/using-code-scanning-with-your-existing-ci-system.md b/content/code-security/code-scanning/integrating-with-code-scanning/using-code-scanning-with-your-existing-ci-system.md index ef7c887079ce..79c8eceaed2d 100644 --- a/content/code-security/code-scanning/integrating-with-code-scanning/using-code-scanning-with-your-existing-ci-system.md +++ b/content/code-security/code-scanning/integrating-with-code-scanning/using-code-scanning-with-your-existing-ci-system.md @@ -33,7 +33,7 @@ You can add the {% data variables.product.prodname_codeql_cli %} to your third-p The {% data variables.product.prodname_codeql_cli %} is a standalone, command-line tool that you can use to analyze code. For more information, see "[AUTOTITLE](/code-security/codeql-cli/getting-started-with-the-codeql-cli/about-the-codeql-cli)." -Alerts for {% data variables.product.prodname_code_scanning %} that you generate externally are displayed in the same way as those for {% data variables.product.prodname_code_scanning %} that you generate within {% data variables.product.prodname_dotcom %}. {% data reusables.code-scanning.about-multiple-configurations-link %} +Alerts for {% data variables.product.prodname_code_scanning %} that you generate externally are displayed in the same way as those for {% data variables.product.prodname_code_scanning %} that you generate within {% data variables.product.prodname_dotcom %}. {% data reusables.code-scanning.about-multiple-configurations-link %} {% data reusables.code-scanning.upload-sarif-ghas %} @@ -41,7 +41,7 @@ Alerts for {% data variables.product.prodname_code_scanning %} that you generate You will first need to download your analysis tool of choice and set it up with your CI system. -If you are using the {% data variables.product.prodname_codeql_cli %}, you need to make the full contents of the {% data variables.product.prodname_codeql_cli %} bundle available to every CI server that you want to run {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %} analysis on. For more information, see "[AUTOTITLE](/code-security/codeql-cli/getting-started-with-the-codeql-cli/setting-up-the-codeql-cli)." +If you are using the {% data variables.product.prodname_codeql_cli %}, you need to make the full contents of the {% data variables.product.prodname_codeql_cli %} bundle available to every CI server that you want to run {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %} analysis on. For more information, see "[AUTOTITLE](/code-security/codeql-cli/getting-started-with-the-codeql-cli/setting-up-the-codeql-cli)." Once you've made your analysis tool available to servers in your CI system, you're ready to generate data. diff --git a/content/code-security/code-scanning/managing-code-scanning-alerts/about-code-scanning-alerts.md b/content/code-security/code-scanning/managing-code-scanning-alerts/about-code-scanning-alerts.md index e058970cbaf7..1707d3ece86c 100644 --- a/content/code-security/code-scanning/managing-code-scanning-alerts/about-code-scanning-alerts.md +++ b/content/code-security/code-scanning/managing-code-scanning-alerts/about-code-scanning-alerts.md @@ -97,7 +97,7 @@ The severity level for a {% data variables.product.prodname_code_scanning %} ale * **Severity.** All {% data variables.product.prodname_code_scanning %} alerts have a level of `Error`, `Warning`, or `Note`. * **Security severity.** Each security alert found using {% data variables.product.prodname_codeql %} also has a security severity level of `Critical`, `High`, `Medium`, or `Low`. -When an alert has a security severity level, {% data variables.product.prodname_code_scanning %} displays and uses this level in preference to the `severity`. Security severity levels follow the industry-standard Common Vulnerability Scoring System (CVSS) that is also used for advisories in the {% data variables.product.prodname_advisory_database %}. For more information, see [CVSS: Qualitative Severity Rating Scale](https://www.first.org/cvss/v3.1/specification-document#Qualitative-Severity-Rating-Scale). +When an alert has a security severity level, {% data variables.product.prodname_code_scanning %} displays and uses this level in preference to the `severity`. Security severity levels follow the industry-standard Common Vulnerability Scoring System (CVSS) that is also used for advisories in the {% data variables.product.prodname_advisory_database %}. For more information, see [CVSS: Qualitative Severity Rating Scale](https://www.first.org/cvss/v3.1/specification-document#Qualitative-Severity-Rating-Scale). ### Pull request check failures for {% data variables.product.prodname_code_scanning %} alerts diff --git a/content/code-security/code-scanning/managing-code-scanning-alerts/resolving-code-scanning-alerts.md b/content/code-security/code-scanning/managing-code-scanning-alerts/resolving-code-scanning-alerts.md index 4a65a614103a..5ee3830cfc73 100644 --- a/content/code-security/code-scanning/managing-code-scanning-alerts/resolving-code-scanning-alerts.md +++ b/content/code-security/code-scanning/managing-code-scanning-alerts/resolving-code-scanning-alerts.md @@ -44,7 +44,7 @@ With a {% data variables.product.prodname_copilot_enterprise %} license, you can {% data reusables.repositories.sidebar-security %} {% data reusables.repositories.sidebar-code-scanning-alerts %} 1. Click the name of an alert. -1. If {% data variables.product.prodname_copilot_autofix_short %} can suggest a fix, at the top of the page, click **{% octicon "shield-check" aria-label="Generate fix" %} Generate fix**. +1. If {% data variables.product.prodname_copilot_autofix_short %} can suggest a fix, at the top of the page, click **{% octicon "shield-check" aria-hidden="true" %} Generate fix**. 1. Once the suggested fix has been generated, at the bottom of the page, you can click **Create PR with fix** to automatically generate a pull request with the suggested fix. A new branch is created from the default branch, the generated fix is committed and a draft pull request is created. You can test and edit the suggested fix as you would with any other fix. diff --git a/content/code-security/code-scanning/managing-code-scanning-alerts/triaging-code-scanning-alerts-in-pull-requests.md b/content/code-security/code-scanning/managing-code-scanning-alerts/triaging-code-scanning-alerts-in-pull-requests.md index 2d61645b76aa..a537aee8fb5a 100644 --- a/content/code-security/code-scanning/managing-code-scanning-alerts/triaging-code-scanning-alerts-in-pull-requests.md +++ b/content/code-security/code-scanning/managing-code-scanning-alerts/triaging-code-scanning-alerts-in-pull-requests.md @@ -90,7 +90,7 @@ You can see any {% data variables.product.prodname_code_scanning %} alerts that You can also view all {% data variables.product.prodname_code_scanning %} alerts that are inside the diff of the changes introduced in the pull request in the **Files changed** tab. -If you add a new code scanning configuration in your pull request, you will see a comment on your pull request directing you to the **Security** tab of the repository so you can view all the alerts on the pull request branch. For more information about viewing the alerts for a repository, see "[AUTOTITLE](/code-security/code-scanning/managing-code-scanning-alerts/assessing-code-scanning-alerts-for-your-repository#viewing-the-alerts-for-a-repository)." +If you add a new code scanning configuration in your pull request, you will see a comment on your pull request directing you to the **Security** tab of the repository so you can view all the alerts on the pull request branch. For more information about viewing the alerts for a repository, see "[AUTOTITLE](/code-security/code-scanning/managing-code-scanning-alerts/assessing-code-scanning-alerts-for-your-repository#viewing-the-alerts-for-a-repository)." If you have write permission for the repository, some annotations contain links with extra context for the alert. In the example above, from {% data variables.product.prodname_codeql %} analysis, you can click **user-provided value** to see where the untrusted data enters the data flow (this is referred to as the source). In this case you can also view the full path from the source to the code that uses the data (the sink) by clicking **Show paths**. This makes it easy to check whether the data is untrusted or if the analysis failed to recognize a data sanitization step between the source and the sink. For information about analyzing data flow using {% data variables.product.prodname_codeql %}, see "[About data flow analysis](https://codeql.github.com/docs/writing-codeql-queries/about-data-flow-analysis/)." @@ -104,7 +104,7 @@ In the detailed view for an alert, some {% data variables.product.prodname_code_ ## Commenting on an alert in a pull request -You can comment on any {% data variables.product.prodname_code_scanning %} alert that appears in a pull request. Alerts appear as annotations in the **Conversation** tab of a pull request, as part of a pull request review, and also are shown in the **Files changed** tab. +You can comment on any {% data variables.product.prodname_code_scanning %} alert that appears in a pull request. Alerts appear as annotations in the **Conversation** tab of a pull request, as part of a pull request review, and also are shown in the **Files changed** tab. You can choose to require all conversations in a pull request, including those on {% data variables.product.prodname_code_scanning %} alerts, to be resolved before a pull request can be merged. For more information, see "[AUTOTITLE](/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches#require-conversation-resolution-before-merging)." diff --git a/content/code-security/code-scanning/troubleshooting-code-scanning/c-sharp-compiler-unexpectedly-failing.md b/content/code-security/code-scanning/troubleshooting-code-scanning/c-sharp-compiler-unexpectedly-failing.md index 240e0a38fc39..75329811bae0 100644 --- a/content/code-security/code-scanning/troubleshooting-code-scanning/c-sharp-compiler-unexpectedly-failing.md +++ b/content/code-security/code-scanning/troubleshooting-code-scanning/c-sharp-compiler-unexpectedly-failing.md @@ -13,7 +13,7 @@ versions: The {% data variables.product.prodname_codeql %} tracer injects some flags into the C# compiler invocation to ensure every component is built and included in the {% data variables.product.prodname_codeql %} database, which may cause your C# code to build differently to what you expect during {% data variables.product.prodname_codeql %} analysis. See "[AUTOTITLE](/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages)." -`/p:EmitCompilerGeneratedFiles=true` is one of the injected properties, and emits compiler-generated files during the build process. This option causes the compiler to generate additional files that are used to support features such as improved regular expression support, serialization, and web application view generation. These generated artifacts are typically not written to disk by the compiler, but setting the option to `true` forces writing the files to disk, and so the extractor can process the files. +`/p:EmitCompilerGeneratedFiles=true` is one of the injected properties, and emits compiler-generated files during the build process. This option causes the compiler to generate additional files that are used to support features such as improved regular expression support, serialization, and web application view generation. These generated artifacts are typically not written to disk by the compiler, but setting the option to `true` forces writing the files to disk, and so the extractor can process the files. For some legacy projects, and projects that use `.sqlproj` files, you may see that the injected `/p:EmitCompilerGeneratedFiles=true` property causes unexpected issues with `msbuild`. diff --git a/content/code-security/code-scanning/troubleshooting-code-scanning/default-setup-fails-with-a-language.md b/content/code-security/code-scanning/troubleshooting-code-scanning/default-setup-fails-with-a-language.md index 228c24dfdeb7..20c8d2154aee 100644 --- a/content/code-security/code-scanning/troubleshooting-code-scanning/default-setup-fails-with-a-language.md +++ b/content/code-security/code-scanning/troubleshooting-code-scanning/default-setup-fails-with-a-language.md @@ -14,7 +14,7 @@ To enable default setup when a language previously failed, you must reconfigure 1. If default setup fails, navigate to the main page of your repository, then click **{% octicon "gear" aria-hidden="true" %} Settings**. 1. In the "Security" section of the sidebar, click **{% octicon "codescan" aria-hidden="true" %} Code security and analysis**. 1. Navigate to the "{% data variables.product.prodname_code_scanning_caps %}" section. Then, in the error message reading "{% data variables.product.prodname_codeql %} default configuration **failed**", click **failed**. -1. In the "Jobs" section of the workflow run summary for default setup, identify any failing jobs associated with specific languages. These jobs will be labeled **{% octicon "x-circle-fill" aria-label="failed" %} Analyze (LANGUAGE)**. +1. In the "Jobs" section of the workflow run summary for default setup, identify any failing jobs associated with specific languages. These jobs will be labeled **{% octicon "x-circle-fill" aria-hidden="true" %} Analyze (LANGUAGE)**. 1. Once you have determined which language-specific jobs are failing, configure default setup once more and deselect the failing languages for analysis. For more information, see "[AUTOTITLE](/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning)." Alternatively, if you would like to analyze every language in your repository, you can configure advanced setup for {% data variables.product.prodname_code_scanning %}. For more information, see "[AUTOTITLE](/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/configuring-advanced-setup-for-code-scanning)." diff --git a/content/code-security/code-scanning/troubleshooting-code-scanning/no-source-code-seen-during-build.md b/content/code-security/code-scanning/troubleshooting-code-scanning/no-source-code-seen-during-build.md index efeb4c7476ae..a0121acafe7c 100644 --- a/content/code-security/code-scanning/troubleshooting-code-scanning/no-source-code-seen-during-build.md +++ b/content/code-security/code-scanning/troubleshooting-code-scanning/no-source-code-seen-during-build.md @@ -28,7 +28,7 @@ If your workflow fails with `Error: "No source code was seen during the build"` For more information, see the workflow extract in "[AUTOTITLE](/code-security/code-scanning/troubleshooting-code-scanning/some-languages-were-not-analyzed)". -1. _Compilation of a compiled language failed:_ Your {% data variables.product.prodname_code_scanning %} workflow tries to compile a compiled language (C, C++, C#, Go, or Java), but the code was not compiled. {% ifversion codeql-no-build %}When a workflow specifies `build-mode: autobuild` for a language or contains an `autobuild` step,{% elsif ghes %}By default, the {% data variables.product.prodname_codeql %} analysis workflow contains an `autobuild` step and{% endif %} {% data variables.product.prodname_codeql %} makes a best effort to detect a suitable build method and build your code. The `autobuild` process may not succeed in building your code, depending on your specific build environment. Compilation may also fail if you have removed the `autobuild` step and did not include build steps manually. For more information about defining build steps, see {% ifversion codeql-no-build %}"[AUTOTITLE](/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages#using-build-mode-manual-and-specifying-build-steps){% elsif ghes %}"[AUTOTITLE](/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages#adding-build-steps-for-a-compiled-language){% endif %}." +1. _Compilation of a compiled language failed:_ Your {% data variables.product.prodname_code_scanning %} workflow tries to compile a compiled language (C, C++, C#, Go, or Java), but the code was not compiled. {% ifversion codeql-no-build %}When a workflow specifies `build-mode: autobuild` for a language or contains an `autobuild` step,{% elsif ghes %}By default, the {% data variables.product.prodname_codeql %} analysis workflow contains an `autobuild` step and{% endif %} {% data variables.product.prodname_codeql %} makes a best effort to detect a suitable build method and build your code. The `autobuild` process may not succeed in building your code, depending on your specific build environment. Compilation may also fail if you have removed the `autobuild` step and did not include build steps manually. For more information about defining build steps, see {% ifversion codeql-no-build %}"[AUTOTITLE](/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages#using-build-mode-manual-and-specifying-build-steps){% elsif ghes %}"[AUTOTITLE](/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages#adding-build-steps-for-a-compiled-language){% endif %}." 1. _Cached components not detected:_ Your workflow builds a compiled language (C, C++, C#, Go, or Java) to create a {% data variables.product.prodname_codeql %} database for analysis, but portions of your build are cached to improve performance (most likely to occur with build systems like Gradle or Bazel). Since {% data variables.product.prodname_codeql %} observes the activity of the compiler to understand the data flows in a repository, {% data variables.product.prodname_codeql %} requires a complete build to take place in order to perform analysis. diff --git a/content/code-security/code-scanning/troubleshooting-sarif-uploads/file-too-large.md b/content/code-security/code-scanning/troubleshooting-sarif-uploads/file-too-large.md index 66c0fb33cfad..ec3c15d51af7 100644 --- a/content/code-security/code-scanning/troubleshooting-sarif-uploads/file-too-large.md +++ b/content/code-security/code-scanning/troubleshooting-sarif-uploads/file-too-large.md @@ -79,7 +79,7 @@ Excluding non-production code from analysis is a simple way to reduce the size o Using a build command that compiles only one variant is a simple way to reduce the size of the results file. * {% data variables.product.prodname_codeql %} advanced setup for {% data variables.product.prodname_code_scanning %}: update the workflow file to specify your chosen build command. For more information, see "[AUTOTITLE](/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages#adding-build-steps-for-a-compiled-language)." -* {% data variables.product.prodname_codeql_cli %} `database create`: specify your chosen build command either by calling the `database create` command with the `--command` option, or by defining the build command in a YAML configuration file for code scanning and calling the file using the `--codescanning-config` option. For more information, see "[AUTOTITLE](/code-security/codeql-cli/getting-started-with-the-codeql-cli/preparing-your-code-for-codeql-analysis#specifying-build-commands)." +* {% data variables.product.prodname_codeql_cli %} `database create`: specify your chosen build command either by calling the `database create` command with the `--command` option, or by defining the build command in a YAML configuration file for code scanning and calling the file using the `--codescanning-config` option. For more information, see "[AUTOTITLE](/code-security/codeql-cli/getting-started-with-the-codeql-cli/preparing-your-code-for-codeql-analysis#specifying-build-commands)." ### Defining the query suite to run diff --git a/content/code-security/code-scanning/troubleshooting-sarif-uploads/missing-token.md b/content/code-security/code-scanning/troubleshooting-sarif-uploads/missing-token.md index 026341014da7..ccbdbf4be5bf 100644 --- a/content/code-security/code-scanning/troubleshooting-sarif-uploads/missing-token.md +++ b/content/code-security/code-scanning/troubleshooting-sarif-uploads/missing-token.md @@ -33,4 +33,4 @@ You could see this error for SARIF files created using any tool and uploaded usi ## Fixing the problem -Create a new {% data variables.product.pat_generic %} or {% data variables.product.prodname_github_app %} with the correct permission. For more information see, "[AUTOTITLE](/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)", or "[AUTOTITLE](/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-as-a-github-app)" and "[AUTOTITLE](/apps/creating-github-apps/about-creating-github-apps/deciding-when-to-build-a-github-app)." +Create a new {% data variables.product.pat_generic %} or {% data variables.product.prodname_github_app %} with the correct permission. For more information see, "[AUTOTITLE](/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)", or "[AUTOTITLE](/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-as-a-github-app)" and "[AUTOTITLE](/apps/creating-github-apps/about-creating-github-apps/deciding-when-to-build-a-github-app)." diff --git a/content/code-security/codeql-cli/codeql-cli-manual/github-upload-results.md b/content/code-security/codeql-cli/codeql-cli-manual/github-upload-results.md index 392a292fcf33..3e7804c1b9eb 100644 --- a/content/code-security/codeql-cli/codeql-cli-manual/github-upload-results.md +++ b/content/code-security/codeql-cli/codeql-cli-manual/github-upload-results.md @@ -91,7 +91,7 @@ version 2.1.0 (this is the default version of SARIF used by CodeQL). By default, the CLI will wait for GitHub to process the SARIF file for a maximum of 2 minutes, returning a non-zero exit code if there were any errors during processing of the analysis results. You can customize how -long the CLI will wait wait with `--wait-for-processing-timeout`, or +long the CLI will wait with `--wait-for-processing-timeout`, or disable the feature with `--no-wait-for-processing`. #### `--wait-for-processing-timeout=` diff --git a/content/code-security/codeql-cli/getting-started-with-the-codeql-cli/analyzing-your-code-with-codeql-queries.md b/content/code-security/codeql-cli/getting-started-with-the-codeql-cli/analyzing-your-code-with-codeql-queries.md index 26085d6c3a98..1d7a6d0c503c 100644 --- a/content/code-security/codeql-cli/getting-started-with-the-codeql-cli/analyzing-your-code-with-codeql-queries.md +++ b/content/code-security/codeql-cli/getting-started-with-the-codeql-cli/analyzing-your-code-with-codeql-queries.md @@ -66,7 +66,7 @@ You must specify ``, `--format`, and `--output`. You can specify addit | --output | {% octicon "check" aria-label="Required" %} | Specify the location where you want to save the SARIF results file, including the desired filename with the `.sarif` extension. | | --sarif-category | {% octicon "question" aria-label="Required with multiple results sets" %} | Optional for single database analysis. Required to define the language when you analyze multiple databases for a single commit in a repository.

Specify a category to include in the SARIF results file for this analysis. A category is used to distinguish multiple analyses for the same tool and commit, but performed on different languages or different parts of the code. | | --sarif-add-baseline-file-info | {% octicon "x" aria-label="Optional" %} | **Recommended.** Use to submit file coverage information to the {% data variables.code-scanning.tool_status_page %}. For more information, see "[AUTOTITLE](/code-security/code-scanning/managing-your-code-scanning-configuration/about-the-tool-status-page#how-codeql-defines-scanned-files)." | -| --sarif-include-query-help | {% octicon "x" aria-label="Optional" %} | Specify whether to include query help in the SARIF output. One of: `always`: Include query help for all queries. `custom_queries_only` (default): Include query help only for custom queries, that is, queries in query packs which are not of the form `codeql/-queries`. `never`: Do not include query help for any queries. Any query help for custom queries included in the SARIF output will be displayed in any code scanning alerts for the query. For more information, see "[AUTOTITLE](/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/using-custom-queries-with-the-codeql-cli#including-query-help-for-custom-codeql-queries-in-sarif-files)." | +| --sarif-include-query-help | {% octicon "x" aria-label="Optional" %} | Specify whether to include query help in the SARIF output. One of: `always`: Include query help for all queries. `custom_queries_only` (default): Include query help only for custom queries, that is, queries in query packs which are not of the form `codeql/-queries`. `never`: Do not include query help for any queries. Any query help for custom queries included in the SARIF output will be displayed in any code scanning alerts for the query. For more information, see "[AUTOTITLE](/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/using-custom-queries-with-the-codeql-cli#including-query-help-for-custom-codeql-queries-in-sarif-files)." | | `` | {% octicon "x" aria-label="Optional" %} | Use if you want to include {% data variables.product.prodname_codeql %} query packs in your analysis. For more information, see "[Downloading and using {% data variables.product.prodname_codeql %} packs](/code-security/codeql-cli/getting-started-with-the-codeql-cli/customizing-analysis-with-codeql-packs#downloading-and-using-codeql-query-packs)." | | --download | {% octicon "x" aria-label="Optional" %} | Use if some of your {% data variables.product.prodname_codeql %} query packs are not yet on disk and need to be downloaded before running queries. | | --threads | {% octicon "x" aria-label="Optional" %} | Use if you want to use more than one thread to run queries. The default value is `1`. You can specify more threads to speed up query execution. To set the number of threads to the number of logical processors, specify `0`. | diff --git a/content/code-security/codeql-cli/getting-started-with-the-codeql-cli/customizing-analysis-with-codeql-packs.md b/content/code-security/codeql-cli/getting-started-with-the-codeql-cli/customizing-analysis-with-codeql-packs.md index 94e8d1d8098a..bf2ce1cea8e4 100644 --- a/content/code-security/codeql-cli/getting-started-with-the-codeql-cli/customizing-analysis-with-codeql-packs.md +++ b/content/code-security/codeql-cli/getting-started-with-the-codeql-cli/customizing-analysis-with-codeql-packs.md @@ -149,7 +149,7 @@ pack. > The default query suite of the standard {% data variables.product.prodname_codeql %} query packs are `codeql-suites/-code-scanning.qls`. Several other useful query suites can also be found in the `codeql-suites` directory of each pack. For example, the `codeql/cpp-queries` pack contains the following query suites: > > * `cpp-code-scanning.qls` - Standard Code Scanning queries for C++. The default query suite for this pack. -> * `cpp-security-extended.qls` - Queries from the default `cpp-code-scanning.qls` suite for C++, plus lower severity and precision queries. +> * `cpp-security-extended.qls` - Queries from the default `cpp-code-scanning.qls` suite for C++, plus lower severity and precision queries. > * `cpp-security-and-quality.qls` - Queries from `cpp-security-extended.qls`, plus maintainability and reliability queries. > > You can see the sources for these query suites in the [{% data variables.product.prodname_codeql %} repository](https://github.com/github/codeql/tree/main/cpp/ql/src/codeql-suites). Query suites for other languages are similar. diff --git a/content/code-security/codeql-cli/getting-started-with-the-codeql-cli/preparing-your-code-for-codeql-analysis.md b/content/code-security/codeql-cli/getting-started-with-the-codeql-cli/preparing-your-code-for-codeql-analysis.md index 9bc43e0f01fd..55a35601cfd6 100644 --- a/content/code-security/codeql-cli/getting-started-with-the-codeql-cli/preparing-your-code-for-codeql-analysis.md +++ b/content/code-security/codeql-cli/getting-started-with-the-codeql-cli/preparing-your-code-for-codeql-analysis.md @@ -365,7 +365,7 @@ Based on your operating system, we recommend you run: ... The `codeql database init` command creates `/temp/tracingEnvironment` with files that contain environment variables and values that will enable {% data variables.product.prodname_codeql %} to trace a sequence of build steps. These files are named `start-tracing.{json,sh,bat,ps1}`. Use one of these files with your CI system’s mechanism for setting environment variables for future steps. You can: * Read the JSON file, process it, and print out environment variables in the format expected by your CI system. For example, Azure DevOps expects `echo "##vso[task.setvariable variable=NAME]VALUE"`. -* Or, if your CI system persists the environment, source the appropriate `start-tracing` script to set the {% data variables.product.prodname_codeql %} variables in the shell environment of the CI system. +* Or, if your CI system persists the environment, source the appropriate `start-tracing` script to set the {% data variables.product.prodname_codeql %} variables in the shell environment of the CI system. Build your code; optionally, unset the environment variables using an `end-tracing.{json,sh,bat,ps1}` script from the directory where the `start-tracing` scripts are stored; and then run the command `codeql database finalize `. diff --git a/content/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/about-codeql-workspaces.md b/content/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/about-codeql-workspaces.md index 071412c24aed..81761611ad5b 100644 --- a/content/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/about-codeql-workspaces.md +++ b/content/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/about-codeql-workspaces.md @@ -69,7 +69,7 @@ This is particularly useful in the following situations: All {% data variables.product.prodname_codeql %} packs in a workspace are available as source dependencies for each other when you run any {% data variables.product.prodname_codeql %} command that resolves queries or packs. For example, when you run `codeql pack install` in a pack directory in a workspace, any dependency that can be found in the workspace will be used instead of downloading that dependency to the package cache and adding it to the `codeql-pack.lock.yml` file. For more information, see "[AUTOTITLE](/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/creating-and-working-with-codeql-packs#adding-and-installing-dependencies)." -Similarly, when you publish a {% data variables.product.prodname_codeql %} query pack to the {% data variables.product.prodname_dotcom %} container registry using `codeql pack publish` the command will always use the dependencies from the workspace instead of using dependencies found in the local package cache. +Similarly, when you publish a {% data variables.product.prodname_codeql %} query pack to the {% data variables.product.prodname_dotcom %} container registry using `codeql pack publish` the command will always use the dependencies from the workspace instead of using dependencies found in the local package cache. This ensures that any local changes you make to a query library in a dependency are automatically reflected in any query packs you publish from that workspace. @@ -100,7 +100,7 @@ dependencies: codeql/cpp-all: ~0.2.0 ``` -Notice that the `dependencies` block for the {% data variables.product.prodname_codeql %} query pack, `my-company/my-queries`, specifies `"*"` as the version of the library pack. Since the library pack is already defined as a source dependency in `codeql-workspace.yml`, the library pack’s content is always resolved from inside the workspace. Any version constraint you define will be ignored in this case. We recommend that you use `"*"` for source dependencies to make it clear that the version is inherited from the workspace. +Notice that the `dependencies` block for the {% data variables.product.prodname_codeql %} query pack, `my-company/my-queries`, specifies `"*"` as the version of the library pack. Since the library pack is already defined as a source dependency in `codeql-workspace.yml`, the library pack’s content is always resolved from inside the workspace. Any version constraint you define will be ignored in this case. We recommend that you use `"*"` for source dependencies to make it clear that the version is inherited from the workspace. When you execute `codeql pack install` from the query pack directory, an appropriate version of `codeql/cpp-all` is downloaded to the local package cache. Also, a `codeql-pack.lock.yml` file is created that contains the resolved version of `codeql/cpp-all`. The lock file won’t contain an entry for `my-company/my-library` since it is resolved from source dependencies. The `codeql-pack.lock.yml` file will look something like this: diff --git a/content/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/advanced-setup-of-the-codeql-cli.md b/content/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/advanced-setup-of-the-codeql-cli.md index 0a5341b0ec38..236f0d4ccbbf 100644 --- a/content/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/advanced-setup-of-the-codeql-cli.md +++ b/content/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/advanced-setup-of-the-codeql-cli.md @@ -81,7 +81,7 @@ For example, if the path to your copy of the {% data variables.product.prodname_ * Run `codeql resolve languages` to show which languages are available for database creation. This will list the languages supported by default in your {% data variables.product.prodname_codeql_cli %} package. * Run `codeql resolve qlpacks` to show which {% data variables.product.prodname_codeql %} packs the CLI can find. This will display the names of all the {% data variables.product.prodname_codeql %} packs directly available to the {% data variables.product.prodname_codeql_cli %}. This should include: * Query packs for each supported language, for example, `codeql/{language}-queries`. These packs contain the standard queries that will be run for each analysis. -* Library packs for each supported language, for example, `codeql/{language}-all`. These packs contain query libraries, such as control flow and data flow libraries, that may be useful to query writers. +* Library packs for each supported language, for example, `codeql/{language}-all`. These packs contain query libraries, such as control flow and data flow libraries, that may be useful to query writers. * Example packs for each supported language, for example, `codeql/{language}-examples`. These packs contain useful snippets of {% data variables.product.prodname_codeql %} that query writers may find useful. * Legacy packs that ensure custom queries and libraries created using older products are compatible with your version of {% data variables.product.prodname_codeql %}. diff --git a/content/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/creating-and-working-with-codeql-packs.md b/content/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/creating-and-working-with-codeql-packs.md index 6e0c4512adc6..5b43ee284c8d 100644 --- a/content/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/creating-and-working-with-codeql-packs.md +++ b/content/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/creating-and-working-with-codeql-packs.md @@ -134,7 +134,7 @@ This command downloads all dependencies to the shared cache on the local disk. The recommended way to experiment with changes to a pack is to clone the repository containing its source code. -If no source repository is available and you need to base modifications on a pack downloaded from the {% data variables.product.prodname_container_registry %}, be aware that these packs are not intended to be modified or customized after downloading, and their format may change in the future without much notice. We recommend taking the following steps after downloading a pack if you need to modify the content: +If no source repository is available and you need to base modifications on a pack downloaded from the {% data variables.product.prodname_container_registry %}, be aware that these packs are not intended to be modified or customized after downloading, and their format may change in the future without much notice. We recommend taking the following steps after downloading a pack if you need to modify the content: * Change the pack _name_ in `qlpack.yml` so you avoid confusion with results from the unmodified pack. diff --git a/content/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/extractor-options.md b/content/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/extractor-options.md index 0a899a3594b0..37bb5c593695 100644 --- a/content/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/extractor-options.md +++ b/content/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/extractor-options.md @@ -82,7 +82,7 @@ When running these subcommands, you can set extractor options with the `--extrac * `codeql database create --extractor-option java.option1=abc ...` * `codeql database start-tracing --extractor-option java.group1.option2=102 ...` -`--extractor-option` requires exactly one argument of the form `extractor_option_name=extractor_option_value`. `extractor_option_name` is the name of the extractor (in this example, `java`) followed by a period and then the name of the extractor option (in this example, either `option1` or `group1.option2`). `extractor_option_value` is the value being assigned to the extractor option. The value must match the regular expression pattern of the extractor option (if it exists), and it must not contain newline characters. +`--extractor-option` requires exactly one argument of the form `extractor_option_name=extractor_option_value`. `extractor_option_name` is the name of the extractor (in this example, `java`) followed by a period and then the name of the extractor option (in this example, either `option1` or `group1.option2`). `extractor_option_value` is the value being assigned to the extractor option. The value must match the regular expression pattern of the extractor option (if it exists), and it must not contain newline characters. Using `--extractor-option` to assign an extractor option that does not exist is an error. diff --git a/content/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/publishing-and-using-codeql-packs.md b/content/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/publishing-and-using-codeql-packs.md index f6af538ec9c5..0674c522c59d 100644 --- a/content/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/publishing-and-using-codeql-packs.md +++ b/content/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/publishing-and-using-codeql-packs.md @@ -55,7 +55,7 @@ You can publish packs and download private packs by authenticating to the approp {% endif %} -You can authenticate to the {% data variables.product.prodname_container_registry %} in two ways: +You can authenticate to the {% data variables.product.prodname_container_registry %} in two ways: 1. Pass the `--github-auth-stdin` option to the {% data variables.product.prodname_codeql_cli %}, then supply a {% data variables.product.prodname_github_apps %} token or {% data variables.product.pat_generic %} via standard input. 1. Set the `GITHUB_TOKEN` environment variable to a {% data variables.product.prodname_github_apps %} token or {% data variables.product.pat_generic %}. @@ -135,7 +135,7 @@ This command accepts arguments for multiple packs. If you write scripts that specify a particular version number of a query pack to download, keep in mind that when you update your version of {% data variables.product.prodname_codeql %} to a newer one, you may -also need to switch to a newer version of the query pack. Newer +also need to switch to a newer version of the query pack. Newer versions of {% data variables.product.prodname_codeql %} _may_ provide degraded performance when used with query packs that have been pinned to a very old version. For more information, see "[About {% data variables.product.prodname_codeql %} @@ -162,7 +162,7 @@ codeql analyze / / ``` > [!NOTE] -> The `codeql pack download` command stores the pack it downloads in an internal location that is not intended for local modification. Unexpected (and hard to troubleshoot) behavior may result if the pack is modified after downloading. For more information about customizing packs, see "[AUTOTITLE](/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/creating-and-working-with-codeql-packs)." +> The `codeql pack download` command stores the pack it downloads in an internal location that is not intended for local modification. Unexpected (and hard to troubleshoot) behavior may result if the pack is modified after downloading. For more information about customizing packs, see "[AUTOTITLE](/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/creating-and-working-with-codeql-packs)." ## About {% data variables.product.prodname_codeql %} pack compatibility diff --git a/content/code-security/codeql-for-vs-code/getting-started-with-codeql-for-vs-code/running-codeql-queries-at-scale-with-multi-repository-variant-analysis.md b/content/code-security/codeql-for-vs-code/getting-started-with-codeql-for-vs-code/running-codeql-queries-at-scale-with-multi-repository-variant-analysis.md index 5a79a1ae0558..c03717e9f266 100644 --- a/content/code-security/codeql-for-vs-code/getting-started-with-codeql-for-vs-code/running-codeql-queries-at-scale-with-multi-repository-variant-analysis.md +++ b/content/code-security/codeql-for-vs-code/getting-started-with-codeql-for-vs-code/running-codeql-queries-at-scale-with-multi-repository-variant-analysis.md @@ -21,7 +21,7 @@ When you run MRVA against a list of repositories, your query is run against each You need to enable {% data variables.product.prodname_code_scanning %} using {% data variables.product.prodname_codeql %} on {% data variables.product.github %}, using either default setup or advanced setup, before adding your repository to a list for analysis. For information about enabling {% data variables.product.prodname_code_scanning %} using {% data variables.product.prodname_codeql %}, see "[AUTOTITLE](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning-for-a-repository#configuring-code-scanning-automatically)." -### How MRVA runs queries against {% data variables.product.prodname_codeql %} databases on {% data variables.product.prodname_dotcom_the_website %} +### How MRVA runs queries against {% data variables.product.prodname_codeql %} databases on {% data variables.product.prodname_dotcom_the_website %} When you run MRVA, the analysis is run entirely using {% data variables.product.prodname_actions %}. You don't need to create any workflows, but you must specify which repository the {% data variables.product.prodname_codeql %} for {% data variables.product.prodname_vscode %} extension should use as a controller repository. As the analysis of each repository completes, the results are sent to {% data variables.product.prodname_vscode_shortname %} for you to view. @@ -125,7 +125,7 @@ You can export your results for further analysis or to discuss them with collabo ## Creating a custom list of repositories > [!NOTE] -> {% data variables.product.prodname_codeql %} analysis always requires a {% data variables.product.prodname_codeql %} database to run queries against. When you run variant analysis against a list of repositories, your query will only be executed against the repositories that currently have a {% data variables.product.prodname_codeql %} database available to download. The best way to make a repository available for variant analysis is to enable {% data variables.product.prodname_code_scanning %} with {% data variables.product.prodname_codeql %}. For information about enabling {% data variables.product.prodname_code_scanning %} using {% data variables.product.prodname_codeql %}, see "[AUTOTITLE](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning-for-a-repository#configuring-code-scanning-automatically)." +> {% data variables.product.prodname_codeql %} analysis always requires a {% data variables.product.prodname_codeql %} database to run queries against. When you run variant analysis against a list of repositories, your query will only be executed against the repositories that currently have a {% data variables.product.prodname_codeql %} database available to download. The best way to make a repository available for variant analysis is to enable {% data variables.product.prodname_code_scanning %} with {% data variables.product.prodname_codeql %}. For information about enabling {% data variables.product.prodname_code_scanning %} using {% data variables.product.prodname_codeql %}, see "[AUTOTITLE](/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning-for-a-repository#configuring-code-scanning-automatically)." 1. In the "Variant Analysis Repositories" view, click the "Add list" icon. diff --git a/content/code-security/codeql-for-vs-code/getting-started-with-codeql-for-vs-code/running-codeql-queries.md b/content/code-security/codeql-for-vs-code/getting-started-with-codeql-for-vs-code/running-codeql-queries.md index cd4a13e99be6..69405fdf9c6a 100644 --- a/content/code-security/codeql-for-vs-code/getting-started-with-codeql-for-vs-code/running-codeql-queries.md +++ b/content/code-security/codeql-for-vs-code/getting-started-with-codeql-for-vs-code/running-codeql-queries.md @@ -121,7 +121,7 @@ The "Query History" view contains information including the date and time when t If a result links to a source code element, you can click it to display it in the source. -To use standard code navigation features in the source code, you can right-click an element and use the commands **Go to Definition** or **Go to References**. This runs a {% data variables.product.prodname_codeql %} query over the active file, which may take a few seconds. This query needs to run once for every file, so any additional references from the same file will be fast. +To use standard code navigation features in the source code, you can right-click an element and use the commands **Go to Definition** or **Go to References**. This runs a {% data variables.product.prodname_codeql %} query over the active file, which may take a few seconds. This query needs to run once for every file, so any additional references from the same file will be fast. > [!NOTE] > If you're using an older database, code navigation commands such as **Go to Definition** and **Go to References** may not work. To use code navigation, try unzipping the database and running `codeql database cleanup ` on the unzipped database using the {% data variables.product.prodname_codeql_cli %}. Then, re-add the database to {% data variables.product.prodname_vscode %}. For more information, see "[AUTOTITLE](/code-security/codeql-cli/codeql-cli-manual/database-cleanup)." diff --git a/content/code-security/codeql-for-vs-code/troubleshooting-codeql-for-vs-code/accessing-logs.md b/content/code-security/codeql-for-vs-code/troubleshooting-codeql-for-vs-code/accessing-logs.md index a7e3b237789d..fbd6679bde23 100644 --- a/content/code-security/codeql-for-vs-code/troubleshooting-codeql-for-vs-code/accessing-logs.md +++ b/content/code-security/codeql-for-vs-code/troubleshooting-codeql-for-vs-code/accessing-logs.md @@ -29,7 +29,7 @@ You can access the following logs: * {% data variables.product.prodname_codeql %} Tests > [!NOTE] -> The {% data variables.product.prodname_codeql %} Language Server log contains more advanced debug logs for {% data variables.product.prodname_codeql %} language maintainers. You should only need these to provide details in a bug report. +> The {% data variables.product.prodname_codeql %} Language Server log contains more advanced debug logs for {% data variables.product.prodname_codeql %} language maintainers. You should only need these to provide details in a bug report. ## Accessing logs diff --git a/content/code-security/codeql-for-vs-code/using-the-advanced-functionality-of-the-codeql-for-vs-code-extension/setting-up-a-codeql-workspace.md b/content/code-security/codeql-for-vs-code/using-the-advanced-functionality-of-the-codeql-for-vs-code-extension/setting-up-a-codeql-workspace.md index 4698cf181ed7..952897f60dc4 100644 --- a/content/code-security/codeql-for-vs-code/using-the-advanced-functionality-of-the-codeql-for-vs-code-extension/setting-up-a-codeql-workspace.md +++ b/content/code-security/codeql-for-vs-code/using-the-advanced-functionality-of-the-codeql-for-vs-code-extension/setting-up-a-codeql-workspace.md @@ -54,6 +54,6 @@ There are several different ways to give the extension access to the standard li ### Option 3: Open the directory containing the extracted {% data variables.product.prodname_codeql_cli %} archive > [!NOTE] -> For this option, you need to set up the {% data variables.product.prodname_codeql_cli %}. For more information, see "[AUTOTITLE](/code-security/codeql-cli/getting-started-with-the-codeql-cli/setting-up-the-codeql-cli)." +> For this option, you need to set up the {% data variables.product.prodname_codeql_cli %}. For more information, see "[AUTOTITLE](/code-security/codeql-cli/getting-started-with-the-codeql-cli/setting-up-the-codeql-cli)." In {% data variables.product.prodname_vscode_shortname %}, open the directory where you extracted the {% data variables.product.prodname_codeql_cli %} .zip archive to create a {% data variables.product.prodname_codeql %} directory (for example `codeql-home`). diff --git a/content/code-security/codeql-for-vs-code/using-the-advanced-functionality-of-the-codeql-for-vs-code-extension/telemetry-in-codeql-for-visual-studio-code.md b/content/code-security/codeql-for-vs-code/using-the-advanced-functionality-of-the-codeql-for-vs-code-extension/telemetry-in-codeql-for-visual-studio-code.md index ab718a75ee95..1163bbcda58a 100644 --- a/content/code-security/codeql-for-vs-code/using-the-advanced-functionality-of-the-codeql-for-vs-code-extension/telemetry-in-codeql-for-visual-studio-code.md +++ b/content/code-security/codeql-for-vs-code/using-the-advanced-functionality-of-the-codeql-for-vs-code-extension/telemetry-in-codeql-for-visual-studio-code.md @@ -41,7 +41,7 @@ If you opt in, {% data variables.product.company_short %} collects the following * IP address of the client sending the telemetry data. This is discarded before aggregation. -* Whether any {% data variables.product.prodname_codeql %} for {% data variables.product.prodname_vscode_shortname %} extension settings are configured. For more information about customizing settings, see "[AUTOTITLE](/code-security/codeql-for-vs-code/using-the-advanced-functionality-of-the-codeql-for-vs-code-extension/customizing-settings)." +* Whether any {% data variables.product.prodname_codeql %} for {% data variables.product.prodname_vscode_shortname %} extension settings are configured. For more information about customizing settings, see "[AUTOTITLE](/code-security/codeql-for-vs-code/using-the-advanced-functionality-of-the-codeql-for-vs-code-extension/customizing-settings)." ## How long data is retained diff --git a/content/code-security/dependabot/dependabot-alerts/about-dependabot-alerts.md b/content/code-security/dependabot/dependabot-alerts/about-dependabot-alerts.md index 44f9595ad89a..5565b75ef043 100644 --- a/content/code-security/dependabot/dependabot-alerts/about-dependabot-alerts.md +++ b/content/code-security/dependabot/dependabot-alerts/about-dependabot-alerts.md @@ -85,7 +85,7 @@ When {% data variables.product.product_name %} identifies a vulnerable dependenc > [!WARNING] > {% data variables.product.product_name %}'s security features do not claim to catch all vulnerabilities. We actively maintain {% data variables.product.prodname_advisory_database %} and generate alerts with the most up-to-date information. However, we cannot catch everything or tell you about known vulnerabilities within a guaranteed time frame. These features are not substitutes for human review of each dependency for potential vulnerabilities or any other issues, and we recommend consulting with a security service or conducting a thorough dependency review when necessary. -## Access to {% data variables.product.prodname_dependabot_alerts %} +## Access to {% data variables.product.prodname_dependabot_alerts %} You can see all of the alerts that affect a particular project{% ifversion fpt or ghec %} on the repository's **Security** tab or{% endif %} in the repository's dependency graph. For more information, see "[AUTOTITLE](/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts)." diff --git a/content/code-security/dependabot/dependabot-alerts/configuring-notifications-for-dependabot-alerts.md b/content/code-security/dependabot/dependabot-alerts/configuring-notifications-for-dependabot-alerts.md index 12b8f7f4c8da..eb7500fb1ecc 100644 --- a/content/code-security/dependabot/dependabot-alerts/configuring-notifications-for-dependabot-alerts.md +++ b/content/code-security/dependabot/dependabot-alerts/configuring-notifications-for-dependabot-alerts.md @@ -1,7 +1,7 @@ --- title: Configuring notifications for Dependabot alerts shortTitle: Configure notifications -intro: 'Optimize how you receive notifications about {% 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 @@ -52,7 +52,7 @@ You can configure notification settings for yourself or your organization from t ![Screenshot of the notification options for {% data variables.product.prodname_dependabot_alerts %}.](/assets/images/help/enterprises/dependabot-alerts-options-no-ui.png){% endif %} > [!NOTE] -> You can filter your notifications on {% data variables.product.company_short %} to show {% data variables.product.prodname_dependabot_alerts %}. For more information, see "[AUTOTITLE](/account-and-profile/managing-subscriptions-and-notifications-on-github/viewing-and-triaging-notifications/managing-notifications-from-your-inbox#dependabot-custom-filters)." +> You can filter your notifications on {% data variables.product.company_short %} to show {% data variables.product.prodname_dependabot_alerts %}. For more information, see "[AUTOTITLE](/account-and-profile/managing-subscriptions-and-notifications-on-github/viewing-and-triaging-notifications/managing-notifications-from-your-inbox#dependabot-custom-filters)." {% data reusables.repositories.security-alerts-x-github-severity %} For more information, see "[AUTOTITLE](/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications#filtering-email-notifications)." diff --git a/content/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates.md b/content/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates.md index 2d941a81ed4e..ae354cbe09ee 100644 --- a/content/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates.md +++ b/content/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates.md @@ -41,7 +41,7 @@ If you enable {% data variables.product.prodname_dependabot_security_updates %}, {% data reusables.dependabot.dependabot-security-updates-disable-for-alert-rules %} -{% data variables.product.prodname_dotcom %} may send {% data variables.product.prodname_dependabot_alerts %} to repositories affected by a vulnerability disclosed by a recently published {% data variables.product.prodname_dotcom %} security advisory. {% data reusables.security-advisory.link-browsing-advisory-db %} +{% data variables.product.prodname_dotcom %} may send {% data variables.product.prodname_dependabot_alerts %} to repositories affected by a vulnerability disclosed by a recently published {% data variables.product.prodname_dotcom %} security advisory. {% data reusables.security-advisory.link-browsing-advisory-db %} {% data variables.product.prodname_dependabot %} checks whether it's possible to upgrade the vulnerable dependency to a fixed version without disrupting the dependency graph for the repository. Then {% data variables.product.prodname_dependabot %} raises a pull request to update the dependency to the minimum version that includes the patch and links the pull request to the {% data variables.product.prodname_dependabot %} alert, or reports an error on the alert. For more information, see "[AUTOTITLE](/code-security/dependabot/working-with-dependabot/troubleshooting-dependabot-errors)." diff --git a/content/code-security/dependabot/dependabot-security-updates/configuring-dependabot-security-updates.md b/content/code-security/dependabot/dependabot-security-updates/configuring-dependabot-security-updates.md index 0a1bd63c5977..b66aae1aedd1 100644 --- a/content/code-security/dependabot/dependabot-security-updates/configuring-dependabot-security-updates.md +++ b/content/code-security/dependabot/dependabot-security-updates/configuring-dependabot-security-updates.md @@ -149,7 +149,7 @@ updates: ``` > [!NOTE] -> In order for {% data variables.product.prodname_dependabot %} to use this configuration for security updates, the `directory` must be the path to the manifest files, and you should not specify a `target-branch`. +> In order for {% data variables.product.prodname_dependabot %} to use this configuration for security updates, the `directory` must be the path to the manifest files, and you should not specify a `target-branch`. ## Further reading 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 7d6056ae1bc9..ea3fc1925b8c 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 @@ -29,14 +29,14 @@ The {% data variables.product.prodname_dependabot %} configuration file, `depend You must store this file in the `.github` directory of your repository in the default branch. When you add or update the `dependabot.yml` file, this triggers an immediate check for version updates. For more information and an example, see "[AUTOTITLE](/code-security/dependabot/dependabot-version-updates/configuring-dependabot-version-updates#enabling-dependabot-version-updates)." -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 "[AUTOTITLE](/code-security/dependabot/dependabot-security-updates/configuring-dependabot-security-updates)." +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 "[AUTOTITLE](/code-security/dependabot/dependabot-security-updates/configuring-dependabot-security-updates)." > [!NOTE] > You cannot configure {% data variables.product.prodname_dependabot_alerts %} using the `dependabot.yml` file. The `dependabot.yml` file has two mandatory top-level keys: `version`, and `updates`. You can, optionally, include a top-level `registries` key. The file must start with `version: 2`. -For a real-world example of `dependabot.yml` file, see [{% data variables.product.prodname_dependabot %}'s own configuration file](https://github.com/dependabot/dependabot-core/blob/main/.github/dependabot.yml). +For a real-world example of `dependabot.yml` file, see [{% data variables.product.prodname_dependabot %}'s own configuration file](https://github.com/dependabot/dependabot-core/blob/main/.github/dependabot.yml). ## Configuration options for the `dependabot.yml` file @@ -230,7 +230,7 @@ updates: interval: "weekly" ``` -{% data reusables.dependabot.multidirectory-vs-pr-grouping %} For more information about grouping, see "[`groups`](#groups)." +{% data reusables.dependabot.multidirectory-vs-pr-grouping %} For more information about grouping, see "[`groups`](#groups)." {% endif %} @@ -1098,7 +1098,7 @@ registries: ### `docker-registry` -{% data variables.product.prodname_dependabot %} works with any container registries that implement the OCI container registry spec. For more information, see [https://github.com/opencontainers/distribution-spec/blob/main/spec.md](https://github.com/opencontainers/distribution-spec/blob/main/spec.md). {% data variables.product.prodname_dependabot %} supports authentication to private registries via a central token service or HTTP Basic Auth. For further details, see [Token Authentication Specification](https://docs.docker.com/registry/spec/auth/token/) in the Docker documentation and [Basic access authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) on Wikipedia. +{% data variables.product.prodname_dependabot %} works with any container registries that implement the OCI container registry spec. For more information, see [https://github.com/opencontainers/distribution-spec/blob/main/spec.md](https://github.com/opencontainers/distribution-spec/blob/main/spec.md). {% data variables.product.prodname_dependabot %} supports authentication to private registries via a central token service or HTTP Basic Auth. For further details, see [Token Authentication Specification](https://docs.docker.com/registry/spec/auth/token/) in the Docker documentation and [Basic access authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) on Wikipedia. The `docker-registry` type supports username and password. {% data reusables.dependabot.password-definition %} diff --git a/content/code-security/dependabot/dependabot-version-updates/customizing-dependency-updates.md b/content/code-security/dependabot/dependabot-version-updates/customizing-dependency-updates.md index ba6d5b24525c..1eb499d4f585 100644 --- a/content/code-security/dependabot/dependabot-version-updates/customizing-dependency-updates.md +++ b/content/code-security/dependabot/dependabot-version-updates/customizing-dependency-updates.md @@ -77,7 +77,7 @@ updates: By default, {% data variables.product.prodname_dependabot %} raises pull requests without any reviewers or assignees. -You can use `reviewers` and `assignees` to specify reviewers and assignees for all pull requests raised for a package manager. When you specify a team, you must use the full team name, as if you were @mentioning the team (including the organization). +You can use `reviewers` and `assignees` to specify reviewers and assignees for all pull requests raised for a package manager. When you specify a team, you must use the full team name, as if you were @mentioning the team (including the organization). The example `dependabot.yml` file below changes the npm configuration so that all pull requests opened with version and security updates for npm will have two reviewers and one assignee. diff --git a/content/code-security/dependabot/working-with-dependabot/about-dependabot-on-github-actions-runners.md b/content/code-security/dependabot/working-with-dependabot/about-dependabot-on-github-actions-runners.md index 0ca05c4469ae..60743efa50b3 100644 --- a/content/code-security/dependabot/working-with-dependabot/about-dependabot-on-github-actions-runners.md +++ b/content/code-security/dependabot/working-with-dependabot/about-dependabot-on-github-actions-runners.md @@ -63,7 +63,7 @@ You can manage {% data variables.product.prodname_dependabot %} on {% data varia {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-settings %} {% data reusables.repositories.navigate-to-code-security-and-analysis %} -1. Under "Dependabot", to the right of "{% data variables.product.prodname_dependabot %} on Actions runners", click **Enable** to enable the feature or **Disable** to disable it. +1. Under "Dependabot", to the right of "{% data variables.product.prodname_dependabot %} on Actions runners", click **Enable** to enable the feature or **Disable** to disable it. ### Enabling or disabling for your organization diff --git a/content/code-security/dependabot/working-with-dependabot/guidance-for-the-configuration-of-private-registries-for-dependabot.md b/content/code-security/dependabot/working-with-dependabot/guidance-for-the-configuration-of-private-registries-for-dependabot.md index 12beffb7b393..eb8faacac258 100644 --- a/content/code-security/dependabot/working-with-dependabot/guidance-for-the-configuration-of-private-registries-for-dependabot.md +++ b/content/code-security/dependabot/working-with-dependabot/guidance-for-the-configuration-of-private-registries-for-dependabot.md @@ -95,7 +95,7 @@ registries: ### Cargo -Cargo supports username, password and token-based authentication. For more information, see `cargo-registry` in "[AUTOTITLE](/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#cargo-registry)." +Cargo supports username, password and token-based authentication. For more information, see `cargo-registry` in "[AUTOTITLE](/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#cargo-registry)." The snippet below shows a `dependabot.yml` file configuration that uses a token. @@ -575,7 +575,7 @@ If the `yarn.lock` file doesn't list the private registry as the dependency sour {% data reusables.dependabot.access-private-dependencies-link %} -For scoped dependencies (`@my-org/my-dep`), {% data variables.product.prodname_dependabot %} requires that the private registry is defined in the project's `.yarnrc file`. To define private registries for individual scopes, use `@myscope:registry" "https://private_registry_url"`. +For scoped dependencies (`@my-org/my-dep`), {% data variables.product.prodname_dependabot %} requires that the private registry is defined in the project's `.yarnrc file`. To define private registries for individual scopes, use `@myscope:registry" "https://private_registry_url"`. ## Configuring private registry hosts @@ -603,7 +603,7 @@ The `target branch` setting does not work with {% data variables.product.prodnam ### Azure Artifacts -For information about Azure Artifacts and instructions on how to configure {% data variables.product.prodname_dependabot %} to work with Azure Artifacts, see [Azure DevOps](https://learn.microsoft.com/en-us/azure/devops/artifacts/?view=azure-devops) in the Azure Artifacts documentation, and [Use Dependabot in GitHub with Azure Artifacts](https://josh-ops.com/posts/github-dependabot-with-azure-artifacts/), respectively. +For information about Azure Artifacts and instructions on how to configure {% data variables.product.prodname_dependabot %} to work with Azure Artifacts, see [Azure DevOps](https://learn.microsoft.com/en-us/azure/devops/artifacts/?view=azure-devops) in the Azure Artifacts documentation, and [Use Dependabot in GitHub with Azure Artifacts](https://josh-ops.com/posts/github-dependabot-with-azure-artifacts/), respectively. Example of Azure Artifacts registry: diff --git a/content/code-security/dependabot/working-with-dependabot/managing-dependabot-on-self-hosted-runners.md b/content/code-security/dependabot/working-with-dependabot/managing-dependabot-on-self-hosted-runners.md index 27ac620e63f1..f6fd7b8d9b3e 100644 --- a/content/code-security/dependabot/working-with-dependabot/managing-dependabot-on-self-hosted-runners.md +++ b/content/code-security/dependabot/working-with-dependabot/managing-dependabot-on-self-hosted-runners.md @@ -17,7 +17,7 @@ topics: ## About {% data variables.product.prodname_dependabot %} on {% data variables.product.prodname_actions %} self-hosted runners -{% data reusables.dependabot.dependabot-updates-and-actions %} For more information, see "[AUTOTITLE](/code-security/dependabot/working-with-dependabot/about-dependabot-on-github-actions-runners)." +{% data reusables.dependabot.dependabot-updates-and-actions %} For more information, see "[AUTOTITLE](/code-security/dependabot/working-with-dependabot/about-dependabot-on-github-actions-runners)." {% data reusables.dependabot.dependabot-on-actions-future-note %} @@ -84,7 +84,7 @@ You can manage {% data variables.product.prodname_dependabot %} on self-hosted r {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-settings %} {% data reusables.repositories.navigate-to-code-security-and-analysis %} -1. Under "Dependabot", to the right of "{% data variables.product.prodname_dependabot %} on self-hosted runners", click **Enable** to enable the feature or **Disable** to disable it. +1. Under "Dependabot", to the right of "{% data variables.product.prodname_dependabot %} on self-hosted runners", click **Enable** to enable the feature or **Disable** to disable it. ### Enabling or disabling for your organization diff --git a/content/code-security/dependabot/working-with-dependabot/troubleshooting-dependabot-errors.md b/content/code-security/dependabot/working-with-dependabot/troubleshooting-dependabot-errors.md index 531dbf7a3921..48fbce04da2a 100644 --- a/content/code-security/dependabot/working-with-dependabot/troubleshooting-dependabot-errors.md +++ b/content/code-security/dependabot/working-with-dependabot/troubleshooting-dependabot-errors.md @@ -102,7 +102,7 @@ my project --> B (1.0.1) [~1.0.0] ``` -If a security vulnerability is released for `B` versions `<2.0.0` and a patch is available at `2.0.0` then {% data variables.product.prodname_dependabot %} will attempt to update `B` but will find that it's not possible due to the restriction in place by `A` which only allows lower vulnerable versions. To fix the vulnerability, {% data variables.product.prodname_dependabot %} will look for updates to dependency `A` which allow the fixed version of `B` to be used. +If a security vulnerability is released for `B` versions `<2.0.0` and a patch is available at `2.0.0` then {% data variables.product.prodname_dependabot %} will attempt to update `B` but will find that it's not possible due to the restriction in place by `A` which only allows lower vulnerable versions. To fix the vulnerability, {% data variables.product.prodname_dependabot %} will look for updates to dependency `A` which allow the fixed version of `B` to be used. {% data variables.product.prodname_dependabot %} automatically generates a pull request that upgrades both the locked parent and child transitive dependencies. diff --git a/content/code-security/dependabot/working-with-dependabot/troubleshooting-the-detection-of-vulnerable-dependencies.md b/content/code-security/dependabot/working-with-dependabot/troubleshooting-the-detection-of-vulnerable-dependencies.md index b0d5e4a63c5f..4f2544e5e51c 100644 --- a/content/code-security/dependabot/working-with-dependabot/troubleshooting-the-detection-of-vulnerable-dependencies.md +++ b/content/code-security/dependabot/working-with-dependabot/troubleshooting-the-detection-of-vulnerable-dependencies.md @@ -46,7 +46,7 @@ topics: ## Why don't I get {% data variables.product.prodname_dependabot_alerts %} for some ecosystems? -{% data variables.product.prodname_dependabot_alerts %} are supported for a set of ecosystems where we can provide high-quality, actionable data. Curated advisories in the {% data variables.product.prodname_advisory_database %}, the dependency graph, {% ifversion fpt or ghec %}{% data variables.product.prodname_dependabot %} security updates, {% endif %}and {% data variables.product.prodname_dependabot_alerts %} are provided for several ecosystems, including Java’s Maven, JavaScript’s npm and Yarn, .NET’s NuGet, Python’s pip, Ruby's RubyGems, and PHP’s Composer. For an overview of the package ecosystems that we support for {% data variables.product.prodname_dependabot_alerts %}, see "[AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/dependency-graph-supported-package-ecosystems#supported-package-ecosystems)." +{% data variables.product.prodname_dependabot_alerts %} are supported for a set of ecosystems where we can provide high-quality, actionable data. Curated advisories in the {% data variables.product.prodname_advisory_database %}, the dependency graph, {% ifversion fpt or ghec %}{% data variables.product.prodname_dependabot %} security updates, {% endif %}and {% data variables.product.prodname_dependabot_alerts %} are provided for several ecosystems, including Java’s Maven, JavaScript’s npm and Yarn, .NET’s NuGet, Python’s pip, Ruby's RubyGems, and PHP’s Composer. For an overview of the package ecosystems that we support for {% data variables.product.prodname_dependabot_alerts %}, see "[AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/dependency-graph-supported-package-ecosystems#supported-package-ecosystems)." It's worth noting that security advisories may exist for other ecosystems. The information in an unreviewed security advisory is provided by the maintainers of a particular repository. This data is not curated by {% data variables.product.prodname_dotcom %}. {% data reusables.security-advisory.link-browsing-advisory-db %} diff --git a/content/code-security/getting-started/dependabot-quickstart-guide.md b/content/code-security/getting-started/dependabot-quickstart-guide.md index 6a140f15c044..c0c786b00223 100644 --- a/content/code-security/getting-started/dependabot-quickstart-guide.md +++ b/content/code-security/getting-started/dependabot-quickstart-guide.md @@ -18,7 +18,7 @@ shortTitle: Dependabot quickstart ## About {% data variables.product.prodname_dependabot %} -This quickstart guide walks you through setting up and enabling {% data variables.product.prodname_dependabot %} and viewing {% data variables.product.prodname_dependabot_alerts %} and updates for a repository. +This quickstart guide walks you through setting up and enabling {% data variables.product.prodname_dependabot %} and viewing {% data variables.product.prodname_dependabot_alerts %} and updates for a repository. {% data reusables.dependabot.dependabot-overview %} @@ -34,7 +34,7 @@ You need to start by forking the demo repository. 1. Navigate to [https://github.com/dependabot/demo](https://github.com/dependabot/demo). 1. At the top of the page, on the right, click **{% octicon "repo-forked" aria-hidden="true" %} Fork**. -1. Select an owner (you can select your {% data variables.product.prodname_dotcom %} personal account) and type a repository name. For more information about forking repositories, see "[AUTOTITLE](/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo#forking-a-repository)." +1. Select an owner (you can select your {% data variables.product.prodname_dotcom %} personal account) and type a repository name. For more information about forking repositories, see "[AUTOTITLE](/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo#forking-a-repository)." 1. Click **Create fork**. ## Enabling {% data variables.product.prodname_dependabot %} for your repository diff --git a/content/code-security/getting-started/quickstart-for-securing-your-repository.md b/content/code-security/getting-started/quickstart-for-securing-your-repository.md index 84fb9a45a2aa..9c2ed5357463 100644 --- a/content/code-security/getting-started/quickstart-for-securing-your-repository.md +++ b/content/code-security/getting-started/quickstart-for-securing-your-repository.md @@ -31,7 +31,7 @@ Your security needs are unique to your repository, so you may not need to enable The first step to securing a repository is to establish who can see and modify your code. For more information, see "[AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features)." -From the main page of your repository, click **{% octicon "gear" aria-label="The Settings gear" %} Settings**, then scroll down to the "Danger Zone." +From the main page of your repository, click **{% octicon "gear" aria-hidden="true" %} Settings**, then scroll down to the "Danger Zone." * To change who can view your repository, click **Change visibility**. For more information, see "[AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/setting-repository-visibility)." * To change who can access your repository and adjust permissions, click **Manage access**. For more information, see"[AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/managing-teams-and-people-with-access-to-your-repository)." @@ -41,7 +41,7 @@ From the main page of your repository, click **{% octicon "gear" aria-label="The {% ifversion fpt or ghec %} {% data reusables.dependency-graph.feature-availability %} The dependency graph interprets manifest and lock files in a repository to identify dependencies. -1. From the main page of your repository, click **{% octicon "gear" aria-label="The Settings gear" %} Settings**. +1. From the main page of your repository, click **{% octicon "gear" aria-hidden="true" %} Settings**. 1. Click **Security & analysis**. 1. Next to Dependency graph, click **Enable** or **Disable**. {% endif %} @@ -82,7 +82,7 @@ Dependency review lets you visualize dependency changes in pull requests before Dependency review is a {% data variables.product.prodname_GH_advanced_security %} feature. {% ifversion fpt or ghec %}Dependency review is already enabled for all public repositories. {% ifversion fpt %}Organizations that use {% data variables.product.prodname_ghe_cloud %} with {% data variables.product.prodname_advanced_security %} can additionally enable dependency review for private and internal repositories. For more information, see the [{% data variables.product.prodname_ghe_cloud %} documentation](/enterprise-cloud@latest/code-security/getting-started/quickstart-for-securing-your-repository#managing-dependency-review). {% endif %}{% endif %}{% ifversion ghec or ghes %}To enable dependency review for a {% ifversion ghec %}private or internal {% endif %}repository, ensure that the dependency graph is enabled and enable {% data variables.product.prodname_GH_advanced_security %}. -1. From the main page of your repository, click **{% octicon "gear" aria-label="The Settings gear" %}Settings**. +1. From the main page of your repository, click **{% octicon "gear" aria-hidden="true" %} Settings**. 1. Click **Security & analysis**. 1. {% ifversion ghec %}If dependency graph is not already enabled, click **Enable**.{% elsif ghes %}Check that dependency graph is configured for your enterprise.{% endif %} 1. If {% data variables.product.prodname_GH_advanced_security %} is not already enabled, click **Enable**. @@ -93,7 +93,7 @@ Dependency review is a {% data variables.product.prodname_GH_advanced_security % For any repository that uses {% data variables.product.prodname_dependabot_alerts %}, you can enable {% data variables.product.prodname_dependabot_security_updates %} to raise pull requests with security updates when vulnerabilities are detected. -1. From the main page of your repository, click **{% octicon "gear" aria-label="The Settings gear" %}Settings**. +1. From the main page of your repository, click **{% octicon "gear" aria-hidden="true" %} Settings**. 1. Click **Security & analysis**. 1. Next to {% data variables.product.prodname_dependabot_security_updates %}, click **Enable**. @@ -104,7 +104,7 @@ For more information, see "[AUTOTITLE](/code-security/dependabot/dependabot-secu You can enable {% data variables.product.prodname_dependabot %} to automatically raise pull requests to keep your dependencies up-to-date. For more information, see "[AUTOTITLE](/code-security/dependabot/dependabot-version-updates/about-dependabot-version-updates)." {% ifversion dependabot-settings-update-37 %} -1. From the main page of your repository, click **{% octicon "gear" aria-label="The Settings gear" %} Settings**. +1. From the main page of your repository, click **{% octicon "gear" aria-hidden="true" %} Settings**. 1. Click **Security & analysis**. 1. Next to {% data variables.product.prodname_dependabot_version_updates %}, click **Enable** to create a basic `dependabot.yml` configuration file. 1. Specify the dependencies to update and any associated configuration options, then commit the file to the repository. For more information, see "[AUTOTITLE](/code-security/dependabot/dependabot-version-updates/configuring-dependabot-version-updates#enabling-dependabot-version-updates)." @@ -131,7 +131,7 @@ Alternatively, you can use advanced setup, which generates a workflow file you c {% data reusables.gated-features.secret-scanning %} -1. From the main page of your repository, click **{% octicon "gear" aria-label="The Settings gear" %}Settings**. +1. From the main page of your repository, click **{% octicon "gear" aria-hidden="true" %} Settings**. 1. Click **Code security & analysis**. {% ifversion ghec or ghes %} 1. If {% data variables.product.prodname_GH_advanced_security %} is not already enabled, click **Enable**.{% endif %} @@ -141,7 +141,7 @@ Alternatively, you can use advanced setup, which generates a workflow file you c If you are a repository maintainer, it's good practice to specify a security policy for your repository by creating a file named `SECURITY.md` in the repository. This file instructs users about how to best contact you and collaborate with you when they want to report security vulnerabilities in your repository. You can view the security policy of a repository from the repository’s **Security** tab. -1. From the main page of your repository, click **{% octicon "shield" aria-label="The shield symbol" %} Security**. +1. From the main page of your repository, click **{% octicon "shield" aria-hidden="true" %} Security**. 1. Click **Security policy**. 1. Click **Start setup**. 1. Add information about supported versions of your project and how to report vulnerabilities. diff --git a/content/code-security/secret-scanning/copilot-secret-scanning/generating-regular-expressions-for-custom-patterns-with-ai.md b/content/code-security/secret-scanning/copilot-secret-scanning/generating-regular-expressions-for-custom-patterns-with-copilot-secret-scanning.md similarity index 72% rename from content/code-security/secret-scanning/copilot-secret-scanning/generating-regular-expressions-for-custom-patterns-with-ai.md rename to content/code-security/secret-scanning/copilot-secret-scanning/generating-regular-expressions-for-custom-patterns-with-copilot-secret-scanning.md index fa3f4072df90..878725023b6a 100644 --- a/content/code-security/secret-scanning/copilot-secret-scanning/generating-regular-expressions-for-custom-patterns-with-ai.md +++ b/content/code-security/secret-scanning/copilot-secret-scanning/generating-regular-expressions-for-custom-patterns-with-copilot-secret-scanning.md @@ -1,8 +1,9 @@ --- -title: Generating regular expressions for custom patterns with AI -shortTitle: Use the regular expression generator -intro: 'You can use the {% data variables.secret-scanning.custom-pattern-regular-expression-generator %} to generate regular expressions for custom patterns. The generator uses an AI model to generate expressions that match your input, and optionally example strings.' +title: Generating regular expressions for custom patterns with Copilot secret scanning +shortTitle: Regular expression generator +intro: 'You can use {% data variables.secret-scanning.copilot-secret-scanning %}''s {% data variables.secret-scanning.custom-pattern-regular-expression-generator %} to write regular expressions for custom patterns. The generator uses an AI model to generate expressions that match your input, and optionally example strings.' permissions: '{% data reusables.permissions.security-repo-enable %}' +allowTitleToDifferFromFilename: true versions: feature: secret-scanning-custom-pattern-ai-generated type: how_to @@ -14,9 +15,10 @@ topics: redirect_from: - /code-security/secret-scanning/generating-regular-expressions-for-custom-patterns-with-ai - /code-security/secret-scanning/using-advanced-secret-scanning-and-push-protection-features/custom-patterns/generating-regular-expressions-for-custom-patterns-with-ai + - /code-security/secret-scanning/copilot-secret-scanning/generating-regular-expressions-for-custom-patterns-with-ai --- -## Generating a regular expression for a repository with AI +## Generating a regular expression for a repository with {% data variables.secret-scanning.copilot-secret-scanning %} {% data reusables.secret-scanning.copilot-secret-scanning-expression-generator-subscription-note %} @@ -32,7 +34,7 @@ redirect_from: {% data reusables.secret-scanning.link-to-push-protection %} -## Generating a regular expression for an organization with AI +## Generating a regular expression for an organization with {% data variables.secret-scanning.copilot-secret-scanning %} {% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} @@ -48,4 +50,4 @@ redirect_from: ## Further reading -* "[AUTOTITLE](/code-security/secret-scanning/copilot-secret-scanning/responsible-use-ai-regex-generator)" +* "[AUTOTITLE](/code-security/secret-scanning/copilot-secret-scanning/responsible-ai-regex-generator)" diff --git a/content/code-security/secret-scanning/copilot-secret-scanning/index.md b/content/code-security/secret-scanning/copilot-secret-scanning/index.md index 0faba154b80c..02a38b43faa5 100644 --- a/content/code-security/secret-scanning/copilot-secret-scanning/index.md +++ b/content/code-security/secret-scanning/copilot-secret-scanning/index.md @@ -14,8 +14,9 @@ topics: children: - /responsible-ai-generic-secrets - /enabling-ai-powered-generic-secret-detection - - /responsible-use-ai-regex-generator - - /generating-regular-expressions-for-custom-patterns-with-ai + - /responsible-ai-regex-generator + - /generating-regular-expressions-for-custom-patterns-with-copilot-secret-scanning redirect_from: - /code-security/secret-scanning/using-advanced-secret-scanning-and-push-protection-features/generic-secret-detection --- + diff --git a/content/code-security/secret-scanning/copilot-secret-scanning/responsible-use-ai-regex-generator.md b/content/code-security/secret-scanning/copilot-secret-scanning/responsible-ai-regex-generator.md similarity index 65% rename from content/code-security/secret-scanning/copilot-secret-scanning/responsible-use-ai-regex-generator.md rename to content/code-security/secret-scanning/copilot-secret-scanning/responsible-ai-regex-generator.md index 8a595b4045b7..1886f3514ecc 100644 --- a/content/code-security/secret-scanning/copilot-secret-scanning/responsible-use-ai-regex-generator.md +++ b/content/code-security/secret-scanning/copilot-secret-scanning/responsible-ai-regex-generator.md @@ -1,5 +1,5 @@ --- -title: Responsible use of AI to define regular expressions +title: Responsible generation of regular expressions with Copilot secret scanning shortTitle: Generate regular expressions with AI intro: 'Learn about the capabilities and limitations of the {% data variables.secret-scanning.custom-pattern-regular-expression-generator %} in helping you to define custom patterns to extend the capabilities of {% data variables.product.prodname_secret_scanning %}.' product: '{% data reusables.gated-features.copilot-secret-scanning %}' @@ -18,17 +18,18 @@ redirect_from: - /code-security/secret-scanning/about-generating-regular-expressions-with-ai - /code-security/secret-scanning/using-advanced-secret-scanning-and-push-protection-features/custom-patterns/about-generating-regular-expressions-with-ai - /code-security/secret-scanning/using-advanced-secret-scanning-and-push-protection-features/custom-patterns/responsible-use-ai-regex-generator + - /code-security/secret-scanning/copilot-secret-scanning/responsible-use-ai-regex-generator --- -## About generating regular expressions with AI +## About generating regular expressions with {% data variables.secret-scanning.copilot-secret-scanning %} {% data variables.product.prodname_secret_scanning_caps %} scans repositories for a predefined set of secrets from our partner program, as well as custom patterns that are user-defined. Custom patterns are formatted as regular expressions. {% data reusables.rai.secret-scanning.copilot-secret-scanning-expression-generator-subscription-note %} -Regular expressions can be challenging for people to write. The {% data variables.secret-scanning.custom-pattern-regular-expression-generator %} makes it possible for you to define your custom patterns without knowledge of regular expressions. Within the existing custom pattern page, you can launch a generative AI experience where you input a text description of what pattern you would like to detect, include optional example strings that should be detected, and get matching regular expressions in return. +Regular expressions can be challenging for people to write. {% data variables.secret-scanning.copilot-secret-scanning %}'s {% data variables.secret-scanning.custom-pattern-regular-expression-generator %} makes it possible for you to define your custom patterns without knowledge of regular expressions. Within the existing custom pattern page, you can launch a generative AI experience where you input a text description of what pattern you would like to detect, include optional example strings that should be detected, and get matching regular expressions in return. ### Input processing @@ -36,7 +37,7 @@ Users input a text description of what they would like to detect, and optional e ### Response generation and output formatting -The {% data variables.secret-scanning.custom-pattern-regular-expression-generator %} uses GPT-3.5-Turbo and the {% data variables.product.prodname_copilot %} API to generate regular expressions that match your input. +{% data variables.secret-scanning.copilot-secret-scanning %}'s {% data variables.secret-scanning.custom-pattern-regular-expression-generator %} uses GPT-3.5-Turbo and the {% data variables.product.prodname_copilot %} API to generate regular expressions that match your input. The model returns up to three regular expressions for you to review. You can click on the regular expression to get an AI-generated plain language description of the regular expression. @@ -46,25 +47,25 @@ When you click **Use result** on a regular expression, the expression and any ex ## Improving performance when generating regular expressions with AI -To enhance performance and address some of the limitations of the {% data variables.secret-scanning.custom-pattern-regular-expression-generator %}, there are various measures that you can adopt. For more information on the limitations of the {% data variables.secret-scanning.custom-pattern-regular-expression-generator %}, see "[Limitations of generating regular expressions with AI](#limitations-of-generating-regular-expressions-with-ai)." +To enhance performance and address some of the limitations of {% data variables.secret-scanning.copilot-secret-scanning %}'s {% data variables.secret-scanning.custom-pattern-regular-expression-generator %}, there are various measures that you can adopt. For more information on the limitations of the {% data variables.secret-scanning.custom-pattern-regular-expression-generator %}, see "[Limitations of generating regular expressions with AI](#limitations-of-generating-regular-expressions-with-ai)." -### Use the {% data variables.secret-scanning.custom-pattern-regular-expression-generator %} as a tool, not a replacement +### Use {% data variables.secret-scanning.copilot-secret-scanning %}'s {% data variables.secret-scanning.custom-pattern-regular-expression-generator %} as a tool, not a replacement While the {% data variables.secret-scanning.custom-pattern-regular-expression-generator %} is a powerful tool to create custom patterns without you having to write regular expressions yourself, it is important to use it as a tool rather than a replacement for manual input. You should carefully validate the performance of the results by performing a dry run across your organization or repository. It's a good idea to run the pattern on a repository (or repositories) that are representative of the repositories in your organization. In some cases, it may be beneficial to modify a generated regular expression to more fully meet your needs. You remain ultimately responsible for any custom patterns you decide to use. ## Limitations of generating regular expressions with AI -Depending on factors such as your input description and examples, you may experience different levels of performance when using the {% data variables.secret-scanning.custom-pattern-regular-expression-generator %}. You need to be as specific as possible with your description, and provide different types of examples of tokens that match your pattern, to be sure that the regular expression encompasses all the patterns you want {% data variables.product.prodname_secret_scanning %} to search for. +Depending on factors such as your input description and examples, you may experience different levels of performance when using {% data variables.secret-scanning.copilot-secret-scanning %}'s {% data variables.secret-scanning.custom-pattern-regular-expression-generator %}. You need to be as specific as possible with your description, and provide different types of examples of tokens that match your pattern, to be sure that the regular expression encompasses all the patterns you want {% data variables.product.prodname_secret_scanning %} to search for. Also, the model used by the {% data variables.secret-scanning.custom-pattern-regular-expression-generator %} has been trained on natural language content written predominantly in English. As a result, you may notice differing performance when providing the generator with natural language input prompts in languages other than English. -Note that the {% data variables.secret-scanning.custom-pattern-regular-expression-generator %} is only suitable for creating regular expressions to detect structured patterns. +Note that {% data variables.secret-scanning.copilot-secret-scanning %}'s {% data variables.secret-scanning.custom-pattern-regular-expression-generator %} is only suitable for creating regular expressions to detect structured patterns. {% ifversion secret-scanning-custom-pattern-ai-generated %} ## Next steps -* [AUTOTITLE](/code-security/secret-scanning/copilot-secret-scanning/generating-regular-expressions-for-custom-patterns-with-ai) +* [AUTOTITLE](/code-security/secret-scanning/copilot-secret-scanning/generating-regular-expressions-for-custom-patterns-with-copilot-secret-scanning) * [AUTOTITLE](/code-security/secret-scanning/managing-alerts-from-secret-scanning) {% endif %} diff --git a/content/code-security/secret-scanning/introduction/about-secret-scanning.md b/content/code-security/secret-scanning/introduction/about-secret-scanning.md index 41c41f483bff..ef6afa7c951d 100644 --- a/content/code-security/secret-scanning/introduction/about-secret-scanning.md +++ b/content/code-security/secret-scanning/introduction/about-secret-scanning.md @@ -32,7 +32,7 @@ When a supported secret is leaked, {% data variables.product.product_name %} gen {% ifversion fpt or ghec %}Service providers can partner with {% data variables.product.company_short %} to provide their secret formats for scanning. We automatically run {% data variables.product.prodname_secret_scanning %} for partner patterns on all public repositories and public npm packages.{% data reusables.secret-scanning.partner-program-link %} -Any strings that match patterns that were provided by secret scanning partners are reported directly to the relevant partner, and aren't displayed on {% data variables.product.prodname_dotcom %}. For more information about partner patterns, see "[AUTOTITLE](/code-security/secret-scanning/managing-alerts-from-secret-scanning/about-alerts)."{% endif %} +Any strings that match patterns that were provided by secret scanning partners are reported directly to the relevant partner, and aren't displayed on {% data variables.product.prodname_dotcom %}. For more information about partner patterns, see "[AUTOTITLE](/code-security/secret-scanning/managing-alerts-from-secret-scanning/about-alerts)."{% endif %} For information about the secrets and service providers supported by {% data variables.product.prodname_secret_scanning %}, see "[AUTOTITLE](/code-security/secret-scanning/introduction/supported-secret-scanning-patterns#supported-secrets)." @@ -121,7 +121,7 @@ Define your own patterns for secrets used by your organization that {% data vari ### {% data variables.secret-scanning.copilot-secret-scanning %} * **{% data variables.secret-scanning.generic-secret-detection-caps %}**: Leverage {% data variables.product.prodname_secret_scanning %}'s AI capabilities to detect unstructured secrets, such as passwords, in your repository. For more information, see "[AUTOTITLE](/code-security/secret-scanning/copilot-secret-scanning/responsible-ai-generic-secrets)."{% ifversion secret-scanning-custom-pattern-ai-generated %} -* **{% data variables.secret-scanning.custom-pattern-regular-expression-generator-caps %}**: Leverage {% data variables.product.prodname_secret_scanning %}'s AI capabilities to generate regular expressions that will capture all your custom patterns. For more information, see "[AUTOTITLE](/code-security/secret-scanning/copilot-secret-scanning/responsible-use-ai-regex-generator).{% endif %} +* **{% data variables.secret-scanning.custom-pattern-regular-expression-generator-caps %}**: Leverage {% data variables.product.prodname_secret_scanning %}'s AI capabilities to generate regular expressions that will capture all your custom patterns. For more information, see "[AUTOTITLE](/code-security/secret-scanning/copilot-secret-scanning/responsible-ai-regex-generator).{% endif %} {% endif %} diff --git a/content/code-security/secret-scanning/managing-alerts-from-secret-scanning/resolving-alerts.md b/content/code-security/secret-scanning/managing-alerts-from-secret-scanning/resolving-alerts.md index ac9bd343f95d..c2d6a386c313 100644 --- a/content/code-security/secret-scanning/managing-alerts-from-secret-scanning/resolving-alerts.md +++ b/content/code-security/secret-scanning/managing-alerts-from-secret-scanning/resolving-alerts.md @@ -66,7 +66,7 @@ You will only see the option to report a privately exposed secret to {% data var ## Closing alerts > [!NOTE] ->{% data variables.product.prodname_secret_scanning_caps %} doesn't automatically close alerts when the corresponding token has been removed from the repository. You must manually close these alerts in the alert list on {% data variables.product.prodname_dotcom %}. +>{% data variables.product.prodname_secret_scanning_caps %} doesn't automatically close alerts when the corresponding token has been removed from the repository. You must manually close these alerts in the alert list on {% data variables.product.prodname_dotcom %}. {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.sidebar-security %} diff --git a/content/code-security/secret-scanning/using-advanced-secret-scanning-and-push-protection-features/custom-patterns/defining-custom-patterns-for-secret-scanning.md b/content/code-security/secret-scanning/using-advanced-secret-scanning-and-push-protection-features/custom-patterns/defining-custom-patterns-for-secret-scanning.md index efc601953068..d4e6023a8da7 100644 --- a/content/code-security/secret-scanning/using-advanced-secret-scanning-and-push-protection-features/custom-patterns/defining-custom-patterns-for-secret-scanning.md +++ b/content/code-security/secret-scanning/using-advanced-secret-scanning-and-push-protection-features/custom-patterns/defining-custom-patterns-for-secret-scanning.md @@ -28,26 +28,26 @@ You can define custom patterns for your enterprise, organization, or repository. You can specify custom patterns for {% data variables.product.prodname_secret_scanning %} as one or more regular expressions. -{% data variables.product.prodname_secret_scanning_caps %} uses the [Hyperscan library](https://github.com/intel/hyperscan) and only supports Hyperscan regex constructs, which are a subset of PCRE syntax. Hyperscan option modifiers are not supported. For more information on Hyperscan pattern constructs, see "[Pattern support](http://intel.github.io/hyperscan/dev-reference/compilation.html#pattern-support)" in the Hyperscan documentation. +{% data variables.product.prodname_secret_scanning_caps %} uses the [Hyperscan library](https://github.com/intel/hyperscan) and only supports Hyperscan regex constructs, which are a subset of PCRE syntax. Hyperscan option modifiers are not supported. For more information on Hyperscan pattern constructs, see "[Pattern support](http://intel.github.io/hyperscan/dev-reference/compilation.html#pattern-support)" in the Hyperscan documentation. -{% ifversion secret-scanning-custom-pattern-ai-generated %}Regular expressions can be entered manually or generated using the regular expression generator. +{% ifversion secret-scanning-custom-pattern-ai-generated %}Regular expressions can be entered manually or generated using {% data variables.secret-scanning.copilot-secret-scanning %}'s {% data variables.secret-scanning.custom-pattern-regular-expression-generator %}. ### Regular expression syntax for manually defining custom patterns {% endif %} -The **More options {% octicon "chevron-down" aria-label="down" %}** section in the UI helps you write regular expressions manually. +The **More options {% octicon "chevron-down" aria-hidden="true" %}** section in the UI helps you write regular expressions manually. * **Secret format:** an expression that describes the format of the secret itself. * **Before secret:** an expression that describes the characters that come before the secret. By default, this is set to `\A|[^0-9A-Za-z]` which means that the secret must be at the start of a line or be preceded by a non-alphanumeric character. * **After secret:** an expression that describes the characters that come after the secret. By default, this is set to `\z|[^0-9A-Za-z]` which means that the secret must be followed by a new line or a non-alphanumeric character. * **Additional match requirements:** one or more optional expressions that the secret itself must or must not match. -For simple tokens you will usually only need to specify a secret format. The other fields provide flexibility so that you can specify more complex secrets without creating complex regular expressions. For an example of a custom pattern, see "[Example of a custom pattern specified using additional requirements](#example-of-a-custom-pattern-specified-using-additional-requirements)" below. +For simple tokens you will usually only need to specify a secret format. The other fields provide flexibility so that you can specify more complex secrets without creating complex regular expressions. For an example of a custom pattern, see "[Example of a custom pattern specified using additional requirements](#example-of-a-custom-pattern-specified-using-additional-requirements)" below. {% ifversion secret-scanning-custom-pattern-ai-generated %} -### Using the regular expression generator +### Using {% data variables.secret-scanning.copilot-secret-scanning %}'s {% data variables.secret-scanning.custom-pattern-regular-expression-generator %} -{% data reusables.secret-scanning.regular-expression-generator-overview %} For more information, see "[AUTOTITLE](/code-security/secret-scanning/copilot-secret-scanning/responsible-use-ai-regex-generator)" and "[AUTOTITLE](/code-security/secret-scanning/copilot-secret-scanning/generating-regular-expressions-for-custom-patterns-with-ai)." +{% data reusables.secret-scanning.regular-expression-generator-overview %} For more information, see "[AUTOTITLE](/code-security/secret-scanning/copilot-secret-scanning/responsible-ai-regex-generator)" and "[AUTOTITLE](/code-security/secret-scanning/copilot-secret-scanning/generating-regular-expressions-for-custom-patterns-with-copilot-secret-scanning)." {% endif %} diff --git a/content/code-security/security-advisories/guidance-on-reporting-and-writing-information-about-vulnerabilities/best-practices-for-writing-repository-security-advisories.md b/content/code-security/security-advisories/guidance-on-reporting-and-writing-information-about-vulnerabilities/best-practices-for-writing-repository-security-advisories.md index cd14cd02b015..1196a061794c 100644 --- a/content/code-security/security-advisories/guidance-on-reporting-and-writing-information-about-vulnerabilities/best-practices-for-writing-repository-security-advisories.md +++ b/content/code-security/security-advisories/guidance-on-reporting-and-writing-information-about-vulnerabilities/best-practices-for-writing-repository-security-advisories.md @@ -59,7 +59,7 @@ For more information about the {% data variables.product.prodname_advisory_datab * Smaller numbers are earlier versions than larger numbers. for example, `1.0.0` is a lower version than `2.0.0` * Earlier letters in the alphabet are earlier versions than later letters in the alphabet. For example, `2.0.0-a` is an earlier version than `2.0.0-b`. -* Any letters that come after a number are considered part of a prerelease, so any versions with letters after the numbers are earlier versions than numbers without letters in the version number. For example, `2.0.0-alpha`, `2.0.0-beta`, and `2.0.0-rc` are earlier than `2.0.0`. +* Any letters that come after a number are considered part of a prerelease, so any versions with letters after the numbers are earlier versions than numbers without letters in the version number. For example, `2.0.0-alpha`, `2.0.0-beta`, and `2.0.0-rc` are earlier than `2.0.0`. * A fixed version cannot be smaller than the largest number in the VVR. For example, a vulnerable version is released and the maintainer recommends downgrading. The maintainer cannot label that lower version as a fixed or patched version in the `Fixed` field because that version is smaller than the vulnerable version. ### Supported operators diff --git a/content/code-security/security-advisories/working-with-global-security-advisories-from-the-github-advisory-database/about-the-github-advisory-database.md b/content/code-security/security-advisories/working-with-global-security-advisories-from-the-github-advisory-database/about-the-github-advisory-database.md index 836dcb1d4aeb..504d81027e08 100644 --- a/content/code-security/security-advisories/working-with-global-security-advisories-from-the-github-advisory-database/about-the-github-advisory-database.md +++ b/content/code-security/security-advisories/working-with-global-security-advisories-from-the-github-advisory-database/about-the-github-advisory-database.md @@ -107,7 +107,7 @@ The {% data variables.product.prodname_advisory_database %} uses the CVSS levels The Exploit Prediction Scoring System, or EPSS, is a system devised by the global Forum of Incident Response and Security Teams (FIRST) for quantifying the likelihood of vulnerability exploit. The model produces a probability score between 0 and 1 (0 and 100%), where the higher the score, the greater the probability that a vulnerability will be exploited. For more information about FIRST, see https://www.first.org/. -The {% data variables.product.prodname_advisory_database %} includes EPSS scores from FIRST for advisories containing CVEs with corresponding EPSS data. {% data variables.product.company_short %} also displays the EPSS score percentile, which is the proportion of all scored vulnerabilities with the same or a lower EPSS score. +The {% data variables.product.prodname_advisory_database %} includes EPSS scores from FIRST for advisories containing CVEs with corresponding EPSS data. {% data variables.product.company_short %} also displays the EPSS score percentile, which is the proportion of all scored vulnerabilities with the same or a lower EPSS score. For example, if an advisory had an EPSS score that had a percentage of 90.534% at the 95th percentile, according to the [EPSS model](https://www.first.org/epss/model), this means that: @@ -116,7 +116,7 @@ For example, if an advisory had an EPSS score that had a percentage of 90.534% a Extended information about how to interpret this data can be found in FIRST's EPSS User Guide. This information helps you understand how both percentage and percentile can be used to interpret the likelihood that a vulnerability could be exploited in the wild according to FIRST's model. For more information, see the [FIRST's EPSS User Guide](https://www.first.org/epss/user-guide) on the FIRST website. -FIRST also provides additional information around the distribution of their EPSS data. For more information, see [EPSS data and statistics documentation](https://www.first.org/epss/data_stats) on the FIRST website. +FIRST also provides additional information around the distribution of their EPSS data. For more information, see [EPSS data and statistics documentation](https://www.first.org/epss/data_stats) on the FIRST website. >[!NOTE] {% data variables.product.company_short %} keeps EPSS data up to date with a daily synchronization action. While EPSS score percentages will always be fully synchronized, score percentiles will only be updated when significantly different. diff --git a/content/code-security/security-advisories/working-with-global-security-advisories-from-the-github-advisory-database/editing-security-advisories-in-the-github-advisory-database.md b/content/code-security/security-advisories/working-with-global-security-advisories-from-the-github-advisory-database/editing-security-advisories-in-the-github-advisory-database.md index 744f63e9db8e..492d52ba735f 100644 --- a/content/code-security/security-advisories/working-with-global-security-advisories-from-the-github-advisory-database/editing-security-advisories-in-the-github-advisory-database.md +++ b/content/code-security/security-advisories/working-with-global-security-advisories-from-the-github-advisory-database/editing-security-advisories-in-the-github-advisory-database.md @@ -27,7 +27,7 @@ The advisories in the {% data variables.product.prodname_advisory_database %} ar Anyone can suggest improvements on any global security advisory in the {% data variables.product.prodname_advisory_database %}. You can edit or add any detail, including additionally affected ecosystems, severity level or description of who is impacted. The {% data variables.product.prodname_security %} curation team will review the submitted improvements and publish them onto the {% data variables.product.prodname_advisory_database %} if accepted. {% ifversion security-advisories-credit-types %} -If we accept and publish the improvement, the person who submitted the improvement will automatically be assigned a credit type of "Analyst". For more information, see "[AUTOTITLE](/code-security/security-advisories/working-with-repository-security-advisories/creating-a-repository-security-advisory#about-credits-for-repository-security-advisories)."{% endif %} +If we accept and publish the improvement, the person who submitted the improvement will automatically be assigned a credit type of "Analyst". For more information, see "[AUTOTITLE](/code-security/security-advisories/working-with-repository-security-advisories/creating-a-repository-security-advisory#about-credits-for-repository-security-advisories)."{% endif %} {% ifversion fpt or ghec %} Only repository owners and administrators can edit repository-level security advisories. For more information, see "[AUTOTITLE](/code-security/security-advisories/working-with-repository-security-advisories/editing-a-repository-security-advisory)."{% endif %} diff --git a/content/code-security/security-advisories/working-with-repository-security-advisories/permission-levels-for-repository-security-advisories.md b/content/code-security/security-advisories/working-with-repository-security-advisories/permission-levels-for-repository-security-advisories.md index 6628e8abc37e..883bc218eee9 100644 --- a/content/code-security/security-advisories/working-with-repository-security-advisories/permission-levels-for-repository-security-advisories.md +++ b/content/code-security/security-advisories/working-with-repository-security-advisories/permission-levels-for-repository-security-advisories.md @@ -18,7 +18,7 @@ topics: - Permissions shortTitle: Permission levels --- -This article applies only to repository-level security advisories. Anyone can contribute to global security advisories in the {% data variables.product.prodname_advisory_database %} at [github.com/advisories](https://github.com/advisories). Edits to global advisories will not change or affect how the advisory appears on the repository. For more information, see "[AUTOTITLE](/code-security/security-advisories/working-with-global-security-advisories-from-the-github-advisory-database/editing-security-advisories-in-the-github-advisory-database)." +This article applies only to repository-level security advisories. Anyone can contribute to global security advisories in the {% data variables.product.prodname_advisory_database %} at [github.com/advisories](https://github.com/advisories). Edits to global advisories will not change or affect how the advisory appears on the repository. For more information, see "[AUTOTITLE](/code-security/security-advisories/working-with-global-security-advisories-from-the-github-advisory-database/editing-security-advisories-in-the-github-advisory-database)." ## Permissions overview diff --git a/content/code-security/security-overview/filtering-alerts-in-security-overview.md b/content/code-security/security-overview/filtering-alerts-in-security-overview.md index 850df50113bc..af87d65c5a15 100644 --- a/content/code-security/security-overview/filtering-alerts-in-security-overview.md +++ b/content/code-security/security-overview/filtering-alerts-in-security-overview.md @@ -43,7 +43,7 @@ All security views have features to help you define filters. These provide an ea * **Interactive search text box.** When you click in the search box and press the keyboard "Space" key, a pop-up text box shows the filter options available in that view. You can use the mouse or keyboard arrow keys to select the options you want in the text box before pressing the keyboard "Return" key to add the filter. Supported for all views. * **Dropdown selectors and toggles.** Shown at the end of the "Search text box" or in the header of the data table. As you choose the data to view, the filters shown in the search text box are updated accordingly. Supported on the alert views.{% ifversion security-overview-3-13-overview %} -* **Advanced filters dialog.** When you click the **{% octicon "filter" aria-label="Advanced filter dialog" %} Filter** button, you can use dropdown lists to select the "Qualifier", "Operator", and "Values" for each filter. Supported on the "Overview" and metric views.{% endif %} +* **Advanced filters dialog.** When you click the **{% octicon "filter" aria-hidden="true" %} Filter** button, you can use dropdown lists to select the "Qualifier", "Operator", and "Values" for each filter. Supported on the "Overview" and metric views.{% endif %} ## Repository name, visibility, and status filters @@ -148,8 +148,8 @@ The level of risk for a repository is determined by the number and severity of a | Qualifier | Description | | -------- | -------- | | `code-scanning-alerts` | Display data for repositories that have exactly (`=`), more than (`>`) or fewer than (`<`) a specific number of {% data variables.product.prodname_code_scanning %} alerts. For example: `code-scanning-alerts:>100` for repositories with more than 100 alerts. | -| `dependabot-alerts` | Display data for repositories that have a specific number (`=`), more than (`>`) or fewer than (`<`) a specific number of {% data variables.product.prodname_dependabot_alerts %}. For example: `dependabot-alerts:<=10` for repositories with fewer than or equal to 10 alerts.| -| `secret-scanning-alerts` | Display data for repositories that have a specific number (`=`), more than (`>`) or fewer than (`<`) a specific number of {% data variables.secret-scanning.alerts %}. For example: `secret-scanning-alerts:=10` for repositories with exactly 10 alerts.| +| `dependabot-alerts` | Display data for repositories that have a specific number (`=`), more than (`>`) or fewer than (`<`) a specific number of {% data variables.product.prodname_dependabot_alerts %}. For example: `dependabot-alerts:<=10` for repositories with fewer than or equal to 10 alerts.| +| `secret-scanning-alerts` | Display data for repositories that have a specific number (`=`), more than (`>`) or fewer than (`<`) a specific number of {% data variables.secret-scanning.alerts %}. For example: `secret-scanning-alerts:=10` for repositories with exactly 10 alerts.| {% ifversion security-overview-dashboard %} diff --git a/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-supply-chain-security.md b/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-supply-chain-security.md index 6786424d231e..a8ce6db98c20 100644 --- a/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-supply-chain-security.md +++ b/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-supply-chain-security.md @@ -45,7 +45,7 @@ Other supply chain features on {% data variables.product.prodname_dotcom %} rely * Dependency review uses the dependency graph to identify dependency changes and help you understand the security impact of these changes when you review pull requests. * {% data variables.product.prodname_dependabot %} cross-references dependency data provided by the dependency graph with the list of advisories published in the {% data variables.product.prodname_advisory_database %}, scans your dependencies and generates {% data variables.product.prodname_dependabot_alerts %} when a potential vulnerability is detected. -* {% data variables.product.prodname_dependabot_security_updates %} use the dependency graph and {% data variables.product.prodname_dependabot_alerts %} to help you update dependencies with known vulnerabilities in your repository. +* {% data variables.product.prodname_dependabot_security_updates %} use the dependency graph and {% data variables.product.prodname_dependabot_alerts %} to help you update dependencies with known vulnerabilities in your repository. {% data variables.product.prodname_dependabot_version_updates %} don't use the dependency graph and rely on the semantic versioning of dependencies instead. {% data variables.product.prodname_dependabot_version_updates %} help you keep your dependencies updated, even when they don’t have any vulnerabilities. diff --git a/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph.md b/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph.md index 9d874fe87dff..6f48aa11b47d 100644 --- a/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph.md +++ b/content/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph.md @@ -53,7 +53,7 @@ The dependency graph includes all the dependencies of a repository that are deta * Direct dependencies, that are explicitly defined in a manifest or lock file or have been submitted using the {% data variables.dependency-submission-api.name %} * Indirect dependencies of these direct dependencies, also known as transitive dependencies or sub-dependencies -The dependency graph identifies indirect dependencies{% ifversion fpt or ghec %} only if they are defined in a lock file or have been submitted using the {% data variables.dependency-submission-api.name %}. For the most reliable graph, you should use lock files (or their equivalent) because they define exactly which versions of the direct and indirect dependencies you currently use. If you use lock files, you also ensure that all contributors to the repository are using the same versions, which will make it easier for you to test and debug code{% else %} from the lock files{% endif %}. If your ecosystem does not have lock files, you can use pre-made actions that resolve transitive dependencies for many ecosystems. For more information, see "[AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/using-the-dependency-submission-api#using-pre-made-actions)." +The dependency graph identifies indirect dependencies{% ifversion fpt or ghec %} only if they are defined in a lock file or have been submitted using the {% data variables.dependency-submission-api.name %}. For the most reliable graph, you should use lock files (or their equivalent) because they define exactly which versions of the direct and indirect dependencies you currently use. If you use lock files, you also ensure that all contributors to the repository are using the same versions, which will make it easier for you to test and debug code{% else %} from the lock files{% endif %}. If your ecosystem does not have lock files, you can use pre-made actions that resolve transitive dependencies for many ecosystems. For more information, see "[AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/using-the-dependency-submission-api#using-pre-made-actions)." For more information on how {% data variables.product.product_name %} helps you understand the dependencies in your environment, see "[AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-supply-chain-security)." diff --git a/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-automatic-dependency-submission-for-your-repository.md b/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-automatic-dependency-submission-for-your-repository.md index 02bb3383c5f2..3f11aadf2382 100644 --- a/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-automatic-dependency-submission-for-your-repository.md +++ b/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-automatic-dependency-submission-for-your-repository.md @@ -67,7 +67,7 @@ Once enabled, automatic dependency submission jobs will run on the self-hosted r * The self-hosted runners are unavailable. * There aren't any runner groups tagged with a `dependency-submission` label. ->[!NOTE] When using self-hosted runners, you need to add access to the Maven server settings file to allow the dependency submission workflows to connect to private registries. Dependencies from private registries will be included in the dependency tree in the next `pom.xml` update. For more information about the Maven server settings file, see [Security and Deployment Settings](https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#transitive-dependencies) in the Maven documentation. +>[!NOTE] When using self-hosted runners, you need to add access to the Maven server settings file to allow the dependency submission workflows to connect to private registries. Dependencies from private registries will be included in the dependency tree in the next `pom.xml` update. For more information about the Maven server settings file, see [Security and Deployment Settings](https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#transitive-dependencies) in the Maven documentation. ## Using {% data variables.product.company_short %}-hosted {% data variables.actions.hosted_runners %} for automatic dependency submission diff --git a/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review.md b/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review.md index ced05270835f..4ccb3dc539c6 100644 --- a/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review.md +++ b/content/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review.md @@ -54,7 +54,7 @@ Dependency review is available when dependency graph is enabled for the instance {% data reusables.dependency-review.org-level-enforcement %} -Here is a list of common configuration options. For more information, and a full list of options, see [Dependency Review](https://github.com/marketplace/actions/dependency-review) on the {% data variables.product.prodname_marketplace %}. +Here is a list of common configuration options. For more information, and a full list of options, see [Dependency Review](https://github.com/marketplace/actions/dependency-review) on the {% data variables.product.prodname_marketplace %}. | Option | Required | Usage | |------------------|-------------------------------|--------| @@ -74,7 +74,7 @@ Here is a list of common configuration options. For more information, and a ful {% ifversion dependency-review-action-licenses %} > [!TIP] -> The `allow-licenses` and `deny-licenses` options are mutually exclusive. +> The `allow-licenses` and `deny-licenses` options are mutually exclusive. ## Configuring the {% data variables.dependency-review.action_name %} diff --git a/content/code-security/supply-chain-security/understanding-your-software-supply-chain/exploring-the-dependencies-of-a-repository.md b/content/code-security/supply-chain-security/understanding-your-software-supply-chain/exploring-the-dependencies-of-a-repository.md index 4ae6c4b68d12..ebc468d18883 100644 --- a/content/code-security/supply-chain-security/understanding-your-software-supply-chain/exploring-the-dependencies-of-a-repository.md +++ b/content/code-security/supply-chain-security/understanding-your-software-supply-chain/exploring-the-dependencies-of-a-repository.md @@ -85,7 +85,7 @@ For public repositories, the dependents view shows how the repository is used by You may notice some repositories have a "Used by" section in the sidebar of the **Code** tab. Your repository will have a "Used by" section if: * The dependency graph is enabled for the repository (see the above section for more details). -* Your repository contains a package that is published on a [supported package ecosystem](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph#supported-package-ecosystems). +* Your repository contains a package that is published on a [supported package ecosystem](/code-security/supply-chain-security/understanding-your-software-supply-chain/dependency-graph-supported-package-ecosystems#supported-package-ecosystems). * Within the ecosystem, your package has a link to a _public_ repository where the source is stored. * More than 100 repositories depend on your package. diff --git a/content/code-security/supply-chain-security/understanding-your-software-supply-chain/using-the-dependency-submission-api.md b/content/code-security/supply-chain-security/understanding-your-software-supply-chain/using-the-dependency-submission-api.md index 0cffca354ddf..4ab565119d2f 100644 --- a/content/code-security/supply-chain-security/understanding-your-software-supply-chain/using-the-dependency-submission-api.md +++ b/content/code-security/supply-chain-security/understanding-your-software-supply-chain/using-the-dependency-submission-api.md @@ -46,7 +46,7 @@ Alternatively, you can write your own action to submit dependencies for your pro ### Generating a software bill of materials (SBOM) To generate an SBOM, you can use: -* The **{% data variables.product.prodname_dotcom %} UI**. For more information about how to export an SBOM for a repository using information from the dependency graph, see "[AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/exporting-a-software-bill-of-materials-for-your-repository)." +* The **{% data variables.product.prodname_dotcom %} UI**. For more information about how to export an SBOM for a repository using information from the dependency graph, see "[AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/exporting-a-software-bill-of-materials-for-your-repository)." * The **REST API**. For more information, see "[AUTOTITLE](/rest/dependency-graph/sboms)." * **{% data variables.product.prodname_actions %}**. The following actions will generate an SBOM for your repository and attach it as a workflow artifact which you can download and use in other applications. For more information about downloading workflow artifacts, see "[AUTOTITLE](/actions/managing-workflow-runs/downloading-workflow-artifacts)." diff --git a/content/codespaces/developing-in-a-codespace/creating-a-codespace-for-a-repository.md b/content/codespaces/developing-in-a-codespace/creating-a-codespace-for-a-repository.md index 6fe81f2b77e4..1c412d4b8e21 100644 --- a/content/codespaces/developing-in-a-codespace/creating-a-codespace-for-a-repository.md +++ b/content/codespaces/developing-in-a-codespace/creating-a-codespace-for-a-repository.md @@ -116,7 +116,7 @@ If you want to use Git hooks for your codespace, then you should set up hooks us The names of user-defined secrets may be displayed on the advanced options page when you create a codespace. This will happen if recommended secrets have been specified in the dev container configuration you have selected. For more information, see "[AUTOTITLE](/codespaces/setting-up-your-project-for-codespaces/configuring-dev-containers/specifying-recommended-secrets-for-a-repository)." -Screenshot of the "Create codespace" page with four recommended secrets highlighted with a dark orange outline. +Screenshot of the "Create codespace" page with four recommended secrets highlighted with a dark orange outline. Entering values for these development environment secrets, when you're prompted to do so, is recommended because it's likely your project will need values for these secrets. However, supplying values is not required for you to create a codespace. You can set these secrets within the codespace if you prefer. diff --git a/content/codespaces/developing-in-a-codespace/using-github-codespaces-in-your-jetbrains-ide.md b/content/codespaces/developing-in-a-codespace/using-github-codespaces-in-your-jetbrains-ide.md index fe2e290ba626..049141cd7875 100644 --- a/content/codespaces/developing-in-a-codespace/using-github-codespaces-in-your-jetbrains-ide.md +++ b/content/codespaces/developing-in-a-codespace/using-github-codespaces-in-your-jetbrains-ide.md @@ -80,7 +80,7 @@ The first time you use JetBrains Gateway for {% data variables.product.prodname_ 1. In the list of installed tools, click **Gateway**. 1. Under **Install More Providers** click the **Install** link for {% data variables.product.prodname_github_codespaces %}. - ![Screenshot of the "Welcome to JetBrains Gateway" page, with "{% data variables.product.prodname_github_codespaces %}" listed under "Install More Providers."](/assets/images/help/codespaces/jetbrains-gateway-initial-view.png) + ![Screenshot of the "Welcome to JetBrains Gateway" page, with "{% data variables.product.prodname_github_codespaces %}" listed under "Install More Providers."](/assets/images/help/codespaces/jetbrains-gateway-initial-view.png) 1. Click **Connect to Codespace**. diff --git a/content/codespaces/developing-in-a-codespace/using-github-codespaces-with-github-cli.md b/content/codespaces/developing-in-a-codespace/using-github-codespaces-with-github-cli.md index 845ea364d4c7..e2394863cdf6 100644 --- a/content/codespaces/developing-in-a-codespace/using-github-codespaces-with-github-cli.md +++ b/content/codespaces/developing-in-a-codespace/using-github-codespaces-with-github-cli.md @@ -19,7 +19,7 @@ redirect_from: {% data reusables.cli.about-cli %} For more information, see "[AUTOTITLE](/github-cli/github-cli/about-github-cli)." -You can work with {% data variables.product.prodname_github_codespaces %} in the {% data variables.product.prodname_cli %} to: +You can work with {% data variables.product.prodname_github_codespaces %} in the {% data variables.product.prodname_cli %} to: * [List all of your codespaces](#list-all-of-your-codespaces) * [Create a new codespace](#create-a-new-codespace) * [View details of a codespace](#view-details-of-a-codespace) diff --git a/content/codespaces/getting-started/quickstart.md b/content/codespaces/getting-started/quickstart.md index 27db602493c2..0c9d8d2dcb70 100644 --- a/content/codespaces/getting-started/quickstart.md +++ b/content/codespaces/getting-started/quickstart.md @@ -77,7 +77,7 @@ Now that you've made a few changes, you can use the integrated terminal or the s ![Screenshot of the "Source control" side bar showing the "Publish Branch" button.](/assets/images/help/codespaces/vscode-publish-branch-button.png) -1. In the "Repository Name" dropdown, type a name for your new repository, then select **Publish to {% data variables.product.prodname_dotcom %} private repository** or **Publish to {% data variables.product.prodname_dotcom %} public repository**. +1. In the "Repository Name" dropdown, type a name for your new repository, then select **Publish to {% data variables.product.prodname_dotcom %} private repository** or **Publish to {% data variables.product.prodname_dotcom %} public repository**. ![Screenshot of the repository name dropdown in {% data variables.product.prodname_vscode_shortname %}. Two options are shown, for publishing to a private or a public repository.](/assets/images/help/codespaces/choose-new-repository.png) diff --git a/content/codespaces/managing-codespaces-for-your-organization/index.md b/content/codespaces/managing-codespaces-for-your-organization/index.md index cc1c73e24cf3..32686e531035 100644 --- a/content/codespaces/managing-codespaces-for-your-organization/index.md +++ b/content/codespaces/managing-codespaces-for-your-organization/index.md @@ -2,7 +2,7 @@ title: Managing GitHub Codespaces for your organization allowTitleToDifferFromFilename: true shortTitle: Managing your organization -intro: 'You can manage and review how users in your organization can use {% data variables.product.prodname_github_codespaces %}.' +intro: 'You can manage and review how users in your organization can use {% data variables.product.prodname_github_codespaces %}.' versions: fpt: '*' ghec: '*' diff --git a/content/codespaces/reference/allowing-your-codespace-to-access-a-private-registry.md b/content/codespaces/reference/allowing-your-codespace-to-access-a-private-registry.md index 68d9eed38c7d..4ea9638621ad 100644 --- a/content/codespaces/reference/allowing-your-codespace-to-access-a-private-registry.md +++ b/content/codespaces/reference/allowing-your-codespace-to-access-a-private-registry.md @@ -92,7 +92,7 @@ Once you've added the secrets, you may need to stop and then start the codespace #### Accessing AWS Elastic Container Registry -To access AWS Elastic Container Registry (ECR), you can provide an AWS access key ID and secret key, and {% data variables.product.prodname_dotcom %} can retrieve an access token for you and log in on your behalf. +To access AWS Elastic Container Registry (ECR), you can provide an AWS access key ID and secret key, and {% data variables.product.prodname_dotcom %} can retrieve an access token for you and log in on your behalf. ```shell *_CONTAINER_REGISTRY_SERVER = diff --git a/content/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/introduction-to-dev-containers.md b/content/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/introduction-to-dev-containers.md index 30e3cfb199c9..bbed105a6d48 100644 --- a/content/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/introduction-to-dev-containers.md +++ b/content/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/introduction-to-dev-containers.md @@ -41,7 +41,7 @@ If you create a codespace from a repository without a `devcontainer.json` file, The `devcontainer.json` file is usually located in the `.devcontainer` directory of your repository. Alternatively, you can locate it directly in the root of the repository, in which case the file name must begin with a period: `.devcontainer.json`. -If you want to have a choice of dev container configurations in your repository, any alternatives to the `.devcontainer/devcontainer.json` (or `.devcontainer.json`) file must be located in their own subdirectory at the path `.devcontainer/SUBDIRECTORY/devcontainer.json`. For example, you could have a choice of two configurations: +If you want to have a choice of dev container configurations in your repository, any alternatives to the `.devcontainer/devcontainer.json` (or `.devcontainer.json`) file must be located in their own subdirectory at the path `.devcontainer/SUBDIRECTORY/devcontainer.json`. For example, you could have a choice of two configurations: * `.devcontainer/database-dev/devcontainer.json` * `.devcontainer/gui-dev/devcontainer.json` diff --git a/content/codespaces/setting-up-your-project-for-codespaces/configuring-dev-containers/specifying-recommended-secrets-for-a-repository.md b/content/codespaces/setting-up-your-project-for-codespaces/configuring-dev-containers/specifying-recommended-secrets-for-a-repository.md index dc1391d862f2..bfe553e51bed 100644 --- a/content/codespaces/setting-up-your-project-for-codespaces/configuring-dev-containers/specifying-recommended-secrets-for-a-repository.md +++ b/content/codespaces/setting-up-your-project-for-codespaces/configuring-dev-containers/specifying-recommended-secrets-for-a-repository.md @@ -22,7 +22,7 @@ After you specify recommended secrets, if people have not already created those Recommended secrets are listed at the bottom of the page. -Screenshot of the "Create codespace" page with four recommended secrets highlighted with a dark orange outline. +Screenshot of the "Create codespace" page with four recommended secrets highlighted with a dark orange outline. > [!NOTE] > The names of the recommended secrets are only listed on this page when the container configuration on the selected branch specifies these secrets. @@ -54,7 +54,7 @@ Alternatively, for development environment secrets that the owner of the reposit } ``` -1. Add a property within `secrets` for each secret you want to recommend. For example, change `NAME_OF_SECRET_1` and `NAME_OF_SECRET_2`, in the previous code example, to the names of the secrets that people should create in their personal settings for {% data variables.product.prodname_codespaces %}. +1. Add a property within `secrets` for each secret you want to recommend. For example, change `NAME_OF_SECRET_1` and `NAME_OF_SECRET_2`, in the previous code example, to the names of the secrets that people should create in their personal settings for {% data variables.product.prodname_codespaces %}. 1. Optionally, supply a description for each secret and a URL for more information about this secret. You can omit `description` and `documentationUrl`, as shown by `NAME_OF_SECRET_2` in the previous code example. diff --git a/content/codespaces/the-githubdev-web-based-editor.md b/content/codespaces/the-githubdev-web-based-editor.md index 734eb8c8d26d..5d5a675da3a8 100644 --- a/content/codespaces/the-githubdev-web-based-editor.md +++ b/content/codespaces/the-githubdev-web-based-editor.md @@ -51,7 +51,7 @@ Both {% data variables.codespaces.serverless %} and {% data variables.product.pr | **Cost** | Free. | Free monthly quota of usage for personal accounts. For information on pricing, see "[AUTOTITLE](/free-pro-team@latest/billing/managing-billing-for-your-products/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#about-github-codespaces-pricing)."| | **Availability** | Available to everyone on GitHub.com. | Available to everyone on GitHub.com. | | **Start up** | {% data variables.codespaces.serverless %} opens instantly with a key-press and you can start using it right away, without having to wait for additional configuration or installation. | When you create or resume a codespace, the codespace is assigned a VM and the container is configured based on the contents of a `devcontainer.json` file. This set up may take a few minutes to create the environment. See "[AUTOTITLE](/codespaces/developing-in-a-codespace/creating-a-codespace-for-a-repository)." | -| **Compute** | There is no associated compute, so you won’t be able to build and run your code or use the integrated terminal. | With {% data variables.product.prodname_github_codespaces %}, you get the power of a dedicated VM on which you can run and debug your application.| +| **Compute** | There is no associated compute, so you won’t be able to build and run your code or use the integrated terminal. | With {% data variables.product.prodname_github_codespaces %}, you get the power of a dedicated VM on which you can run and debug your application.| | **Terminal access** | None. | {% data variables.product.prodname_github_codespaces %} provides a common set of tools by default, meaning that you can use the Terminal exactly as you would in your local environment.| | **Extensions** | Only a subset of extensions that can run in the web will appear in the Extensions View and can be installed. See "[Using extensions](#using-extensions)."| With {% data variables.product.prodname_github_codespaces %}, you can use most extensions from the {% data variables.product.prodname_vscode_marketplace %}.| @@ -82,7 +82,7 @@ Because {% data variables.codespaces.serverless %} uses the GitHub Repositories ![Screenshot of the {% data variables.product.prodname_vscode_shortname %} Activity Bar with the source control button, labeled with a branch icon, highlighted with an orange outline.](/assets/images/help/codespaces/githubdotdev-source-control-activity-bar-button.png) -1. To stage your changes, click {% octicon "plus" aria-label="Stage changes" %} next to the file you've changed, or next to **Changes** if you've changed multiple files and you want to stage them all. +1. To stage your changes, click {% octicon "plus" aria-label="Stage changes" %} next to the file you've changed, or next to **Changes** if you've changed multiple files and you want to stage them all. ![Screenshot of the "Source control" side bar with the staging button (a plus sign), to the right of "Changes," highlighted with a dark orange outline.](/assets/images/help/codespaces/githubdotdev-codespaces-commit-stage.png) @@ -138,6 +138,6 @@ If you have issues opening {% data variables.codespaces.serverless %}, try the f ### Known limitations * The {% data variables.codespaces.serverless %} editor is currently supported in Chrome (and various other Chromium-based browsers), Edge, Firefox, and Safari. We recommend that you use the latest versions of these browsers. -* Some keybindings may not work, depending on the browser you are using. These keybinding limitations are documented in the "[Known limitations and adaptations](https://code.visualstudio.com/docs/remote/codespaces#_known-limitations-and-adaptations)" section of the {% data variables.product.prodname_vscode_shortname %} documentation. +* Some keybindings may not work, depending on the browser you are using. These keybinding limitations are documented in the [Known limitations and adaptations](https://code.visualstudio.com/docs/remote/codespaces#_known-limitations-and-adaptations) section of the {% data variables.product.prodname_vscode_shortname %} documentation. * `.` may not work to open {% data variables.codespaces.serverless %} according to your local keyboard layout. In that case, you can open any {% data variables.product.prodname_dotcom %} repository in {% data variables.codespaces.serverless %} by changing the URL from `github.com` to `github.dev`. * When intensively writing documentation or code in the web editor, you might encounter issues with pushing some commits. To resolve this, wait a few minutes for the API rate limit to reset. diff --git a/content/codespaces/troubleshooting/troubleshooting-port-forwarding-for-github-codespaces.md b/content/codespaces/troubleshooting/troubleshooting-port-forwarding-for-github-codespaces.md index 7f35875cf8c3..38d69e504476 100644 --- a/content/codespaces/troubleshooting/troubleshooting-port-forwarding-for-github-codespaces.md +++ b/content/codespaces/troubleshooting/troubleshooting-port-forwarding-for-github-codespaces.md @@ -12,7 +12,7 @@ redirect_from: - /codespaces/troubleshooting/troubleshooting-port-forwarding-for-codespaces --- -When an application running inside a codespace outputs a port to the console, {% data variables.product.prodname_github_codespaces %} detects the localhost URL pattern and automatically forwards the port. For more information, see "[AUTOTITLE](/codespaces/developing-in-a-codespace/forwarding-ports-in-your-codespace)." +When an application running inside a codespace outputs a port to the console, {% data variables.product.prodname_github_codespaces %} detects the localhost URL pattern and automatically forwards the port. For more information, see "[AUTOTITLE](/codespaces/developing-in-a-codespace/forwarding-ports-in-your-codespace)." If a port is not automatically forwarded, you can forward it manually. For more information, see "[AUTOTITLE](/codespaces/developing-in-a-codespace/forwarding-ports-in-your-codespace#forwarding-a-port)." diff --git a/content/communities/documenting-your-project-with-wikis/about-wikis.md b/content/communities/documenting-your-project-with-wikis/about-wikis.md index d8a0b4b71417..379180701c23 100644 --- a/content/communities/documenting-your-project-with-wikis/about-wikis.md +++ b/content/communities/documenting-your-project-with-wikis/about-wikis.md @@ -14,7 +14,7 @@ topics: - Community --- -Every repository on {% data variables.product.product_name %} comes equipped with a section for hosting documentation, called a wiki. You can use your repository's wiki to share long-form content about your project, such as how to use it, how you designed it, or its core principles. A README file quickly tells what your project can do, while you can use a wiki to provide additional documentation. For more information, see "[AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-readmes)." +Every repository on {% data variables.product.product_name %} comes equipped with a section for hosting documentation, called a wiki. You can use your repository's wiki to share long-form content about your project, such as how to use it, how you designed it, or its core principles. A README file quickly tells what your project can do, while you can use a wiki to provide additional documentation. For more information, see "[AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-readmes)." With wikis, you can write content just like everywhere else on {% data variables.product.prodname_dotcom %}. For more information, see "[AUTOTITLE](/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github)." We use [our open-source Markup library](https://github.com/github/markup) to convert different formats into HTML, so you can choose to write in Markdown or any other supported format. diff --git a/content/communities/maintaining-your-safety-on-github/unblocking-a-user-from-your-personal-account.md b/content/communities/maintaining-your-safety-on-github/unblocking-a-user-from-your-personal-account.md index 28b0a8c6f3cd..5cd897a57c44 100644 --- a/content/communities/maintaining-your-safety-on-github/unblocking-a-user-from-your-personal-account.md +++ b/content/communities/maintaining-your-safety-on-github/unblocking-a-user-from-your-personal-account.md @@ -27,7 +27,7 @@ You can unblock a user in your account settings or from the user's profile page. ## Unblocking a user from their profile page {% data reusables.profile.user_profile_page_navigation %} -1. In the left sidebar, below the user's profile information, click **Unblock or report user**. +1. In the left sidebar, below the user's profile information, click **Unblock or report user**. ![Screenshot of the sidebar of a user's profile page. A link, labeled "Unblock or report", is outlined in dark orange.](/assets/images/help/profile/profile-unblock-or-report-user.png) 1. Click **Unblock user**. diff --git a/content/contributing/setting-up-your-environment-to-work-on-github-docs/creating-a-local-environment.md b/content/contributing/setting-up-your-environment-to-work-on-github-docs/creating-a-local-environment.md index e0d915d71028..5b55b98a95ad 100644 --- a/content/contributing/setting-up-your-environment-to-work-on-github-docs/creating-a-local-environment.md +++ b/content/contributing/setting-up-your-environment-to-work-on-github-docs/creating-a-local-environment.md @@ -65,7 +65,7 @@ The [`src/bookmarklets`](https://github.com/github/docs/tree/main/src/bookmarkle ### Enabling different languages -By default, the local server does not run with all supported languages enabled. If you need to run a local server with a particular language, you can temporarily edit the `start` script in `package.json` and update the `ENABLED_LANGUAGES` variable. +By default, the local server does not run with all supported languages enabled. If you need to run a local server with a particular language, you can temporarily edit the `start` script in `package.json` and update the `ENABLED_LANGUAGES` variable. For example, to enable Japanese and Portuguese in addition to English, you can edit `package.json` and set `ENABLED_LANGUAGES='en,ja,pt'` in the `start` script. Then restart the server for the change to take effect. diff --git a/content/contributing/setting-up-your-environment-to-work-on-github-docs/troubleshooting-your-environment.md b/content/contributing/setting-up-your-environment-to-work-on-github-docs/troubleshooting-your-environment.md index 26ef05cfa227..33f5591063d0 100644 --- a/content/contributing/setting-up-your-environment-to-work-on-github-docs/troubleshooting-your-environment.md +++ b/content/contributing/setting-up-your-environment-to-work-on-github-docs/troubleshooting-your-environment.md @@ -22,7 +22,7 @@ git commit --allow-empty -m 'empty commit to redeploy staging' git push ``` -## Troubleshooting stalled or stuck CI +## Troubleshooting stalled or stuck CI If your tests are stuck on "In progress" or "Pending" for more than an hour, use the commands below to rerun CI by pushing an empty commit on the command line. diff --git a/content/contributing/setting-up-your-environment-to-work-on-github-docs/working-on-github-docs-in-a-codespace.md b/content/contributing/setting-up-your-environment-to-work-on-github-docs/working-on-github-docs-in-a-codespace.md index 86aac328217d..599d2fef5b25 100644 --- a/content/contributing/setting-up-your-environment-to-work-on-github-docs/working-on-github-docs-in-a-codespace.md +++ b/content/contributing/setting-up-your-environment-to-work-on-github-docs/working-on-github-docs-in-a-codespace.md @@ -16,7 +16,7 @@ For more information, see "[AUTOTITLE](/free-pro-team@latest/codespaces/overview The following steps assume you have {% data variables.product.prodname_github_codespaces %} set up to edit files using {% data variables.product.prodname_vscode %} for Web. The steps are very similar if you have set a different editor. For more information, see "[AUTOTITLE](/free-pro-team@latest/codespaces/customizing-your-codespace/setting-your-default-editor-for-codespaces)." -1. Navigate to the open source repository for {% data variables.product.prodname_docs %}, [`github/docs`](https://github.com/github/docs). +1. Navigate to the open source repository for {% data variables.product.prodname_docs %}, [`github/docs`](https://github.com/github/docs). 1. If you're an open source contributor, create a fork of the repository, then follow the rest of the steps in this procedure from your fork. For more information, see "[AUTOTITLE](/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo)." 1. Create a branch to work on. For more information, see "[AUTOTITLE](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository)." 1. On the main page of the repository, click **{% octicon "code" aria-hidden="true" %} Code**, then click **Create codespace on BRANCH-NAME**. diff --git a/content/contributing/style-guide-and-content-model/style-guide.md b/content/contributing/style-guide-and-content-model/style-guide.md index 3f2520b5bcc9..b70c30597319 100644 --- a/content/contributing/style-guide-and-content-model/style-guide.md +++ b/content/contributing/style-guide-and-content-model/style-guide.md @@ -541,7 +541,7 @@ Below are some usage highlights for how we present keyboard shortcuts in our doc * The basic syntax is to show keys with `+` between key combinations, without any spaces. * **Use:** `Command+B`, which is rendered as Command+B. - * **Avoid:** `Command + B` or `Command + B` which are rendered as Command + B or Command + B. + * **Avoid:** `Command + B` or `Command + B` which are rendered as Command + B or Command + B. * Always capitalize letter keys for general references and keyboard shortcuts. * **Use:** Command+B diff --git a/content/contributing/writing-for-github-docs/content-design-principles.md b/content/contributing/writing-for-github-docs/content-design-principles.md index 7b4490dca20b..294040d48489 100644 --- a/content/contributing/writing-for-github-docs/content-design-principles.md +++ b/content/contributing/writing-for-github-docs/content-design-principles.md @@ -19,7 +19,7 @@ We create product documentation that helps, teaches, and engages everyone who us We provide a style guide and content models as building blocks and guidelines for anyone to design and create documentation. * Our style guide and content models apply to a range of scenarios. -* Decisions are based on what is best for people using our docs, not simply what is right or wrong according to grammar or style rules. We are flexible and open to change while maintaining consistency. +* Decisions are based on what is best for people using our docs, not simply what is right or wrong according to grammar or style rules. We are flexible and open to change while maintaining consistency. * We focus our attention on documenting high-impact, high-value scenarios rather than attempting to comprehensively cover every possible use case for the many {% data variables.product.prodname_dotcom %} products and features. * Our highest priorities are clarity, meaning, correctness, and consistency. * When making a style or structure decision, we consider what people are trying to do with the information and how our content can best support their goals. diff --git a/content/contributing/writing-for-github-docs/templates.md b/content/contributing/writing-for-github-docs/templates.md index ae73e2435274..5d314f0ee3e1 100644 --- a/content/contributing/writing-for-github-docs/templates.md +++ b/content/contributing/writing-for-github-docs/templates.md @@ -342,9 +342,9 @@ The language guide introduction should include the following in a short paragrap ## Starting with the workflow template {% comment %} -Language guides typically walk through and build upon a workflow template template. If that format doesn't work, you can include a boilerplate workflow. +Language guides typically walk through and build upon a workflow template. If that format doesn't work, you can include a boilerplate workflow. - Link to the GitHub Actions CI workflow template as the boilerplate reference code and then walk through and build on that code in this guide - https://github.com/actions/starter-workflows/tree/master/ci -- Provide instructions for adding the workflow template template to a repository. +- Provide instructions for adding the workflow template to a repository. - Include the starter template workflow code. {% endcomment %} diff --git a/content/contributing/writing-for-github-docs/using-markdown-and-liquid-in-github-docs.md b/content/contributing/writing-for-github-docs/using-markdown-and-liquid-in-github-docs.md index bd5ac1596757..3a5f58fc1f18 100644 --- a/content/contributing/writing-for-github-docs/using-markdown-and-liquid-in-github-docs.md +++ b/content/contributing/writing-for-github-docs/using-markdown-and-liquid-in-github-docs.md @@ -448,7 +448,7 @@ Sometimes you want to link to a Dotcom-only article in Enterprise content and yo "[GitHub's Terms of Service](/free-pro-team@latest/github/site-policy/github-terms-of-service)" ``` -Sometimes the canonical home of content moves outside the docs site. None of the links included in [`src/redirects/lib/external-sites.json`](https://github.com/github/docs/blob/main/src/redirects/lib/external-sites.json) get rewritten. See [`contributing/redirects.md`](https://github.com/github/docs/blob/main/contributing/redirects.md) for more info about this type of redirect. +Sometimes the canonical home of content moves outside the docs site. None of the links included in [`src/redirects/lib/external-sites.json`](https://github.com/github/docs/blob/main/src/redirects/lib/external-sites.json) get rewritten. See [`contributing/redirects.md`](https://github.com/github/docs/blob/main/contributing/redirects.md) for more info about this type of redirect. ### Legacy filepaths and redirects for links diff --git a/content/contributing/writing-for-github-docs/using-yaml-frontmatter.md b/content/contributing/writing-for-github-docs/using-yaml-frontmatter.md index b8eebb7c5820..b2f16152fd6a 100644 --- a/content/contributing/writing-for-github-docs/using-yaml-frontmatter.md +++ b/content/contributing/writing-for-github-docs/using-yaml-frontmatter.md @@ -305,7 +305,7 @@ Index pages are the table of contents files for the Docs site. Every product, ca The homepage is the main Table of Contents file for the docs site. The homepage must have a complete list of `children`, like every [Index page](#index-pages) but must also specify the `childGroups` frontmatter property that will be highlighted in the main content area. -`childGroups` is an array of mappings containing a `name` for the group, an optional `icon` for the group, and an array of `children`. The `children` in the array must be present in the `children` frontmatter property. +`childGroups` is an array of mappings containing a `name` for the group, an optional `icon` for the group, and an array of `children`. The `children` in the array must be present in the `children` frontmatter property. ## Creating new product guides pages diff --git a/content/copilot/building-copilot-extensions/creating-a-copilot-extension/configuring-your-github-app-for-your-copilot-extension.md b/content/copilot/building-copilot-extensions/creating-a-copilot-extension/configuring-your-github-app-for-your-copilot-extension.md index 287e8d08fa57..a5d12ec40c3b 100644 --- a/content/copilot/building-copilot-extensions/creating-a-copilot-extension/configuring-your-github-app-for-your-copilot-extension.md +++ b/content/copilot/building-copilot-extensions/creating-a-copilot-extension/configuring-your-github-app-for-your-copilot-extension.md @@ -28,11 +28,9 @@ Once you have configured your server and created your {% data variables.product. {% data reusables.apps.settings-step %} {% data reusables.apps.enterprise-apps-steps %} 1. To the right of the {% data variables.product.prodname_github_app %} you want to configure for your {% data variables.product.prodname_copilot_extension_short %}, click **Edit**. -1. In the "Identifying and authorizing users" section, under "Callback URL", enter your server's hostname, then click **Save changes**. +1. In the "Identifying and authorizing users" section, under "Callback URL", enter your callback endpoint URL, then click **Save changes**. - > [!NOTE] This step is only required if you intend to request user authorization (OAuth) during installation. - > - > Your server's hostname is the forwarding endpoint that you copied from your terminal when you configured your server. For more information, see "[AUTOTITLE](/copilot/building-copilot-extensions/creating-a-copilot-extension/configuring-your-server-to-deploy-your-copilot-agent)." + > [!NOTE] Your server's hostname is the forwarding endpoint that you copied from your terminal when you configured your server. See "[AUTOTITLE](/copilot/building-copilot-extensions/creating-a-copilot-extension/configuring-your-server-to-deploy-your-copilot-agent)." > > If you are using an ephemeral domain in ngrok, you will need to update this URL every time you restart your ngrok server. @@ -62,11 +60,9 @@ Once you have configured your server and created your {% data variables.product. {% data reusables.apps.settings-step %} {% data reusables.apps.enterprise-apps-steps %} 1. To the right of the {% data variables.product.prodname_github_app %} you want to configure for your {% data variables.product.prodname_copilot_extension_short %}, click **Edit**. -1. In the "Identifying and authorizing users" section, under "Callback URL", enter your server's hostname, then click **Save changes**. +1. In the "Identifying and authorizing users" section, under "Callback URL", enter your callback endpoint URL, then click **Save changes**. - > [!NOTE] This step is only required if you intend to request user authorization (OAuth) during installation. - > - > Your server's hostname is the forwarding endpoint that you copied from your terminal when you configured your server. For more information, see "[AUTOTITLE](/copilot/building-copilot-extensions/creating-a-copilot-extension/configuring-your-server-to-deploy-your-copilot-agent)." + > [!NOTE] Your server's hostname is the forwarding endpoint that you copied from your terminal when you configured your server. See "[AUTOTITLE](/copilot/building-copilot-extensions/creating-a-copilot-extension/configuring-your-server-to-deploy-your-copilot-agent)." > > If you are using an ephemeral domain in ngrok, you will need to update this URL every time you restart your ngrok server. diff --git a/content/copilot/building-copilot-extensions/setting-up-copilot-extensions.md b/content/copilot/building-copilot-extensions/setting-up-copilot-extensions.md index c2271164b320..bac3cb166ba2 100644 --- a/content/copilot/building-copilot-extensions/setting-up-copilot-extensions.md +++ b/content/copilot/building-copilot-extensions/setting-up-copilot-extensions.md @@ -75,7 +75,7 @@ To learn how to use your {% data variables.product.prodname_copilot_extension_sh {% data variables.product.prodname_copilot_skillsets %} contain the custom code for your {% data variables.product.prodname_copilot_extension_short %}, and integrate with a {% data variables.product.prodname_github_app %} to form the {% data variables.product.prodname_copilot_extension_short %} itself. -Unlike {% data variables.product.prodname_copilot_agents_short %}, {% data variables.product.prodname_copilot_skillsets_short %} handle the logic behind prompt crafting, function evaluation, and response generation, making them an ideal choice for developers seeking quick and effective integrations with minimal effort. For more information, see "[AUTOTITLE](/copilot/building-copilot-extensions/building-a-copilot-skillset-for-your-copilot-extension/about-copilot-skillsets)." +Unlike {% data variables.product.prodname_copilot_agents_short %}, {% data variables.product.prodname_copilot_skillsets_short %} handle the logic behind prompt crafting, function evaluation, and response generation, making them an ideal choice for developers seeking quick and effective integrations with minimal effort. For more information, see "[AUTOTITLE](/copilot/building-copilot-extensions/building-a-copilot-skillset-for-your-copilot-extension/about-copilot-skillsets)." ## 2. Build a {% data variables.product.prodname_copilot_skillset_short %} diff --git a/content/copilot/managing-copilot/configure-personal-settings/configuring-github-copilot-in-your-environment.md b/content/copilot/managing-copilot/configure-personal-settings/configuring-github-copilot-in-your-environment.md index 310edd003a6e..9c0f1910da00 100644 --- a/content/copilot/managing-copilot/configure-personal-settings/configuring-github-copilot-in-your-environment.md +++ b/content/copilot/managing-copilot/configure-personal-settings/configuring-github-copilot-in-your-environment.md @@ -426,7 +426,7 @@ You can use the default keyboard shortcuts for inline suggestions in Xcode when If you don't want to use the default keyboard shortcuts for {% data variables.product.prodname_copilot %}, you can rebind the shortcuts in the Key Bindings editor and use your preferred keyboard shortcuts. -If you want to use something besides Tab to accept the first line of a suggestion, you need to disable the "Accept suggestions with Tab" option in the advanced settings in the {% data variables.product.prodname_copilot %} for Xcode application. Additionally, we currently only support the Option key for the "View full suggestion" action. +If you want to use something besides Tab to accept the first line of a suggestion, you need to disable the "Accept suggestions with Tab" option in the advanced settings in the {% data variables.product.prodname_copilot %} for Xcode application. Additionally, we currently only support the Option key for the "View full suggestion" action. 1. In the Xcode menu bar, click **Settings**. 1. Click **Key Bindings** and search for "{% data variables.product.prodname_copilot_short %}" to find the commands you want to rebind. diff --git a/content/copilot/managing-copilot/configure-personal-settings/installing-the-github-copilot-extension-in-your-environment.md b/content/copilot/managing-copilot/configure-personal-settings/installing-the-github-copilot-extension-in-your-environment.md index 781a2991f774..e8c99ed2a800 100644 --- a/content/copilot/managing-copilot/configure-personal-settings/installing-the-github-copilot-extension-in-your-environment.md +++ b/content/copilot/managing-copilot/configure-personal-settings/installing-the-github-copilot-extension-in-your-environment.md @@ -174,7 +174,7 @@ To see instructions for other popular coding environments, use the tool switcher 1. Install {% data variables.product.prodname_vscode %}. See the [{% data variables.product.prodname_vscode %} download page](https://code.visualstudio.com/Download). -1. Install the [{% data variables.product.prodname_copilot %} extension](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) in {% data variables.product.prodname_vscode %}. For detailed instructions, see "[Set up {% data variables.product.prodname_copilot %} in {% data variables.product.prodname_vscode %}](https://code.visualstudio.com/docs/copilot/setup)" in the {% data variables.product.prodname_vscode %} documentation. +1. Install the [{% data variables.product.prodname_copilot %} extension](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) in {% data variables.product.prodname_vscode %}. For detailed instructions, see "[Set up {% data variables.product.prodname_copilot %} in {% data variables.product.prodname_vscode %}](https://code.visualstudio.com/docs/copilot/setup)" in the {% data variables.product.prodname_vscode %} documentation. {% endvscode %} diff --git a/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/granting-access-to-copilot-for-members-of-your-organization.md b/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/granting-access-to-copilot-for-members-of-your-organization.md index 77fab3ecd09b..0e0568f5f72e 100644 --- a/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/granting-access-to-copilot-for-members-of-your-organization.md +++ b/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/granting-access-to-copilot-for-members-of-your-organization.md @@ -39,7 +39,7 @@ Billing for {% data variables.product.prodname_copilot %} starts when you grant {% ifversion ghec %} -> [!NOTE] You can automatically enable access for every member of a group in your identity provider (IdP) by synchronizing that group with a {% data variables.product.prodname_dotcom %} team, then giving that team access to {% data variables.product.prodname_copilot %}. For more information, see "[AUTOTITLE](/organizations/organizing-members-into-teams/synchronizing-a-team-with-an-identity-provider-group)." +> [!NOTE] You can automatically enable access for every member of a group in your identity provider (IdP) by synchronizing that group with a {% data variables.product.prodname_dotcom %} team, then giving that team access to {% data variables.product.prodname_copilot %}. For more information, see "[AUTOTITLE](/organizations/organizing-members-into-teams/synchronizing-a-team-with-an-identity-provider-group)." {% endif %} diff --git a/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/managing-requests-for-copilot-business-in-your-organization.md b/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/managing-requests-for-copilot-business-in-your-organization.md index a15c1cc3f622..6c1a122f76e8 100644 --- a/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/managing-requests-for-copilot-business-in-your-organization.md +++ b/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/managing-requests-for-copilot-business-in-your-organization.md @@ -19,7 +19,7 @@ If your organization is owned by an enterprise, before you can approve a request {% data reusables.profile.access_org %} {% data reusables.organizations.org-list %} -1. In the "Access" section of the sidebar, click **{% octicon "bell" aria-label="The notifications bell" %} Requests from members**. +1. In the "Access" section of the sidebar, click **{% octicon "bell" aria-hidden="true" %} Requests from members**. 1. To accept the request and grant the member access to {% data variables.product.prodname_copilot_for_business %}, click **Buy {% data variables.product.prodname_copilot_business_short %}**. All requests for {% data variables.product.prodname_copilot_for_business %} are grouped together under "{% data variables.product.prodname_copilot_business_short %}." diff --git a/content/copilot/using-github-copilot/asking-github-copilot-questions-in-your-ide.md b/content/copilot/using-github-copilot/asking-github-copilot-questions-in-your-ide.md index 93fe46f10cca..942faaa5a291 100644 --- a/content/copilot/using-github-copilot/asking-github-copilot-questions-in-your-ide.md +++ b/content/copilot/using-github-copilot/asking-github-copilot-questions-in-your-ide.md @@ -62,7 +62,7 @@ Chat participants include: * `@terminal`: Has context about the {% data variables.product.prodname_vscode %} terminal shell and its contents. Use `@terminal` when you want help creating or debugging terminal commands. * `@azure`: Has context about Azure services and how to use, deploy and manage them. Use `@azure` when you want help with Azure. The `@azure` chat participant is currently in {% data variables.release-phases.public_preview %} and is subject to change. {% ifversion ghec %} -* `@github`: Allows you to use {% data variables.product.prodname_dotcom %}-specific {% data variables.product.prodname_copilot_short %} skills. See "[Using {% data variables.product.prodname_dotcom %} skills for {% data variables.product.prodname_copilot_short %}](#using-github-skills-for-copilot)." +* `@github`: Allows you to use {% data variables.product.prodname_dotcom %}-specific {% data variables.product.prodname_copilot_short %} skills. See "[Using {% data variables.product.prodname_dotcom %} skills for {% data variables.product.prodname_copilot_short %}](#using-github-skills-for-copilot)." {% endif %} In addition to the built-in {% data variables.product.prodname_vscode %} chat participants, you can also install {% data variables.product.prodname_copilot_extensions_short %} that provide chat participants. You can install these extensions from [{% data variables.product.prodname_marketplace %}](https://github.com/marketplace?type=apps&copilot_app=true) and from [{% data variables.product.prodname_vscode_marketplace %}](https://marketplace.visualstudio.com/search?target=VSCode&category=Chat&sortBy=Installs). For information about extensions from {% data variables.product.prodname_marketplace %} that provide chat participants, see "[AUTOTITLE](/copilot/github-copilot-chat/github-copilot-extensions/about-github-copilot-extensions)." @@ -406,7 +406,7 @@ By default, {% data variables.product.prodname_copilot_chat_short %} will refere * **Built-in requests**. In addition to submitting prompts through the chat window, you can submit built-in requests by right clicking in a file, selecting **{% data variables.product.prodname_copilot %}**, then selecting one of the options. * **Inline**. You can submit a chat prompt inline, and scope it to a highlighted code block or your current file. - * To start an inline chat, right click on a code block or anywhere in your current file, hover over **{% data variables.product.prodname_copilot %}**, then select **{% octicon "plus" aria-label="plus" %} {% data variables.product.prodname_copilot_short %}: Inline Chat**, or enter Ctrl+Shift+I. + * To start an inline chat, right click on a code block or anywhere in your current file, hover over **{% data variables.product.prodname_copilot %}**, then select **{% octicon "plus" aria-hidden="true" %} {% data variables.product.prodname_copilot_short %}: Inline Chat**, or enter Ctrl+Shift+I. ## Sharing feedback diff --git a/content/copilot/using-github-copilot/example-use-cases/writing-tests-with-github-copilot.md b/content/copilot/using-github-copilot/example-use-cases/writing-tests-with-github-copilot.md index 0765862adf71..a7cd2ca04a69 100644 --- a/content/copilot/using-github-copilot/example-use-cases/writing-tests-with-github-copilot.md +++ b/content/copilot/using-github-copilot/example-use-cases/writing-tests-with-github-copilot.md @@ -112,7 +112,7 @@ The test suite generated by {% data variables.product.prodname_copilot_short %} Once {% data variables.product.prodname_copilot_short %} has generated the test suite to your satisfaction, add the code to a new file `test_bank_account.py`. You can ask it how to run the tests. -**Prompt:** _"How do I run these unit tests in Python using the unittest framework?"_ +**Prompt:** _"How do I run these unit tests in Python using the unittest framework?"_ {% data variables.product.prodname_copilot_short %} will give you the following bash command. diff --git a/content/copilot/using-github-copilot/getting-code-suggestions-in-your-ide-with-github-copilot.md b/content/copilot/using-github-copilot/getting-code-suggestions-in-your-ide-with-github-copilot.md index 90b992745964..8d00328da7de 100644 --- a/content/copilot/using-github-copilot/getting-code-suggestions-in-your-ide-with-github-copilot.md +++ b/content/copilot/using-github-copilot/getting-code-suggestions-in-your-ide-with-github-copilot.md @@ -195,7 +195,7 @@ The examples in this guide use JavaScript, however other languages will work sim ## Prerequisites -* **Subscription to {% data variables.product.prodname_copilot_short %}**. To use {% data variables.product.prodname_copilot %} in {% data variables.product.prodname_vscode %}, you must have an active {% data variables.product.prodname_copilot %} subscription. {% data reusables.copilot.subscription-prerequisite %} +* **Subscription to {% data variables.product.prodname_copilot_short %}**. To use {% data variables.product.prodname_copilot %} in {% data variables.product.prodname_vscode %}, you must have an active {% data variables.product.prodname_copilot %} subscription. {% data reusables.copilot.subscription-prerequisite %} * **{% data variables.product.prodname_vscode %}**. To use {% data variables.product.prodname_copilot %} in {% data variables.product.prodname_vscode %}, you must have {% data variables.product.prodname_vscode %} installed. For more information, see the [{% data variables.product.prodname_vscode %} download page](https://code.visualstudio.com/Download). diff --git a/content/copilot/using-github-copilot/prompt-engineering-for-github-copilot.md b/content/copilot/using-github-copilot/prompt-engineering-for-github-copilot.md index 18e4753d571d..c3ffebb2196c 100644 --- a/content/copilot/using-github-copilot/prompt-engineering-for-github-copilot.md +++ b/content/copilot/using-github-copilot/prompt-engineering-for-github-copilot.md @@ -121,5 +121,5 @@ Similarly, if you aren't getting the responses you want when you use {% data var * [How to use GitHub Copilot: Prompts, tips, and use cases](https://github.blog/2023-06-20-how-to-write-better-prompts-for-github-copilot/) in the {% data variables.product.company_short %} blog * [Using GitHub Copilot in your IDE: Tips, tricks, and best practices](https://github.blog/2024-03-25-how-to-use-github-copilot-in-your-ide-tips-tricks-and-best-practices/) in the {% data variables.product.company_short %} blog -* [A developer’s guide to prompt engineering and LLMs](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/) in the {% data variables.product.company_short %} blog -* [Prompting GitHub Copilot Chat to become your personal AI assistant for accessibility](https://github.blog/2023-10-09-prompting-github-copilot-chat-to-become-your-personal-ai-assistant-for-accessibility/) in the {% data variables.product.company_short %} blog +* [A developer’s guide to prompt engineering and LLMs](https://github.blog/2023-07-17-prompt-engineering-guide-generative-ai-llms/) in the {% data variables.product.company_short %} blog +* [Prompting GitHub Copilot Chat to become your personal AI assistant for accessibility](https://github.blog/2023-10-09-prompting-github-copilot-chat-to-become-your-personal-ai-assistant-for-accessibility/) in the {% data variables.product.company_short %} blog diff --git a/content/desktop/adding-and-cloning-repositories/cloning-a-repository-from-github-to-github-desktop.md b/content/desktop/adding-and-cloning-repositories/cloning-a-repository-from-github-to-github-desktop.md index 5209b00830b2..ac614bb4d417 100644 --- a/content/desktop/adding-and-cloning-repositories/cloning-a-repository-from-github-to-github-desktop.md +++ b/content/desktop/adding-and-cloning-repositories/cloning-a-repository-from-github-to-github-desktop.md @@ -11,7 +11,7 @@ shortTitle: Clone a GitHub repo --- > [!TIP] -> You also can use {% data variables.product.prodname_desktop %} to clone repositories that exist on {% data variables.product.prodname_dotcom %}. For more information, see "[AUTOTITLE](/desktop/adding-and-cloning-repositories/cloning-and-forking-repositories-from-github-desktop)." +> You also can use {% data variables.product.prodname_desktop %} to clone repositories that exist on {% data variables.product.prodname_dotcom %}. For more information, see "[AUTOTITLE](/desktop/adding-and-cloning-repositories/cloning-and-forking-repositories-from-github-desktop)." 1. Sign in to {% data variables.product.github %} and {% data variables.product.prodname_desktop %} before you start to clone. {% data reusables.repositories.navigate-to-repo %} diff --git a/content/desktop/installing-and-authenticating-to-github-desktop/updating-github-desktop.md b/content/desktop/installing-and-authenticating-to-github-desktop/updating-github-desktop.md index 92a62d6a6015..a69f4d9b928c 100644 --- a/content/desktop/installing-and-authenticating-to-github-desktop/updating-github-desktop.md +++ b/content/desktop/installing-and-authenticating-to-github-desktop/updating-github-desktop.md @@ -33,7 +33,7 @@ If you encounter a crash when attempting to launch {% data variables.product.pro 1. Drag the {% data variables.product.prodname_desktop %} application from your "Downloads" folder to the "Applications" folder. 1. Approve the dialog asking if you want to replace the existing application. 1. Launch {% data variables.product.prodname_desktop %}. -1. Approve the prompt stating that that application was downloaded from the internet. +1. Approve the prompt stating that application was downloaded from the internet. {% endmac %} diff --git a/content/desktop/making-changes-in-a-branch/committing-and-reviewing-changes-to-your-project-in-github-desktop.md b/content/desktop/making-changes-in-a-branch/committing-and-reviewing-changes-to-your-project-in-github-desktop.md index d513eac88a99..4d943b2a5e0c 100644 --- a/content/desktop/making-changes-in-a-branch/committing-and-reviewing-changes-to-your-project-in-github-desktop.md +++ b/content/desktop/making-changes-in-a-branch/committing-and-reviewing-changes-to-your-project-in-github-desktop.md @@ -18,7 +18,7 @@ shortTitle: Commit & review changes {% ifversion repo-rules %} -Repository administrators can enable rulesets for a branch to enforce specific conventions when committing. For example, a ruleset can require a commit to be signed, or for an issue number to be referenced at the start of a commit message. {% data variables.product.prodname_desktop %} will display a warning and prevent committing if a commit does not follow the rulesets. For more information, see "[AUTOTITLE](/enterprise-cloud@latest/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/about-rulesets)." +Repository administrators can enable rulesets for a branch to enforce specific conventions when committing. For example, a ruleset can require a commit to be signed, or for an issue number to be referenced at the start of a commit message. {% data variables.product.prodname_desktop %} will display a warning and prevent committing if a commit does not follow the rulesets. For more information, see "[AUTOTITLE](/enterprise-cloud@latest/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/about-rulesets)." {% endif %} @@ -34,7 +34,7 @@ Repository administrators can enable rulesets for a branch to enforce specific c You can change the way diffs are displayed in {% data variables.product.prodname_desktop %} to suit your reviewing needs. To change how you view diffs, in the top-right corner of the diff view, click {% octicon "gear" aria-label="The Gear icon" %}. -* To change how the entire diff is displayed, under "Diff display", select **Unified** or **Split**. The Unified view shows changes linearly, while the Split view shows old content on the left side and new content on the right side. +* To change how the entire diff is displayed, under "Diff display", select **Unified** or **Split**. The Unified view shows changes linearly, while the Split view shows old content on the left side and new content on the right side. * To hide whitespace changes so you can focus on more substantive changes, select **Hide Whitespace Changes**. ![Screenshot of the diff view of a file. A gear icon is outlined in orange and expanded to display "Whitespace" and "Diff display" settings.](/assets/images/help/desktop/diff-selection.png) diff --git a/content/desktop/managing-commits/reordering-commits-in-github-desktop.md b/content/desktop/managing-commits/reordering-commits-in-github-desktop.md index 00331d3f0331..b6ef51ae80ad 100644 --- a/content/desktop/managing-commits/reordering-commits-in-github-desktop.md +++ b/content/desktop/managing-commits/reordering-commits-in-github-desktop.md @@ -31,7 +31,7 @@ While the application reorders the commits, a **Reorder in process** dialog indi When you reorder commits, you may see one of the following notifications or error messages. -* A notification states that the requested change to the branch will require a force push to update the remote branch. This is shown when the commits that you reordered were previously pushed to the remote branch. Force pushing alters the commit history of the branch and will affect other collaborators who are working in that branch. Select **Begin reorder** to start the reorder, and then click **Force push origin** to push your changes. +* A notification states that the requested change to the branch will require a force push to update the remote branch. This is shown when the commits that you reordered were previously pushed to the remote branch. Force pushing alters the commit history of the branch and will affect other collaborators who are working in that branch. Select **Begin reorder** to start the reorder, and then click **Force push origin** to push your changes. * An error states that the reorder failed because there is a merge commit among the reordered commits. * A notification is shown indicating that there are uncommitted changes present on your current branch. Select **Stash Changes and Continue** to store the changes and proceed, or select **Close** to dismiss the message and commit the changes. When there are no longer any uncommitted changes, you can reorder your commits. * A message states that there are merge conflicts that you must resolve before the application can continue reordering commits on your branch. diff --git a/content/desktop/managing-commits/squashing-commits-in-github-desktop.md b/content/desktop/managing-commits/squashing-commits-in-github-desktop.md index ed5145645afa..a59188c55cb0 100644 --- a/content/desktop/managing-commits/squashing-commits-in-github-desktop.md +++ b/content/desktop/managing-commits/squashing-commits-in-github-desktop.md @@ -41,7 +41,7 @@ Squashing allows you to combine multiple commits in your branch's history into a When you squash commits, you may see one of the following notifications or error messages. -* A notification states that the requested change to the branch will require a force push to update the remote branch. Force pushing alters the commit history of the branch and will affect other collaborators who are working in that branch. Select **Begin Squash** to start the squash, and then click **Force push origin** to push your changes. +* A notification states that the requested change to the branch will require a force push to update the remote branch. Force pushing alters the commit history of the branch and will affect other collaborators who are working in that branch. Select **Begin Squash** to start the squash, and then click **Force push origin** to push your changes. * An error states that the squash failed because there is a merge commit among the squashed commits. * A notification is shown indicating that there are uncommitted changes present on your current branch. Select **Stash Changes and Continue** to store the changes and proceed, or select **Close** to dismiss the message and commit the changes. When there are no longer any uncommitted changes you can squash your commits. diff --git a/content/desktop/working-with-your-remote-repository-on-github-or-github-enterprise/viewing-a-pull-request-in-github-desktop.md b/content/desktop/working-with-your-remote-repository-on-github-or-github-enterprise/viewing-a-pull-request-in-github-desktop.md index 5b1756f5feb3..509b21dd8f6f 100644 --- a/content/desktop/working-with-your-remote-repository-on-github-or-github-enterprise/viewing-a-pull-request-in-github-desktop.md +++ b/content/desktop/working-with-your-remote-repository-on-github-or-github-enterprise/viewing-a-pull-request-in-github-desktop.md @@ -39,7 +39,7 @@ You cannot comment on a pull request from {% data variables.product.prodname_des {% data reusables.repositories.sidebar-pr %} 1. In the list of pull requests, click the pull request that you would like to open in {% data variables.product.prodname_desktop %}. -1. To the right of the title of the pull request, click **{% octicon "code" aria-label="" %} Code**, then, on the **Local** tab, click **Checkout with GitHub Desktop**. +1. To the right of the title of the pull request, click **{% octicon "code" aria-hidden="true" %} Code**, then, on the **Local** tab, click **Checkout with GitHub Desktop**. ![Screenshot of a pull request on GitHub. The "Code" dropdown menu is expanded, and a button, labeled "Checkout with GitHub Desktop" is outlined in orange.](/assets/images/help/desktop/open-pr-in-desktop-button.png) diff --git a/content/discussions/managing-discussions-for-your-community/creating-discussion-category-forms.md b/content/discussions/managing-discussions-for-your-community/creating-discussion-category-forms.md index b83fd8d9b11e..3f96632f0de8 100644 --- a/content/discussions/managing-discussions-for-your-community/creating-discussion-category-forms.md +++ b/content/discussions/managing-discussions-for-your-community/creating-discussion-category-forms.md @@ -12,7 +12,7 @@ You can encourage community members to include specific, structured information {% data reusables.actions.learn-more-about-yaml %} -To use a discussion category form in your repository, you must create a new file and add it to the `/.github/DISCUSSION_TEMPLATE/` folder in your repository. +To use a discussion category form in your repository, you must create a new file and add it to the `/.github/DISCUSSION_TEMPLATE/` folder in your repository. You can also create discussion category forms for your organization. For more information, see "[AUTOTITLE](/communities/setting-up-your-project-for-healthy-contributions/creating-a-default-community-health-file)." diff --git a/content/discussions/managing-discussions-for-your-community/managing-categories-for-discussions.md b/content/discussions/managing-discussions-for-your-community/managing-categories-for-discussions.md index b11d886ac8c8..ff14af998c46 100644 --- a/content/discussions/managing-discussions-for-your-community/managing-categories-for-discussions.md +++ b/content/discussions/managing-discussions-for-your-community/managing-categories-for-discussions.md @@ -39,7 +39,7 @@ Each category must have a unique name and emoji pairing, and can be accompanied {% data reusables.discussions.edit-categories %} 1. Click **New category**. - ![Screenshot of the "Manage discussion categories" page. A button, labeled "New category", is highlighted with an orange outline.](/assets/images/help/discussions/click-new-category-button.png) + ![Screenshot of the "Manage discussion categories" page. A button, labeled "New category", is highlighted with an orange outline.](/assets/images/help/discussions/click-new-category-button.png) 1. {% data reusables.discussions.edit-category-details %} {% ifversion discussions-category-section %} @@ -54,7 +54,7 @@ Each category must have a unique name and emoji pairing, and can be accompanied {% data reusables.discussions.discussions-tab %} {% data reusables.discussions.edit-categories %} 1. Click **New section**. - ![Screenshot of the "Manage discussion categories" page. A button, labeled "New section", is highlighted with an orange outline.](/assets/images/help/discussions/click-new-section-button.png) + ![Screenshot of the "Manage discussion categories" page. A button, labeled "New section", is highlighted with an orange outline.](/assets/images/help/discussions/click-new-section-button.png) 1. Edit the emoji and title of the section. 1. Select the categories that you want to add to the section. A category can only belong to one section at a time. 1. Click **Create**. diff --git a/content/education/contribute-with-github-community-exchange/getting-started-with-github-community-exchange.md b/content/education/contribute-with-github-community-exchange/getting-started-with-github-community-exchange.md index 55fab5fb9fb4..fd7ba2e6e664 100644 --- a/content/education/contribute-with-github-community-exchange/getting-started-with-github-community-exchange.md +++ b/content/education/contribute-with-github-community-exchange/getting-started-with-github-community-exchange.md @@ -36,7 +36,7 @@ To star a repository: Go to your {% data variables.product.prodname_community_ex The {% data variables.product.prodname_community_exchange %} community moderates repository submissions. You can report abusive repositories, spammy, or disruptive content at any time. -To report an abusive repository: Go to your {% data variables.product.prodname_community_exchange %} home page, find the repository you want to report, click the {% octicon "kebab-horizontal" aria-label="The edit icon" %} drop-down right by its name, then click **{% octicon "report" aria-label="The report symbol" %} Report abuse**. +To report an abusive repository: Go to your {% data variables.product.prodname_community_exchange %} home page, find the repository you want to report, click the {% octicon "kebab-horizontal" aria-label="The edit icon" %} drop-down right by its name, then click **{% octicon "report" aria-hidden="true" %} Report abuse**. ## Further reading diff --git a/content/education/guides.md b/content/education/guides.md index e84d7b57ed9c..1ff203b4dd96 100644 --- a/content/education/guides.md +++ b/content/education/guides.md @@ -11,7 +11,7 @@ shortTitle: Guides Teachers, students, and researchers can use tools from {% data variables.product.product_name %} to enrich a software development curriculum and develop real-world collaboration skills. -* [Sign up for a new {% data variables.product.prodname_dotcom %} account](/get-started/start-your-journey/creating-an-account-on-github) +* [Sign up for a new {% data variables.product.prodname_dotcom %} account](/get-started/start-your-journey/creating-an-account-on-github) * [Git and {% data variables.product.prodname_dotcom %} quickstart](/get-started/start-your-journey) * [About {% data variables.product.prodname_global_campus %} for students](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/github-education-for-students/about-github-education-for-students) * [Apply to {% data variables.product.prodname_global_campus %} as a teacher](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/github-education-for-teachers/apply-to-github-education-as-a-teacher) diff --git a/content/education/manage-coursework-with-github-classroom/get-started-with-github-classroom/about-github-classroom.md b/content/education/manage-coursework-with-github-classroom/get-started-with-github-classroom/about-github-classroom.md index c10e59ddfef8..1fc25e88ed4d 100644 --- a/content/education/manage-coursework-with-github-classroom/get-started-with-github-classroom/about-github-classroom.md +++ b/content/education/manage-coursework-with-github-classroom/get-started-with-github-classroom/about-github-classroom.md @@ -22,7 +22,7 @@ With {% data variables.product.prodname_classroom %}, you can create assignments ### Autograding -Through {% data variables.product.prodname_classroom %}, you can configure tests to automatically grade the work of each student every time that student pushes to their assignment repository. To learn more about autograding with {% data variables.product.prodname_classroom %}, see "[AUTOTITLE](/education/manage-coursework-with-github-classroom/teach-with-github-classroom/use-autograding)." +Through {% data variables.product.prodname_classroom %}, you can configure tests to automatically grade the work of each student every time that student pushes to their assignment repository. To learn more about autograding with {% data variables.product.prodname_classroom %}, see "[AUTOTITLE](/education/manage-coursework-with-github-classroom/teach-with-github-classroom/use-autograding)." ### Ability to connect a learning management system diff --git a/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/editing-an-assignment.md b/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/editing-an-assignment.md index 9d326378834a..4b0359811679 100644 --- a/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/editing-an-assignment.md +++ b/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/editing-an-assignment.md @@ -87,7 +87,7 @@ If you need to update the starter code for your assignment after students have a 1. Click **Sync assignments**. If changes are detected, an **Assignments are out of date** button will be shown. 1. To open pull requests in all of your students' assignment repositories, click **Assignments are out of date**. -The pull requests will be titled "{% data variables.product.prodname_classroom %}: Sync Assignment". Ask your students to merge these pull requests. +The pull requests will be titled "{% data variables.product.prodname_classroom %}: Sync Assignment". Ask your students to merge these pull requests. ## Further reading diff --git a/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/register-a-learning-management-system-with-github-classroom.md b/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/register-a-learning-management-system-with-github-classroom.md index 636becc13005..f0b815bc3d29 100644 --- a/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/register-a-learning-management-system-with-github-classroom.md +++ b/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/register-a-learning-management-system-with-github-classroom.md @@ -149,9 +149,9 @@ You must be using Moodle version 3.0 or greater. * "LTI 1.3 Platform Issuer": The "LTI 1.3 Platform Issuer" field as provided by Sakai * "Domain": The base URL to your Sakai instance * "LTI 1.3 Client ID": The "LTI 1.3 Client ID" field as provided by Sakai - * "LTI 1.3 Platform OIDC Authentication URL": The "LTI 1.3 Platform OIDC Authentication URL" field as provided by Sakai + * "LTI 1.3 Platform OIDC Authentication URL": The "LTI 1.3 Platform OIDC Authentication URL" field as provided by Sakai * "LTI 1.3 Platform OAuth2 Bearer Token Retrieval URL": The "LTI 1.3 Platform OAuth2 Bearer Token Retrieval URL" field as provided by Sakai * "LTI 1.3 Platform OAuth2 Well-Known/KeySet URL": The "LTI 1.3 Platform OAuth2 Well-Known/KeySet URL" field as provided by Sakai 1. Click **Register**. -1. You should see the "Successfully registered LMS" banner at the top of the screen, which means that you've registered your LMS instance and teachers can now link their classrooms. +1. You should see the "Successfully registered LMS" banner at the top of the screen, which means that you've registered your LMS instance and teachers can now link their classrooms. diff --git a/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/reuse-an-assignment.md b/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/reuse-an-assignment.md index 933ebcf11268..b287b81f31fb 100644 --- a/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/reuse-an-assignment.md +++ b/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/reuse-an-assignment.md @@ -22,7 +22,7 @@ The copied assignment includes assignment details such as the name, source repos ![Screenshot of an assignment. The "Edit" dropdown is expanded and the "Reuse assignment" option is outlined in dark orange.](/assets/images/help/classroom/reuse-assignment-button.png) -1. In the "Reuse assignment" modal, use the **Choose an organization** dropdown menu to select the organization you want the assignment to be in. Then use the **Choose a classroom** dropdown menu to select the classroom within that organization that you want to copy the assignment to. +1. In the "Reuse assignment" modal, use the **Choose an organization** dropdown menu to select the organization you want the assignment to be in. Then use the **Choose a classroom** dropdown menu to select the classroom within that organization that you want to copy the assignment to. 1. Click **Create assignment**. 1. The assignment is copied to the selected classroom, and a confirmation message is shown. If you chose to reuse an assignment with a template repository, the copying process may take a few minutes to complete, and you may need to refresh the page to see the completed message. @@ -33,7 +33,7 @@ The copied assignment includes assignment details such as the name, source repos ![Screenshot of the tile for a classroom. The "Reuse assignment" option in the dropdown menu is outlined in dark orange.](/assets/images/help/classroom/classroom-reuse-assignment-modal.png) -1. In the "Reuse assignments" modal, use the **Choose an organization** dropdown menu to select the organization you want the assignments to be in. Then use the **Choose a classroom** dropdown menu to select the classroom within that organization that you want to copy the assignments to. +1. In the "Reuse assignments" modal, use the **Choose an organization** dropdown menu to select the organization you want the assignments to be in. Then use the **Choose a classroom** dropdown menu to select the classroom within that organization that you want to copy the assignments to. 1. To the left of each assignment, select the assignment you want to reuse. 1. Click **Create assignments**. 1. The assignments are copied to the selected classroom. If you chose to reuse an assignment with a template repository, the copying process may take a few minutes to complete. diff --git a/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/use-the-git-and-github-starter-assignment.md b/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/use-the-git-and-github-starter-assignment.md index 1010037f3a68..fc6dd0a9bdc0 100644 --- a/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/use-the-git-and-github-starter-assignment.md +++ b/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/use-the-git-and-github-starter-assignment.md @@ -21,7 +21,7 @@ The Git & {% data variables.product.company_short %} starter assignment is a pre 1. Sign into {% data variables.product.prodname_classroom_with_url %}. 1. Navigate to a classroom. -1. In the **{% octicon "repo" aria-hidden="true" %} Assignments** tab, click **Use starter assignment**. +1. In the **{% octicon "repo" aria-hidden="true" %} Assignments** tab, click **Use starter assignment**. ### If there already are existing assignments in the classroom diff --git a/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/using-github-classroom-with-github-cli.md b/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/using-github-classroom-with-github-cli.md index b3b36f20f9fb..e4bdef10e033 100644 --- a/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/using-github-classroom-with-github-cli.md +++ b/content/education/manage-coursework-with-github-classroom/teach-with-github-classroom/using-github-classroom-with-github-cli.md @@ -12,7 +12,7 @@ type: how_to {% data reusables.cli.about-cli %} For more information, see "[AUTOTITLE](/github-cli/github-cli/about-github-cli)." -You can work with {% data variables.product.prodname_classroom %} in the {% data variables.product.prodname_cli %} to: +You can work with {% data variables.product.prodname_classroom %} in the {% data variables.product.prodname_cli %} to: * [List classrooms](#list-classrooms) * [View classroom information](#view-classroom-information) diff --git a/content/education/quickstart.md b/content/education/quickstart.md index 21118adbd75f..94a47cd62f68 100644 --- a/content/education/quickstart.md +++ b/content/education/quickstart.md @@ -34,7 +34,7 @@ For more information, see "[AUTOTITLE](/get-started/learning-about-github/types- ## Applying for teacher benefits -Next, you'll sign up for teacher benefits and resources from {% data variables.product.company_short %} by applying to {% data variables.product.prodname_global_campus %}, a portal that allows you to access your education benefits all in one place. {% data reusables.education.educator-requirements %} +Next, you'll sign up for teacher benefits and resources from {% data variables.product.company_short %} by applying to {% data variables.product.prodname_global_campus %}, a portal that allows you to access your education benefits all in one place. {% data reusables.education.educator-requirements %} > [!TIP] > In addition to individual discounts, {% data variables.product.company_short %} offers partnerships with educational institutions through the {% data variables.product.prodname_campus_program %}. For more information, see the [{% data variables.product.prodname_campus_program %}](https://education.github.com/schools) website. @@ -72,7 +72,7 @@ With your personal account and organization account, you're ready to get started ## Next steps -You've created a classroom, and you're ready to enrich your course with {% data variables.product.product_name %} and {% data variables.product.prodname_classroom %}! 🎉 +You've created a classroom, and you're ready to enrich your course with {% data variables.product.product_name %} and {% data variables.product.prodname_classroom %}! 🎉 * Manage your classrooms and classroom admins, and create a roster of students for your classroom. For more information, see "[AUTOTITLE](/education/manage-coursework-with-github-classroom/teach-with-github-classroom/manage-classrooms)." * Use the Git and {% data variables.product.company_short %} starter assignment to give students an overview of Git and {% data variables.product.product_name %} fundamentals. For more information, see "[AUTOTITLE](/education/manage-coursework-with-github-classroom/teach-with-github-classroom/use-the-git-and-github-starter-assignment)." diff --git a/content/get-started/getting-started-with-git/caching-your-github-credentials-in-git.md b/content/get-started/getting-started-with-git/caching-your-github-credentials-in-git.md index f92a3ec2529f..3b03e4d1d3b3 100644 --- a/content/get-started/getting-started-with-git/caching-your-github-credentials-in-git.md +++ b/content/get-started/getting-started-with-git/caching-your-github-credentials-in-git.md @@ -16,7 +16,7 @@ shortTitle: Caching credentials --- > [!TIP] -> If you clone {% data variables.product.product_name %} repositories using SSH, then you can authenticate using an SSH key instead of using other credentials. For information about setting up an SSH connection, see "[AUTOTITLE](/authentication/connecting-to-github-with-ssh)." +> If you clone {% data variables.product.product_name %} repositories using SSH, then you can authenticate using an SSH key instead of using other credentials. For information about setting up an SSH connection, see "[AUTOTITLE](/authentication/connecting-to-github-with-ssh)." ## {% data variables.product.prodname_cli %} diff --git a/content/get-started/getting-started-with-git/set-up-git.md b/content/get-started/getting-started-with-git/set-up-git.md index aaaf45db4cf1..1da731fcb631 100644 --- a/content/get-started/getting-started-with-git/set-up-git.md +++ b/content/get-started/getting-started-with-git/set-up-git.md @@ -28,7 +28,7 @@ topics: To use Git on the command line, you will need to download, install, and configure Git on your computer. You can also install {% data variables.product.prodname_cli %} to use {% data variables.product.prodname_dotcom %} from the command line. For more information, see "[AUTOTITLE](/github-cli/github-cli/about-github-cli)." -If you want to work with Git locally, but do not want to use the command line, you can download and install the [{% data variables.product.prodname_desktop %}]({% data variables.product.desktop_link %}) client. For more information, see "[AUTOTITLE](/desktop/overview/about-github-desktop)." +If you want to work with Git locally, but do not want to use the command line, you can download and install the [{% data variables.product.prodname_desktop %}]({% data variables.product.desktop_link %}) client. For more information, see "[AUTOTITLE](/desktop/overview/about-github-desktop)." If you do not need to work with files locally, {% data variables.product.product_name %} lets you complete many Git-related actions directly in the browser, including: diff --git a/content/get-started/onboarding/getting-started-with-github-enterprise-cloud.md b/content/get-started/onboarding/getting-started-with-github-enterprise-cloud.md index 7f85dfd08310..ab663dfc77f4 100644 --- a/content/get-started/onboarding/getting-started-with-github-enterprise-cloud.md +++ b/content/get-started/onboarding/getting-started-with-github-enterprise-cloud.md @@ -45,7 +45,7 @@ You can add any number of new or existing organizations to manage within your en ### 6. Viewing the subscription and usage for your enterprise account -You can view your current subscription, license usage, invoices, payment history, and other billing information for your enterprise account at any time. Both enterprise owners and billing managers can access and manage billing settings for enterprise accounts. For more information, see "[AUTOTITLE](/enterprise-cloud@latest/billing/managing-the-plan-for-your-github-account/viewing-the-subscription-and-usage-for-your-enterprise-account)." +You can view your current subscription, license usage, invoices, payment history, and other billing information for your enterprise account at any time. Both enterprise owners and billing managers can access and manage billing settings for enterprise accounts. For more information, see "[AUTOTITLE](/enterprise-cloud@latest/billing/managing-the-plan-for-your-github-account/viewing-the-subscription-and-usage-for-your-enterprise-account)." ## Part 2: Managing your enterprise members with {% data variables.product.prodname_ghe_cloud %} @@ -150,7 +150,7 @@ Members of your organization or enterprise can use tools from the {% data variab ### 5. Using {% data variables.product.prodname_pages %} -{% data variables.product.prodname_pages %} is a static site hosting service that takes HTML, CSS, and JavaScript files straight from a repository and publishes a website. You can manage the publication of {% data variables.product.prodname_pages %} sites at the organization level. For more information, see "[AUTOTITLE](/organizations/managing-organization-settings/managing-the-publication-of-github-pages-sites-for-your-organization)" and "[AUTOTITLE](/pages/getting-started-with-github-pages/about-github-pages)." +{% data variables.product.prodname_pages %} is a static site hosting service that takes HTML, CSS, and JavaScript files straight from a repository and publishes a website. You can manage the publication of {% data variables.product.prodname_pages %} sites at the organization level. For more information, see "[AUTOTITLE](/organizations/managing-organization-settings/managing-the-publication-of-github-pages-sites-for-your-organization)" and "[AUTOTITLE](/pages/getting-started-with-github-pages/about-github-pages)." ## Part 6: Participating in {% data variables.product.prodname_dotcom %}'s community diff --git a/content/get-started/onboarding/getting-started-with-github-enterprise-server.md b/content/get-started/onboarding/getting-started-with-github-enterprise-server.md index adbfe2eda97e..95e5832a1422 100644 --- a/content/get-started/onboarding/getting-started-with-github-enterprise-server.md +++ b/content/get-started/onboarding/getting-started-with-github-enterprise-server.md @@ -22,7 +22,7 @@ To get started with {% data variables.product.product_name %}, you will need to ### 1. Creating your enterprise account -Before you install {% data variables.product.product_name %}, you can create an enterprise account on {% data variables.product.prodname_dotcom_the_website %} by contacting [{% data variables.product.prodname_dotcom %}'s Sales team](https://enterprise.github.com/contact). An enterprise account on {% data variables.product.prodname_dotcom_the_website %} is useful for billing and for shared features with {% data variables.product.prodname_dotcom_the_website %} via {% data variables.product.prodname_github_connect %}. For more information, see "[AUTOTITLE](/admin/managing-your-enterprise-account/about-enterprise-accounts)." +Before you install {% data variables.product.product_name %}, you can create an enterprise account on {% data variables.product.prodname_dotcom_the_website %} by contacting [{% data variables.product.prodname_dotcom %}'s Sales team](https://enterprise.github.com/contact). An enterprise account on {% data variables.product.prodname_dotcom_the_website %} is useful for billing and for shared features with {% data variables.product.prodname_dotcom_the_website %} via {% data variables.product.prodname_github_connect %}. For more information, see "[AUTOTITLE](/admin/managing-your-enterprise-account/about-enterprise-accounts)." ### 2. Installing {% data variables.product.product_name %} @@ -30,7 +30,7 @@ To get started with {% data variables.product.product_name %}, you will need to ### 3. Using the {% data variables.enterprise.management_console %} -You will use the {% data variables.enterprise.management_console %} to walk through the initial setup process when first launching {% data variables.location.product_location %}. You can also use the {% data variables.enterprise.management_console %} to manage instance settings such as the license, domain, authentication, and TLS. For more information, see "[AUTOTITLE](/admin/administering-your-instance/administering-your-instance-from-the-web-ui)." +You will use the {% data variables.enterprise.management_console %} to walk through the initial setup process when first launching {% data variables.location.product_location %}. You can also use the {% data variables.enterprise.management_console %} to manage instance settings such as the license, domain, authentication, and TLS. For more information, see "[AUTOTITLE](/admin/administering-your-instance/administering-your-instance-from-the-web-ui)." ### 4. Configuring {% data variables.location.product_location %} @@ -44,7 +44,7 @@ You can configure {% data variables.location.product_location %} for high availa ### 6. Setting up a staging instance -You can set up a staging instance to test modifications, plan for disaster recovery, and try out updates before applying them to {% data variables.location.product_location %}. For more information, see "[AUTOTITLE](/admin/installation/setting-up-a-github-enterprise-server-instance/setting-up-a-staging-instance)." +You can set up a staging instance to test modifications, plan for disaster recovery, and try out updates before applying them to {% data variables.location.product_location %}. For more information, see "[AUTOTITLE](/admin/installation/setting-up-a-github-enterprise-server-instance/setting-up-a-staging-instance)." ### 7. Designating backups and disaster recovery diff --git a/content/get-started/onboarding/getting-started-with-github-team.md b/content/get-started/onboarding/getting-started-with-github-team.md index 844b8b8a7d06..95ecb8633f91 100644 --- a/content/get-started/onboarding/getting-started-with-github-team.md +++ b/content/get-started/onboarding/getting-started-with-github-team.md @@ -27,7 +27,7 @@ You must manage billing settings, payment method, and paid features and products Your organization's billing settings page allows you to manage settings like your payment method, billing cycle and billing email, or view information such as your subscription, billing date and payment history. You can also view and upgrade your storage and GitHub Actions minutes. For more information on managing your billing settings, see "[AUTOTITLE](/billing/managing-your-github-billing-settings)." -Only organization members with the _owner_ or _billing manager_ role can access or change billing settings for your organization. A billing manager is someone who manages the billing settings for your organization and does not use a paid license in your organization's subscription. For more information on adding a billing manager to your organization, see "[AUTOTITLE](/organizations/managing-peoples-access-to-your-organization-with-roles/adding-a-billing-manager-to-your-organization)." +Only organization members with the _owner_ or _billing manager_ role can access or change billing settings for your organization. A billing manager is someone who manages the billing settings for your organization and does not use a paid license in your organization's subscription. For more information on adding a billing manager to your organization, see "[AUTOTITLE](/organizations/managing-peoples-access-to-your-organization-with-roles/adding-a-billing-manager-to-your-organization)." ## Part 2: Adding members and setting up teams diff --git a/content/get-started/start-your-journey/hello-world.md b/content/get-started/start-your-journey/hello-world.md index c1293bc49a61..4bf4b6b1537c 100644 --- a/content/get-started/start-your-journey/hello-world.md +++ b/content/get-started/start-your-journey/hello-world.md @@ -131,7 +131,7 @@ We won't cover reviewing pull requests in this tutorial, but if you're intereste ## Step 5: Merge your pull request -In this final step, you will merge your `readme-edits` branch into the `main` branch. After you merge your pull request, the changes on your `readme-edits` branch will be incorporated into `main`. +In this final step, you will merge your `readme-edits` branch into the `main` branch. After you merge your pull request, the changes on your `readme-edits` branch will be incorporated into `main`. Sometimes, a pull request may introduce changes to code that conflict with the existing code on `main`. If there are any conflicts, {% data variables.product.product_name %} will alert you about the conflicting code and prevent merging until the conflicts are resolved. You can make a commit that resolves the conflicts or use comments in the pull request to discuss the conflicts with your team members. 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 dc3a2bd65b88..f892e2a76c6b 100644 --- a/content/get-started/using-git/about-git-subtree-merges.md +++ b/content/get-started/using-git/about-git-subtree-merges.md @@ -102,7 +102,7 @@ The best way to explain subtree merges is to show by example. We will: Although we've only added one subproject, any number of subprojects can be incorporated into a Git repository. > [!TIP] -> If you create a fresh clone of the repository in the future, the remotes you've added will not be created for you. You will have to add them again using [the `git remote add` command](/get-started/getting-started-with-git/managing-remote-repositories). +> If you create a fresh clone of the repository in the future, the remotes you've added will not be created for you. You will have to add them again using [the `git remote add` command](/get-started/getting-started-with-git/managing-remote-repositories). ## Synchronizing with updates and changes 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 a13171f3d7d5..0e6dbff04ac7 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 @@ -20,7 +20,7 @@ $ git push origin main > ! [rejected] main -> main (non-fast-forward) > error: failed to push some refs to 'https://{% data variables.product.product_url %}/USERNAME/REPOSITORY.git' > To prevent you from losing history, non-fast-forward updates were rejected -> Merge the remote changes (e.g. 'git pull') before pushing again. See the +> Merge the remote changes (e.g. 'git pull') before pushing again. See the > 'Note about fast-forwards' section of 'git push --help' for details. ``` 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 78089feda7bd..d7f9090a4ae2 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 @@ -17,7 +17,7 @@ shortTitle: Splitting a subfolder > [!NOTE] > You need Git version 2.22.0 or later to follow these instructions, otherwise `git filter-repo` will not work. -If you create a new clone of the repository, you won't lose any of your Git history or changes when you split a folder into a separate repository. However, note that the new repository won't have the branches and tags of the original repository. +If you create a new clone of the repository, you won't lose any of your Git history or changes when you split a folder into a separate repository. However, note that the new repository won't have the branches and tags of the original repository. {% data reusables.command_line.open_the_multi_os_terminal %} diff --git a/content/get-started/using-git/troubleshooting-the-2-gb-push-limit.md b/content/get-started/using-git/troubleshooting-the-2-gb-push-limit.md index cbd92069111a..887f746b5abe 100644 --- a/content/get-started/using-git/troubleshooting-the-2-gb-push-limit.md +++ b/content/get-started/using-git/troubleshooting-the-2-gb-push-limit.md @@ -43,7 +43,7 @@ You can avoid hitting the limit by breaking your push into smaller parts, each o 1. If this is the first time this repository is being pushed to {% data variables.product.prodname_dotcom %}, perform a final mirror push to ensure any remaining refs are pushed up. ```shell - git push REMOTE-NAME --mirror + git push REMOTE-NAME --mirror ``` If this is still too large, you'll need to push up other branches in stages using the same steps. diff --git a/content/get-started/using-git/using-git-rebase-on-the-command-line.md b/content/get-started/using-git/using-git-rebase-on-the-command-line.md index e139b09633fb..81723ca347a6 100644 --- a/content/get-started/using-git/using-git-rebase-on-the-command-line.md +++ b/content/get-started/using-git/using-git-rebase-on-the-command-line.md @@ -107,7 +107,7 @@ Once you are satisfied with your changes, run At this point, you can edit any of the files in your project to make any additional changes. For each change you make, you'll need to perform a new commit, and you can do that by entering the `git commit --amend` command. When you're finished making all your changes, you can run `git rebase --continue`. -Git then gets to the `reword 4ca2acc` command. It opens up your text editor one more time, and presents the following information: +Git then gets to the `reword 4ca2acc` command. It opens up your text editor one more time, and presents the following information: ```text i cant' typ goods diff --git a/content/get-started/working-with-subversion-on-github/support-for-subversion-clients.md b/content/get-started/working-with-subversion-on-github/support-for-subversion-clients.md index 579a4673f1c0..805ac3adff17 100644 --- a/content/get-started/working-with-subversion-on-github/support-for-subversion-clients.md +++ b/content/get-started/working-with-subversion-on-github/support-for-subversion-clients.md @@ -18,9 +18,9 @@ GitHub supports Subversion clients via the HTTPS protocol. We use a Subversion b ### Checkout -The first thing you'll want to do is a Subversion checkout. Since Git clones keep the working directory (where you edit files) separate from the repository data, there is only one branch in the working directory at a time. +The first thing you'll want to do is a Subversion checkout. Since Git clones keep the working directory (where you edit files) separate from the repository data, there is only one branch in the working directory at a time. -Subversion checkouts are different: they mix the repository data in the working directories, so there is a working directory for each branch and tag you've checked out. For repositories with many branches and tags, checking out everything can be a bandwidth burden, so you should start with a partial checkout. +Subversion checkouts are different: they mix the repository data in the working directories, so there is a working directory for each branch and tag you've checked out. For repositories with many branches and tags, checking out everything can be a bandwidth burden, so you should start with a partial checkout. {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.copy-clone-url %} @@ -43,7 +43,7 @@ Subversion checkouts are different: they mix the repository data in the working > Updated to revision 1. ``` -1. Get an empty checkout of the `branches` directory. This is where all of the non-`HEAD` branches live, and where you'll be making feature branches. +1. Get an empty checkout of the `branches` directory. This is where all of the non-`HEAD` branches live, and where you'll be making feature branches. ```shell $ svn up --depth empty branches 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 d675451d51ed..98c056431dcd 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 @@ -143,7 +143,7 @@ The code block below demonstrates the basic rules used to generate anchors from ## Sample Section -## This'll be a _Helpful_ Section About the Greek Letter Θ! +## This'll be a _Helpful_ Section About the Greek Letter Θ! A heading containing characters not allowed in fragments, UTF-8 characters, two consecutive spaces between the first and second words, and formatting. ## This heading is not unique in the file @@ -207,7 +207,7 @@ You can display an image by adding ! and wrapping the alt text in `[ ![Screenshot of a comment on a GitHub issue showing an image, added in the Markdown, of an Octocat smiling and raising a tentacle.](/assets/images/help/writing/image-rendered.png) -{% data variables.product.product_name %} supports embedding images into your issues, pull requests{% ifversion fpt or ghec %}, discussions{% endif %}, comments and `.md` files. You can display an image from your repository, add a link to an online image, or upload an image. For more information, see "[Uploading assets](#uploading-assets)." +{% data variables.product.product_name %} supports embedding images into your issues, pull requests{% ifversion fpt or ghec %}, discussions{% endif %}, comments and `.md` files. You can display an image from your repository, add a link to an online image, or upload an image. For more information, see "[Uploading assets](#uploading-assets)." > [!NOTE] > When you want to display an image that is in your repository, use relative links instead of absolute links. diff --git a/content/get-started/writing-on-github/working-with-advanced-formatting/writing-mathematical-expressions.md b/content/get-started/writing-on-github/working-with-advanced-formatting/writing-mathematical-expressions.md index beb6ba5692c7..f792a8454bae 100644 --- a/content/get-started/writing-on-github/working-with-advanced-formatting/writing-mathematical-expressions.md +++ b/content/get-started/writing-on-github/working-with-advanced-formatting/writing-mathematical-expressions.md @@ -24,7 +24,7 @@ To include a math expression inline within your text, delimit the expression wit {% endif %} ```text -This sentence uses `$` delimiters to show math inline: $\sqrt{3x-1}+(1+x)^2$ +This sentence uses `$` delimiters to show math inline: $\sqrt{3x-1}+(1+x)^2$ ``` ![Screenshot of rendered Markdown showing how a mathematical expression displays on {% data variables.product.prodname_dotcom %}. The equation is the square root of 3 x minus 1 plus open paren 1 plus x close paren squared.](/assets/images/help/writing/inline-math-markdown-rendering.png) @@ -32,7 +32,7 @@ This sentence uses `$` delimiters to show math inline: $\sqrt{3x-1}+(1+x)^2$ {% ifversion math-backtick-syntax %} ```text -This sentence uses $\` and \`$ delimiters to show math inline: $`\sqrt{3x-1}+(1+x)^2`$ +This sentence uses $\` and \`$ delimiters to show math inline: $`\sqrt{3x-1}+(1+x)^2`$ ``` ![Screenshot of rendered Markdown showing how a mathematical expression displays inline on {% data variables.product.prodname_dotcom %}. The equation is the square root of 3 x minus 1 plus open paren 1 plus x close paren squared.](/assets/images/help/writing/inline-backtick-math-markdown-rendering.png) diff --git a/content/github-models/prototyping-with-ai-models.md b/content/github-models/prototyping-with-ai-models.md index 02bc5526d7e1..93fe4bdc9e94 100644 --- a/content/github-models/prototyping-with-ai-models.md +++ b/content/github-models/prototyping-with-ai-models.md @@ -214,7 +214,7 @@ Low, high, and embedding models have different rate limits. To see which type of 1 - Azure OpenAI o1-mini + Azure OpenAI o1-mini Requests per minute 2 3 diff --git a/content/graphql/guides/forming-calls-with-graphql.md b/content/graphql/guides/forming-calls-with-graphql.md index cfc9778c3907..0059ca36fb15 100644 --- a/content/graphql/guides/forming-calls-with-graphql.md +++ b/content/graphql/guides/forming-calls-with-graphql.md @@ -211,7 +211,7 @@ Looking at the composition line by line: * The [docs](/graphql/reference/objects#repository) tell us this object has the type `IssueConnection`. * Schema validation indicates this object requires a `last` or `first` number of results as an argument, so we provide `20`. - * The [docs](/graphql/reference/objects#repository) also tell us this object accepts a `states` argument, which is an [`IssueState`](/graphql/reference/enums#issuestate) enum that accepts `OPEN` or `CLOSED` values. To find only closed issues, we give the `states` key a value of `CLOSED`. + * The [docs](/graphql/reference/objects#repository) also tell us this object accepts a `states` argument, which is an [`IssueState`](/graphql/reference/enums#issuestate) enum that accepts `OPEN` or `CLOSED` values. To find only closed issues, we give the `states` key a value of `CLOSED`. * `edges {` diff --git a/content/graphql/guides/managing-enterprise-accounts.md b/content/graphql/guides/managing-enterprise-accounts.md index cfd3d851df95..711af82aeb65 100644 --- a/content/graphql/guides/managing-enterprise-accounts.md +++ b/content/graphql/guides/managing-enterprise-accounts.md @@ -127,7 +127,7 @@ variables { } ``` -The next GraphQL query example shows how challenging it is to retrieve the number of `public` repositories in each organization without using the Enterprise Account API. Notice that the GraphQL Enterprise Accounts API has made this task simpler for enterprises since you only need to customize a single variable. To customize this query, replace `` and ``, etc. with the organization names on your instance. +The next GraphQL query example shows how challenging it is to retrieve the number of `public` repositories in each organization without using the Enterprise Account API. Notice that the GraphQL Enterprise Accounts API has made this task simpler for enterprises since you only need to customize a single variable. To customize this query, replace `` and ``, etc. with the organization names on your instance. ```graphql # Each organization is queried separately diff --git a/content/graphql/guides/migrating-graphql-global-node-ids.md b/content/graphql/guides/migrating-graphql-global-node-ids.md index f26220481da9..935ca3b0da39 100644 --- a/content/graphql/guides/migrating-graphql-global-node-ids.md +++ b/content/graphql/guides/migrating-graphql-global-node-ids.md @@ -11,7 +11,7 @@ shortTitle: Migrating global node IDs ## Background -The {% data variables.product.product_name %} GraphQL API currently supports two types of global node ID formats. The legacy format will be {% data variables.release-phases.closing_down %} and replaced with a new format. This guide shows you how to migrate to the new format, if necessary. +The {% data variables.product.product_name %} GraphQL API currently supports two types of global node ID formats. The legacy format will be {% data variables.release-phases.closing_down %} and replaced with a new format. This guide shows you how to migrate to the new format, if necessary. By migrating to the new format, you ensure that the response times of your requests remain consistent and small. You also ensure that your application continues to work once the legacy IDs are {% data variables.release-phases.closing_down %}. @@ -19,13 +19,13 @@ To learn more about why the legacy global node ID format will be {% data variabl ## Determining if you need to take action -You only need to follow the migration steps if you store references to GraphQL global node IDs. These IDs correspond to the `id` field for any object in the schema. If you don't store any global node IDs, then you can continue to interact with the API with no change. +You only need to follow the migration steps if you store references to GraphQL global node IDs. These IDs correspond to the `id` field for any object in the schema. If you don't store any global node IDs, then you can continue to interact with the API with no change. -Additionally, if you currently decode the legacy IDs to extract type information (for example, if you use the first two characters of `PR_kwDOAHz1OX4uYAah` to determine if the object is a pull request), your service will break since the format of the IDs has changed. You should migrate your service to treat these IDs as opaque strings. These IDs will be unique, therefore you can rely on them directly as references. +Additionally, if you currently decode the legacy IDs to extract type information (for example, if you use the first two characters of `PR_kwDOAHz1OX4uYAah` to determine if the object is a pull request), your service will break since the format of the IDs has changed. You should migrate your service to treat these IDs as opaque strings. These IDs will be unique, therefore you can rely on them directly as references. ## Migrating to the new global IDs -To facilitate migration to the new ID format, you can use the `X-Github-Next-Global-ID` header in your GraphQL API requests. The value of the `X-Github-Next-Global-ID` header can be `1` or `0`. Setting the value to `1` will force the response payload to always use the new ID format for any object that you requested the `id` field for. Setting the value to `0` will revert to default behavior, which is to show the legacy ID or new ID depending on the object creation date. +To facilitate migration to the new ID format, you can use the `X-Github-Next-Global-ID` header in your GraphQL API requests. The value of the `X-Github-Next-Global-ID` header can be `1` or `0`. Setting the value to `1` will force the response payload to always use the new ID format for any object that you requested the `id` field for. Setting the value to `0` will revert to default behavior, which is to show the legacy ID or new ID depending on the object creation date. Here is an example request using a `curl` command: @@ -64,7 +64,7 @@ You can also get the new ID for a collection of items. For example, if you wante } ``` -Note that setting `X-Github-Next-Global-ID` to `1` will affect the return value of every `id` field in your query. This means that even when you submit a non-`node` query, you will get back the new format ID if you requested the `id` field. +Note that setting `X-Github-Next-Global-ID` to `1` will affect the return value of every `id` field in your query. This means that even when you submit a non-`node` query, you will get back the new format ID if you requested the `id` field. ## Sharing feedback diff --git a/content/graphql/reference/unions.md b/content/graphql/reference/unions.md index 11cb7dbd08a6..876e279c85fa 100644 --- a/content/graphql/reference/unions.md +++ b/content/graphql/reference/unions.md @@ -1,6 +1,6 @@ --- title: Unions -intro: A union is a type of object representing many objects. +intro: A union is a type of object representing many objects. redirect_from: - /v4/union - /v4/reference/union diff --git a/content/issues/organizing-your-work-with-project-boards/tracking-work-with-project-boards/adding-issues-and-pull-requests-to-a-project-board.md b/content/issues/organizing-your-work-with-project-boards/tracking-work-with-project-boards/adding-issues-and-pull-requests-to-a-project-board.md index b9383aa86269..de52c693eeec 100644 --- a/content/issues/organizing-your-work-with-project-boards/tracking-work-with-project-boards/adding-issues-and-pull-requests-to-a-project-board.md +++ b/content/issues/organizing-your-work-with-project-boards/tracking-work-with-project-boards/adding-issues-and-pull-requests-to-a-project-board.md @@ -47,7 +47,7 @@ You can put a maximum of 2,500 cards into each project column. If a column has r ## Adding issues and pull requests to a {% data variables.projects.projects_v1_board %} from the sidebar -1. On the right side of an issue or pull request, click **Projects {% octicon "gear" aria-label="The Gear icon" %}**. +1. On the right side of an issue or pull request, click **Projects {% octicon "gear" aria-hidden="true" %}**. ![Screenshot showing an issue's sidebar. The "Projects" section header is highlighted with an orange outline.](/assets/images/help/projects-v2/issue-sidebar-projects.png) diff --git a/content/issues/planning-and-tracking-with-projects/managing-your-project/managing-project-templates-in-your-organization.md b/content/issues/planning-and-tracking-with-projects/managing-your-project/managing-project-templates-in-your-organization.md index 958d8698adab..47f5b1831c7e 100644 --- a/content/issues/planning-and-tracking-with-projects/managing-your-project/managing-project-templates-in-your-organization.md +++ b/content/issues/planning-and-tracking-with-projects/managing-your-project/managing-project-templates-in-your-organization.md @@ -85,7 +85,7 @@ You can add up to six templates to your organization's recommended templates. {% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} -1. In the "Code, planning, and automation" section of the sidebar, click **{% octicon "table" aria-label="The table icon" %} Projects**. +1. In the "Code, planning, and automation" section of the sidebar, click **{% octicon "table" aria-hidden="true" %} Projects**. 1. Under "Recommended templates", click **Customize recommended templates**. 1. In the list of templates owned by your organization, select up to six templates that you want to recommend to your members. @@ -99,7 +99,7 @@ You can change the display order of your recommended templates in the "Create pr {% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} -1. In the "Code planning, and automation" section of the sidebar, click **{% octicon "table" aria-label="The table icon" %} Projects**. +1. In the "Code planning, and automation" section of the sidebar, click **{% octicon "table" aria-hidden="true" %} Projects**. 1. Under "Recommended templates", find the template you want to reposition, click on {% octicon "grabber" aria-label="Drag to reorder" %}, and drag the template to the new position. ![Screenshot of an organization's recommended templates settings. The 'Drag to reorder' handle is highlighted with an orange outline.](/assets/images/help/projects-v2/rec-template-handle.png) diff --git a/content/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/preparing-to-require-two-factor-authentication-in-your-organization.md b/content/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/preparing-to-require-two-factor-authentication-in-your-organization.md index aaa891f027c4..64243fe145ca 100644 --- a/content/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/preparing-to-require-two-factor-authentication-in-your-organization.md +++ b/content/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/preparing-to-require-two-factor-authentication-in-your-organization.md @@ -14,15 +14,23 @@ topics: - Teams shortTitle: Prepare to require 2FA --- +{% ifversion fpt or ghec %} +When requiring 2FA in your organization, consider if you also want to enforce usage of only secure methods among your users (secure two-factor methods are passkeys, security keys, authenticator apps, and the GitHub mobile app). +{% endif %} + We recommend that you notify {% ifversion fpt or ghec %}organization members, outside collaborators, and billing managers{% else %}organization members and outside collaborators{% endif %} at least one week before you require 2FA in your organization. -When you require use of two-factor authentication for your organization, outside collaborators (including bot accounts) who do not use 2FA will be removed from the organization and lose access to its repositories. They will also lose access to their forks of the organization's private repositories. -Members and billing managers will retain membership but not be able to access your organization resources until they enable 2FA. +When you require use of two-factor authentication for your organization, outside collaborators (including bot accounts) who do not use 2FA will be removed from the organization and lose access to its repositories.{% ifversion fpt or ghec %} If you require secure methods of 2FA, outside collaborators who have SMS 2FA configured will be removed. {% endif %} They will also lose access to their forks of the organization's private repositories. +Members and billing managers will retain membership but not be able to access your organization resources until they meet your 2FA requirement{% ifversion fpt or ghec %} and 2FA security level{% endif %}. Before requiring 2FA in your organization, we recommend that you: -* Enable 2FA on your personal account. For more information, see "[AUTOTITLE](/authentication/securing-your-account-with-two-factor-authentication-2fa)." -* Ask the people in your organization to set up 2FA for their accounts +* Enable 2FA on your personal account{% ifversion fpt or ghec %} with a secure method {% endif %}. For more information, see "[AUTOTITLE](/authentication/securing-your-account-with-two-factor-authentication-2fa)." +* Ask the people in your organization to set up 2FA for their accounts{% ifversion fpt or ghec %} with secure methods{% endif %}. +{% ifversion fpt or ghec %} +* View the 2FA security levels of users in your organization, to judge the impact of adding a 2FA requirement. For more information, see "[AUTOTITLE](/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/viewing-whether-users-in-your-organization-have-2fa-enabled)." +{% else %} * See whether users in your organization have 2FA enabled. For more information, see "[AUTOTITLE](/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/viewing-whether-users-in-your-organization-have-2fa-enabled)." +{% endif %} * Enable 2FA for unattended or shared access accounts, such as bots and service accounts. For more information, see "[AUTOTITLE](/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/managing-bots-and-service-accounts-with-two-factor-authentication)." * Warn users that once 2FA is enabled, outside collaborators without 2FA are automatically removed from the organization, and members and billing managers will not be able to access your organization resources until they enable 2FA. diff --git a/content/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/requiring-two-factor-authentication-in-your-organization.md b/content/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/requiring-two-factor-authentication-in-your-organization.md index aba321fdba5f..1fba0bc509af 100644 --- a/content/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/requiring-two-factor-authentication-in-your-organization.md +++ b/content/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/requiring-two-factor-authentication-in-your-organization.md @@ -31,15 +31,23 @@ You can also require two-factor authentication for organizations in an enterpris > [!NOTE] > Some of the users in your organization may have been selected for mandatory two-factor authentication enrollment by {% data variables.product.prodname_dotcom %}, but it has no impact on how you enable the 2FA requirement for your organization. If you enable the 2FA requirement in your organization, all users without 2FA currently enabled will be removed from your organization, including those that are required to enable it by {% data variables.product.prodname_dotcom %}. -{% endif %} - > [!WARNING] -> * When you require use of two-factor authentication for your organization, {% ifversion fpt or ghec %}members and billing managers{% else %}members{% endif %} who do not use 2FA will not be able to access your organization's resources until they enable 2FA on their account. They will retain membership even without 2FA, including occupying seats in your organization. +> * When you require use of two-factor authentication for your organization, members and billing managers who do not use 2FA will not be able to access your organization's resources until they enable 2FA on their account. They will retain membership even without 2FA, including occupying seats in your organization. > * When you require use of two-factor authentication for your organization, outside collaborators who do not use 2FA will be removed from the organization and lose access to its repositories. They will also lose access to their forks of the organization's private repositories. You can reinstate their access privileges and settings if they enable 2FA for their personal account within three months of their removal from your organization. For more information, see "[AUTOTITLE](/organizations/managing-membership-in-your-organization/reinstating-a-former-member-of-your-organization)." > * You will also need to enable two-factor authentication for unattended or shared access accounts that are outside collaborators, such as bots and service accounts. If you do not configure 2FA for these unattended outside collaborator accounts after you've enabled required 2FA, the accounts will be removed from the organization and lose access to their repositories. For more information, see "[AUTOTITLE](/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/managing-bots-and-service-accounts-with-two-factor-authentication)." > * If an outside collaborator disables two-factor authentication for their personal account after you've enabled required 2FA, they will automatically be removed from the organization. > * If you're the sole owner of an organization that requires two-factor authentication, you won't be able to disable 2FA for your personal account without disabling required 2FA for the organization. +{% else %} + +> [!WARNING] +> * When you require use of two-factor authentication for your organization, members and outside collaborators who do not use 2FA will be removed from the organization and lose access to its repositories. They will also lose access to their forks of the organization's private repositories. You can reinstate their access privileges and settings if they enable two-factor authentication for their personal account within three months of their removal from your organization. For more information, see "[AUTOTITLE](/organizations/managing-membership-in-your-organization/reinstating-a-former-member-of-your-organization)." +> * You will also need to enable 2FA for unattended or shared access accounts, such as bots and service accounts. If you do not configure 2FA for these unattended accounts after you've enabled required two-factor authentication, the accounts will be removed from the organization and lose access to their repositories. For more information, see "[AUTOTITLE](/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/managing-bots-and-service-accounts-with-two-factor-authentication)." +> * If an organization owner, member, or outside collaborator disables 2FA for their personal account after you've enabled required two-factor authentication, they will automatically be removed from the organization. +> * If you're the sole owner of an organization that requires two-factor authentication, you won't be able to disable 2FA for your personal account without disabling required two-factor authentication for the organization. + +{% endif %} + {% data reusables.two_fa.auth_methods_2fa %} ## Prerequisites @@ -59,6 +67,20 @@ Before you require use of two-factor authentication, we recommend notifying {% i 1. If any outside collaborators are removed from the organization, we recommend sending them an invitation that can reinstate their former privileges and access to your organization. They must enable two-factor authentication before they can accept your invitation. {% endif %} +{% ifversion fpt or ghec %} + +### Requiring secure methods of two-factor authentication in your organization + +Alongside requiring two-factor authentication, you can require that organization members, billing managers, and outside collaborators use secure methods of 2FA. Secure two-factor methods are passkeys, security keys, authenticator apps, and the GitHub mobile app. Users who do not have a secure method of 2FA configured, or who have any insecure method configured, will be prevented from accessing organization resources. + +Before you require secure methods of two-factor authentication, we recommend notifying organization members, outside collaborators, and billing managers and asking them to set up secure 2FA for their accounts. You can see if members and outside collaborators already use secure methods of 2FA on each organization's People page. For more information, see "[AUTOTITLE](/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/viewing-whether-users-in-your-organization-have-2fa-enabled)." + +{% data reusables.organizations.secure_two_factor_authentication %} +{% data reusables.organizations.secure_two_factor_authentication_confirm %} +1. Optionally, if any outside collaborators are removed from your organization, we recommend sending them an invitation to reinstate their former privileges and access. Each person must enable 2FA with a secure method before they can accept your invitation. + +{% endif %} + ## Viewing people who were removed from your organization To view people who were automatically removed from your organization for non-compliance when you required two-factor authentication, you can search your organization's audit log for people removed from your organization. The audit log event will show if a person was removed for 2FA non-compliance. For more information, see "[AUTOTITLE](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-the-audit-log-for-your-organization#accessing-the-audit-log)." diff --git a/content/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/viewing-whether-users-in-your-organization-have-2fa-enabled.md b/content/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/viewing-whether-users-in-your-organization-have-2fa-enabled.md index 15943ae70e9e..621ef0d66688 100644 --- a/content/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/viewing-whether-users-in-your-organization-have-2fa-enabled.md +++ b/content/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/viewing-whether-users-in-your-organization-have-2fa-enabled.md @@ -16,25 +16,31 @@ shortTitle: View 2FA usage --- > [!NOTE] -> You can require that all members{% ifversion fpt or ghec %}, including, owners, billing managers and{% else %} and{% endif %} outside collaborators in your organization have two-factor authentication enabled. For more information, see "[AUTOTITLE](/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/requiring-two-factor-authentication-in-your-organization)." +> You can require that all members{% ifversion fpt or ghec %}, including, owners, billing managers and{% else %} and{% endif %} outside collaborators in your organization have two-factor authentication enabled{% ifversion fpt or ghec %}, as well as enforcing that they have secure methods configured {% endif %}. For more information, see "[AUTOTITLE](/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/requiring-two-factor-authentication-in-your-organization)." {% data reusables.profile.access_org %} {% data reusables.user-settings.access_org %} {% data reusables.organizations.people %} -1. To view organization members, including organization owners, who have enabled or disabled two-factor authentication, on the right, select **2FA**, then click **Enabled** or **Disabled**. {% ifversion mandatory-2fa-required-overview %}Additionally, you can view which members are required to enable two-factor authentication by clicking **Required**.

- {% data reusables.two_fa.mandatory-2fa-contributors-2023 %}{% endif %}{% ifversion mandatory-2fa-required-overview %} +{% ifversion fpt or ghec %} - ![Screenshot of the list of organization members. A dropdown menu, labeled "2FA", is expanded and outlined in orange.](/assets/images/help/2fa/filter-org-members-by-2fa-required.png){% else %} +1. To view the two-factor authentication security levels of organization members, including organization owners, on the right, select **Two-factor authentication**, then click **Secure**, **Insecure**, or **Disabled**. - ![Screenshot of the list of organization members. A dropdown menu, labeled "2FA", is expanded and outlined in orange.](/assets/images/help/2fa/filter-org-members-by-2fa.png){% endif %} + ![Screenshot of the list of organization members. A dropdown menu, labeled "Two-factor authentication", is expanded and outlined in orange.](/assets/images/help/2fa/filter-org-members-by-2fa.png) 1. To view outside collaborators in your organization, in the "Organization permissions" sidebar, click **Outside collaborators**. -1. To view which outside collaborators have enabled or disabled two-factor authentication, above the list of outside collaborators, select the **2FA** dropdown menu, then click **Enabled** or **Disabled**. {% ifversion mandatory-2fa-required-overview %}Additionally, you can view which members are required to enable two-factor authentication by clicking **Required**.{% endif %}{% ifversion mandatory-2fa-required-overview %} +1. To view which outside collaborators have secure, insecure, or disabled two-factor authentication, above the list of outside collaborators, select the **Two-factor authentication** dropdown menu, then click **Secure**, **Insecure**, or **Disabled**. - ![Screenshot of the list of outside collaborators. A dropdown menu, labeled "2FA", is expanded and outlined in orange.](/assets/images/help/2fa/filter-org-collaborator-by-2fa-required.png){% else %} +{% else %} - ![Screenshot of the list of outside collaborators. A dropdown menu, labeled "2FA", is expanded and outlined in orange.](/assets/images/help/2fa/filter-outside-collaborators-by-2fa.png){% endif %} +1. To view organization members, including organization owners, who have enabled or disabled two-factor authentication, on the right, select **2FA**, then click **Enabled** or **Disabled**. + +![Screenshot of the list of organization members. A dropdown menu, labeled "2FA", is expanded and outlined in orange.](/assets/images/help/2fa/legacy-filter-org-members-by-2fa.png) + +1. To view outside collaborators in your organization, in the "Organization permissions" sidebar, click **Outside collaborators**. +1. To view which outside collaborators have enabled or disabled two-factor authentication, above the list of outside collaborators, select the **2FA** dropdown menu, then click **Enabled** or **Disabled**. + +{% endif %} ## Further reading diff --git a/content/organizations/managing-organization-settings/disabling-project-boards-in-your-organization.md b/content/organizations/managing-organization-settings/disabling-project-boards-in-your-organization.md index 8cde2773ee54..e4adf0cb2689 100644 --- a/content/organizations/managing-organization-settings/disabling-project-boards-in-your-organization.md +++ b/content/organizations/managing-organization-settings/disabling-project-boards-in-your-organization.md @@ -28,7 +28,7 @@ When {% data variables.projects.projects_v1_boards %} are disabled, you will no {% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} -1. In the "Code planning, and automation" section of the sidebar, click **{% octicon "table" aria-label="The table icon" %} Projects**. +1. In the "Code planning, and automation" section of the sidebar, click **{% octicon "table" aria-hidden="true" %} Projects**. 1. Decide whether to disable {% data variables.projects.projects_v2_and_v1 %} in your organization. Then, under "Projects": * To disable {% data variables.projects.projects_v2_and_v1 %}, deselect **Enable Projects for the organization**. * To enable {% data variables.projects.projects_v2_and_v1 %} in the organization, select **Enable Projects for the organization**. @@ -44,7 +44,7 @@ You can control whether organization members can create {% data variables.projec {% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} -1. In the "Code planning, and automation" section of the sidebar, click **{% octicon "table" aria-label="The table icon" %} Projects**. +1. In the "Code planning, and automation" section of the sidebar, click **{% octicon "table" aria-hidden="true" %} Projects**. 1. Decide whether to allow members to create {% data variables.projects.projects_v1_boards %} in repositories in your organization. Then, under "Projects (classic) only": * To enable {% data variables.projects.projects_v1_boards %} in repositories, select **Allow members to enable {% data variables.product.prodname_projects_v1_caps %} for all repositories**. * To disable {% data variables.projects.projects_v1_boards %} in repositories, deselect **Allow members to enable {% data variables.product.prodname_projects_v1_caps %} for all repositories**. 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 f247e56b4474..d8db826d4f3e 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 @@ -110,7 +110,7 @@ If you need to amend the message for multiple commits or an older commit, you ca 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. +For more information on interactive rebase, see [Interactive mode](https://git-scm.com/docs/git-rebase#_interactive_mode) in the Git manual. {% tip %} diff --git a/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/why-are-my-commits-linked-to-the-wrong-user.md b/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/why-are-my-commits-linked-to-the-wrong-user.md index 542f88ba203a..55e95263beec 100644 --- a/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/why-are-my-commits-linked-to-the-wrong-user.md +++ b/content/pull-requests/committing-changes-to-your-project/troubleshooting-commits/why-are-my-commits-linked-to-the-wrong-user.md @@ -20,8 +20,8 @@ shortTitle: Linked to wrong user If your commits are linked to another user, that means the email address in your local Git configuration settings is connected to that user's account on {% data variables.product.product_name %}. In this case, you can change the email in your local Git configuration settings and add the new email address to your account on {% data variables.location.product_location %} account to link future commits to your account. -1. To change the email address in your local Git configuration, follow the steps in "[AUTOTITLE](/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address#setting-your-commit-email-address-in-git)". If you work on multiple machines, you will need to change this setting on each one. -1. Add the email address from step 2 to your account settings by following the steps in "[AUTOTITLE](/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/adding-an-email-address-to-your-github-account)". +1. To change the email address in your local Git configuration, follow the steps in "[AUTOTITLE](/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address#setting-your-commit-email-address-in-git)." If you work on multiple machines, you will need to change this setting on each one. +1. Add the email address from step 2 to your account settings by following the steps in "[AUTOTITLE](/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/adding-an-email-address-to-your-github-account)." Commits you make from this point forward will be linked to your account. 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 da22e21a2182..e2fac499f6db 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 @@ -30,7 +30,7 @@ Organizational rulesets that apply to branches of a repository will no longer al {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.navigate-to-branches %} -1. Next to the branch you want to rename, select the {% octicon "kebab-horizontal" aria-label="More" %} dropdown menu, then click **{% octicon "pencil" aria-label="Rename branch" %} Rename branch**. +1. Next to the branch you want to rename, select the {% octicon "kebab-horizontal" aria-label="More" %} dropdown menu, then click **{% octicon "pencil" aria-hidden="true" %} Rename branch**. 1. Type a new name for the branch. 1. Review the information about local environments, then click **Rename branch**. diff --git a/content/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets.md b/content/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets.md index 441c25cd0c9f..bd923f48de8e 100644 --- a/content/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets.md +++ b/content/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets.md @@ -118,7 +118,7 @@ If someone chooses the **Request changes** option in a review, then that person {% data reusables.repositories.review-policy-overlapping-commits %} -Optionally, you can choose to dismiss stale pull request approvals when commits are pushed that affect the diff in the pull request. {% data variables.product.company_short %} records the state of the diff at the point when a pull request is approved. This state represents the set of changes that the reviewer approved. If the diff changes from this state (for example, because a contributor pushes new changes to the pull request branch or clicks **Update branch**, or because a related pull request is merged into the target branch), the approving review is dismissed as stale, and the pull request cannot be merged until someone approves the work again. For information about the target branch branch, see "[AUTOTITLE](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)." +Optionally, you can choose to dismiss stale pull request approvals when commits are pushed that affect the diff in the pull request. {% data variables.product.company_short %} records the state of the diff at the point when a pull request is approved. This state represents the set of changes that the reviewer approved. If the diff changes from this state (for example, because a contributor pushes new changes to the pull request branch or clicks **Update branch**, or because a related pull request is merged into the target branch), the approving review is dismissed as stale, and the pull request cannot be merged until someone approves the work again. For information about the target branch, see "[AUTOTITLE](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)." Optionally, you can choose to require reviews from code owners. If you do, any pull request that modifies content with a code owner must be approved by that code owner before the pull request can be merged into the protected branch. Note that if code has multiple owners, an approval from _any_ of the code owners will be sufficient to meet this requirement. For more information, see "[AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners)." diff --git a/content/repositories/working-with-files/using-files/downloading-source-code-archives.md b/content/repositories/working-with-files/using-files/downloading-source-code-archives.md index 2f12ff919870..e3929bdd20bf 100644 --- a/content/repositories/working-with-files/using-files/downloading-source-code-archives.md +++ b/content/repositories/working-with-files/using-files/downloading-source-code-archives.md @@ -35,7 +35,7 @@ You can download the source code archives in three ways. {% data reusables.repositories.navigate-to-repo %} {% data reusables.repositories.releases %} 1. At the top of the Releases page, click **Tags**. -1. To download the source code, click **{% octicon "file-zip" aria-label="The ZIP icon" %} zip** or **{% octicon "file-zip" aria-label="The ZIP icon" %} tar.gz**. +1. To download the source code, click **{% octicon "file-zip" aria-hidden="true" %} zip** or **{% octicon "file-zip" aria-hidden="true" %} tar.gz**. ![Screenshot of the "Tags" page of a repository. The zip and tar.gz options are outlined in dark orange.](/assets/images/help/repository/tags-download-zip-targz.png) diff --git a/content/repositories/working-with-files/using-files/navigating-code-on-github.md b/content/repositories/working-with-files/using-files/navigating-code-on-github.md index d7ca7323002a..a437e159a56a 100644 --- a/content/repositories/working-with-files/using-files/navigating-code-on-github.md +++ b/content/repositories/working-with-files/using-files/navigating-code-on-github.md @@ -79,8 +79,8 @@ Symbol search is a feature of code search. For more information, see "[AUTOTITLE * To search for a symbol in the repository as a whole, in the symbols pane, click **Search for this symbol in this repository**. To search for a symbol in all repositories on {% data variables.product.prodname_dotcom %}, click **all repositories**. 1. To navigate between references to a symbol, click {% octicon "chevron-down" aria-label="The downwards-facing chevron icon" %} or {% octicon "chevron-up" aria-label="The upwards-facing chevron icon" %}. -1. To navigate to a specific reference to a symbol, click a result of the symbol search under **{% octicon "chevron-down" aria-label="The downwards-facing chevron icon" %} In this file**. -1. To exit the search for a specific symbol, click **{% octicon "arrow-left" aria-label="The left arrow icon" %} All Symbols**. +1. To navigate to a specific reference to a symbol, click a result of the symbol search under **{% octicon "chevron-down" aria-hidden="true" %} In this file**. +1. To exit the search for a specific symbol, click **{% octicon "arrow-left" aria-hidden="true" %} All Symbols**. {% endif %} ## Jumping to the definition of a function or method diff --git a/content/rest/enterprise-admin/index.md b/content/rest/enterprise-admin/index.md index f1ff203b803f..8511c082c1b4 100644 --- a/content/rest/enterprise-admin/index.md +++ b/content/rest/enterprise-admin/index.md @@ -44,7 +44,13 @@ autogenerated: rest ## Endpoint URLs -These endpoints{% ifversion ghes %}—except [Management Console](#management-console) endpoints—{% endif %} are prefixed with the following URL: +These endpoints +{% ifversion management-console-manage-ghes-parity -%} +—except Manage GitHub Enterprise Server API— +{%- else -%} +—except Management Console API— +{%- endif -%} + are prefixed with the following URL: ```shell {% data variables.product.rest_url %} @@ -55,7 +61,12 @@ When endpoints include `{enterprise}`, replace `{enterprise}` with the handle fo {% endif %} {% ifversion ghes %} -[Management Console](#management-console) endpoints are only prefixed with a hostname: +{% ifversion management-console-manage-ghes-parity -%} +Manage GitHub Enterprise Server API +{%- else -%} +Management Console API +{%- endif %} +endpoints are only prefixed with a hostname: ```shell http(s)://HOSTNAME/ @@ -70,7 +81,13 @@ Your {% data variables.product.product_name %} installation's API endpoints acce OAuth tokens must have the `site_admin` [OAuth scope](/apps/oauth-apps/building-oauth-apps/scopes-for-oauth-apps#available-scopes) when used with these endpoints. -These endpoints are only accessible to authenticated {% data variables.product.product_name %} site administrators, except for the [Management Console](/rest/enterprise-admin/management-console) endpoints, which requires the [Management Console password](/admin/configuration/administering-your-instance-from-the-management-console). +These endpoints are only accessible to authenticated {% data variables.product.product_name %} site administrators, except for the +{% ifversion management-console-manage-ghes-parity -%} +[AUTOTITLE](/rest/enterprise-admin/manage-ghes), +{%- else -%} +[AUTOTITLE](/rest/enterprise-admin/management-console), +{%- endif %} +which requires the [Management Console password](/admin/configuration/administering-your-instance-from-the-management-console). {% data reusables.enterprise_management_console.api-deprecation %} diff --git a/content/rest/enterprise-admin/management-console.md b/content/rest/enterprise-admin/management-console.md index 1256a544f454..131c7df9a90b 100644 --- a/content/rest/enterprise-admin/management-console.md +++ b/content/rest/enterprise-admin/management-console.md @@ -6,7 +6,7 @@ intro: >- Use the REST API to manage your {% data variables.product.product_name %} installation. versions: # DO NOT MANUALLY EDIT. CHANGES WILL BE OVERWRITTEN BY A 🤖 - ghes: '*' + ghes: <=3.14 topics: - API autogenerated: rest diff --git a/content/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax.md b/content/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax.md index 12b65f3d0c85..ff5b2994d838 100644 --- a/content/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax.md +++ b/content/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax.md @@ -104,7 +104,7 @@ If your search query contains a qualifier that requires a username, such as `use | `QUALIFIER:USERNAME` | [`author:nat`](https://github.com/search?q=author%3Anat&type=Commits) matches commits authored by @nat | | `QUALIFIER:@me` | [`is:issue assignee:@me`](https://github.com/search?q=is%3Aissue+assignee%3A%40me&type=Issues) matches issues assigned to the person viewing the results | | {% ifversion copilot %} | -| `QUALIFIER:@copilot` | [`is:pr reviewed-by:@copilot`](https://github.com/search?q=is:pr+reviewed-by:@copilot&type=pullrequests) matches pull requests reviewed by {% data variables.product.prodname_copilot_short %}. For more information, see see "[AUTOTITLE](/copilot/using-github-copilot/code-review/using-copilot-code-review)." | +| `QUALIFIER:@copilot` | [`is:pr reviewed-by:@copilot`](https://github.com/search?q=is:pr+reviewed-by:@copilot&type=pullrequests) matches pull requests reviewed by {% data variables.product.prodname_copilot_short %}. For more information, see "[AUTOTITLE](/copilot/using-github-copilot/code-review/using-copilot-code-review)." | | {% endif %} | You can only use `@me` {% ifversion copilot %} or `@copilot` {% endif %} with a qualifier, and not as a search term, such as `@me main.workflow`. diff --git a/content/sponsors/getting-started-with-github-sponsors/navigating-your-sponsors-dashboard.md b/content/sponsors/getting-started-with-github-sponsors/navigating-your-sponsors-dashboard.md index a24a7b1f6b4d..e5f14387d2b6 100644 --- a/content/sponsors/getting-started-with-github-sponsors/navigating-your-sponsors-dashboard.md +++ b/content/sponsors/getting-started-with-github-sponsors/navigating-your-sponsors-dashboard.md @@ -61,13 +61,13 @@ You can also choose to attribute your paid sponsorships to another account by li {% data reusables.organizations.sponsors-dashboard %} {% data reusables.organizations.navigate-to-sponsoring %} -1. From the left sidebar, click **{% octicon "gear" aria-label="The Gear icon" %} Settings**. +1. From the left sidebar, click **{% octicon "gear" aria-hidden="true" %} Settings**. 1. Under "Sponsorship log", click **log**. ### Link your sponsorships to another account {% data reusables.organizations.sponsors-dashboard %} {% data reusables.organizations.navigate-to-sponsoring %} -1. From the left sidebar, click **{% octicon "gear" aria-label="The Gear icon" %} Settings**. +1. From the left sidebar, click **{% octicon "gear" aria-hidden="true" %} Settings**. 1. Select the **Linked account** dropdown and click the account to use. 1. Click **Link account** to confirm your selection. diff --git a/content/sponsors/sponsoring-open-source-contributors/paying-for-github-sponsors-by-invoice.md b/content/sponsors/sponsoring-open-source-contributors/paying-for-github-sponsors-by-invoice.md index 8ba40e35ba26..a0e002abfa68 100644 --- a/content/sponsors/sponsoring-open-source-contributors/paying-for-github-sponsors-by-invoice.md +++ b/content/sponsors/sponsoring-open-source-contributors/paying-for-github-sponsors-by-invoice.md @@ -73,7 +73,7 @@ You can view your {% data variables.product.company_short %} Invoiced Sponsor Ag 1. Navigate to the organization. {% data reusables.organizations.navigate-to-sponsoring %} -1. In the sidebar, click **{% octicon "graph" aria-label="The graph icon" %} Insights**. +1. In the sidebar, click **{% octicon "graph" aria-hidden="true" %} Insights**. 1. Under your balance, click **{% data variables.product.company_short %} Invoiced Sponsor Agreement** to view the agreement. ## Understanding your {% data variables.product.prodname_sponsors %} invoice diff --git a/data/features/dependabot-updates-composerv1-closing-down.yml b/data/features/dependabot-updates-composerv1-closing-down.yml new file mode 100644 index 000000000000..bf8af2c8da8c --- /dev/null +++ b/data/features/dependabot-updates-composerv1-closing-down.yml @@ -0,0 +1,5 @@ +# Reference: Issue #15951 - Deprecation notice - Dependabot updates ceases supporting Composer v1 [Deprecation] +versions: + fpt: '*' + ghec: '*' + ghes: '>= 3.15' diff --git a/data/release-notes/enterprise-server/3-14/2.yml b/data/release-notes/enterprise-server/3-14/2.yml index 8d211f405120..7a7f763aa178 100644 --- a/data/release-notes/enterprise-server/3-14/2.yml +++ b/data/release-notes/enterprise-server/3-14/2.yml @@ -82,3 +82,9 @@ sections: {% data reusables.release-notes.2024-11-ghe-repl-promote-primary-down %} [Updated: 2024-11-13] + + deprecations: + - | + The option to "copy Storage settings from Actions" in the Management Console ("GitHub Packages" > "Packages Storage Settings") has been removed. [Updated: 2024-11-20] + + diff --git a/data/release-notes/enterprise-server/3-15/0-rc1.yml b/data/release-notes/enterprise-server/3-15/0-rc1.yml index f78b6c7d0aa5..b68f6559a590 100644 --- a/data/release-notes/enterprise-server/3-15/0-rc1.yml +++ b/data/release-notes/enterprise-server/3-15/0-rc1.yml @@ -226,6 +226,8 @@ sections: # https://github.com/github/releases/issues/4878 - | The Management Console API has been removed. The Manage GHES API reached feature parity with the Management Console API in {% data variables.product.prodname_ghe_server %} version 3.12. For information about the Manage GHES API, see "[AUTOTITLE](/rest/enterprise-admin/manage-ghes)." + - | + The option to "copy Storage settings from Actions" in the Management Console ("GitHub Packages" > "Packages Storage Settings") has been removed. [Updated: 2024-11-20] errata: # https://github.com/github/docs-content/issues/16489 diff --git a/data/reusables/actions/actions-group-concurrency.md b/data/reusables/actions/actions-group-concurrency.md index 55ec220e27e0..e04d76c9468c 100644 --- a/data/reusables/actions/actions-group-concurrency.md +++ b/data/reusables/actions/actions-group-concurrency.md @@ -1,6 +1,6 @@ This means that there can be at most one running and one pending job in a concurrency group at any time. When a concurrent job or workflow is queued, if another job or workflow using the same concurrency group in the repository is in progress, the queued job or workflow will be `pending`. Any existing `pending` job or workflow in the same concurrency group, if it exists, will be canceled and the new queued job or workflow will take its place. -To also cancel any currently running job or workflow in the same concurrency group, specify `cancel-in-progress: true`. To conditionally cancel currently running jobs or workflows in the same concurrency group, you can specify `cancel-in-progress` as an expression with any of the allowed expression contexts. +To also cancel any currently running job or workflow in the same concurrency group, specify `cancel-in-progress: true`. To conditionally cancel currently running jobs or workflows in the same concurrency group, you can specify `cancel-in-progress` as an expression with any of the allowed expression contexts. > [!NOTE] > * The concurrency group name is case insensitive. For example, `prod` and `Prod` will be treated as the same concurrency group. diff --git a/data/reusables/actions/add-hosted-runner.md b/data/reusables/actions/add-hosted-runner.md index c7d7c234852c..678247bf8699 100644 --- a/data/reusables/actions/add-hosted-runner.md +++ b/data/reusables/actions/add-hosted-runner.md @@ -1,4 +1,4 @@ -1. Click **New runner**, then click **{% octicon "mark-github" aria-label="New hosted runner" %} New {% data variables.product.prodname_dotcom %}-hosted runner**. +1. Click **New runner**, then click **{% octicon "mark-github" aria-hidden="true" %} New {% data variables.product.prodname_dotcom %}-hosted runner**. 1. Complete the required details to configure your new runner: * **Name**: Enter a name for your new runner. For easier identification, this should indicate its hardware and operating configuration, such as `ubuntu-20.04-16core`. @@ -6,7 +6,7 @@ * **Image**: Choose an image from the available options. Once you've selected an image, you will be able to choose a specific size. * **GitHub-owned**: For images managed by GitHub, select an image under this tab. * **Partner**: For images managed by a partner, select an image under this tab. Windows 11 desktop and GPU-optimized images are located under this tab. - * **Size**: Choose a hardware configuration from the list of available options. The available sizes depend on the image that you selected in a previous step. For GPU runners, select a size under the **GPU-powered** tab. + * **Size**: Choose a hardware configuration from the list of available options. The available sizes depend on the image that you selected in a previous step. For GPU runners, select a size under the **GPU-powered** tab. * **Maximum concurrency**: Choose the maximum number of jobs that can be active at any time. * **Runner group**: Choose the group that your runner will be a member of. This group will host multiple instances of your runner, as they scale up and down to suit demand. {% ifversion ghec %} * **Networking**: Choose whether static IP address ranges will be assigned to instances of the {% data variables.actions.hosted_runner %}. You can use up to 10 {% data variables.actions.hosted_runner %}s with static IP addresses in total. {% endif %} diff --git a/data/reusables/actions/azure-vnet-configure-azure-resources-script.md b/data/reusables/actions/azure-vnet-configure-azure-resources-script.md index 2fb6fbd6737e..2288318f9900 100644 --- a/data/reusables/actions/azure-vnet-configure-azure-resources-script.md +++ b/data/reusables/actions/azure-vnet-configure-azure-resources-script.md @@ -35,6 +35,7 @@ export SUBNET_NAME=YOUR_SUBNET_NAME export NSG_NAME=YOUR_NSG_NAME export NETWORK_SETTINGS_RESOURCE_NAME=YOUR_NETWORK_SETTINGS_RESOURCE_NAME export DATABASE_ID=YOUR_DATABASE_ID +export API_VERSION=2024-04-02 # These are the default values. You can adjust your address and subnet prefixes. export ADDRESS_PREFIX=10.0.0.0/16 @@ -70,7 +71,7 @@ echo Delegate subnet to GitHub.Network/networkSettings and apply NSG rules echo echo Create network settings resource $NETWORK_SETTINGS_RESOURCE_NAME -. az resource create --resource-group $RESOURCE_GROUP_NAME --name $NETWORK_SETTINGS_RESOURCE_NAME --resource-type GitHub.Network/networkSettings --properties "{ \"location\": \"$AZURE_LOCATION\", \"properties\" : { \"subnetId\": \"/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP_NAME/providers/Microsoft.Network/virtualNetworks/$VNET_NAME/subnets/$SUBNET_NAME\", \"businessId\": \"$DATABASE_ID\" }}" --is-full-object --output table --query "{GitHubId:tags.GitHubId, name:name}" --api-version 2024-04-02 +. az resource create --resource-group $RESOURCE_GROUP_NAME --name $NETWORK_SETTINGS_RESOURCE_NAME --resource-type GitHub.Network/networkSettings --properties "{ \"location\": \"$AZURE_LOCATION\", \"properties\" : { \"subnetId\": \"/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP_NAME/providers/Microsoft.Network/virtualNetworks/$VNET_NAME/subnets/$SUBNET_NAME\", \"businessId\": \"$DATABASE_ID\" }}" --is-full-object --output table --query "{GitHubId:tags.GitHubId, name:name}" --api-version $API_VERSION echo echo To clean up and delete resources run the following command: diff --git a/data/reusables/actions/azure-vnet-deleting-a-subnet.md b/data/reusables/actions/azure-vnet-deleting-a-subnet.md index 936b6e49fb82..f6e4abef9802 100644 --- a/data/reusables/actions/azure-vnet-deleting-a-subnet.md +++ b/data/reusables/actions/azure-vnet-deleting-a-subnet.md @@ -19,7 +19,7 @@ To delete the network settings resource, the network configuration that uses it ```bash copy az account set --subscription $SUBSCRIPTION_ID - az resource delete -g $RESOURCE_GROUP_NAME --name $NETWORK_SETTINGS_RESOURCE_NAME --resource-type 'GitHub.Network/networkSettings' --api-version '2023-11-01-preview' + az resource delete -g $RESOURCE_GROUP_NAME --name $NETWORK_SETTINGS_RESOURCE_NAME --resource-type 'GitHub.Network/networkSettings' --api-version $API_VERSION ``` 1. Delete the subnet in Azure. For more information, see [Delete a subnet](https://learn.microsoft.com/en-us/azure/virtual-network/virtual-network-manage-subnet?tabs=azure-portal#delete-a-subnet) on Microsoft Learn. diff --git a/data/reusables/actions/azure-vnet-procedures-prereqs.md b/data/reusables/actions/azure-vnet-procedures-prereqs.md index 72a31810ddbf..3e3dfa526d1a 100644 --- a/data/reusables/actions/azure-vnet-procedures-prereqs.md +++ b/data/reusables/actions/azure-vnet-procedures-prereqs.md @@ -15,7 +15,7 @@ You will use a script to automate configuring your Azure resources. If you use {% data variables.enterprise.data_residency %}, in the `AllowOutBoundGitHub` section, you must also include the egress IP ranges for {% data variables.enterprise.data_residency_site %}. See "[AUTOTITLE](/admin/data-residency/network-details-for-ghecom#ranges-for-egress-traffic)." > [!NOTE] - > As an alternative to using the following file, to allow {% data variables.product.prodname_actions %} to communicate with the runners, you can allow the same firewall domains that are required for communication between self-hosted runners and {% data variables.product.product_name %}. For more information, see "[AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners#communication-between-self-hosted-runners-and-github-enterprise-cloud)." To determine the appropriate subnet IP address range, we recommend adding a 30% buffer to the maximum job concurrency you anticipate. For instance, if your network configuration's runners are set to a maximum job concurrency of 300, it's recommended to utilize a subnet IP address range that can accommodate at least 390 runners. This buffer helps ensure that your network can handle unexpected increases in VM needs to meet job concurrency without running out of IP addresses. + > As an alternative to using the following file, to allow {% data variables.product.prodname_actions %} to communicate with the runners, you can allow the same firewall domains that are required for communication between self-hosted runners and {% data variables.product.product_name %}. For more information, see "[AUTOTITLE](/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners#communication-between-self-hosted-runners-and-github-enterprise-cloud)." To determine the appropriate subnet IP address range, we recommend adding a 30% buffer to the maximum job concurrency you anticipate. For instance, if your network configuration's runners are set to a maximum job concurrency of 300, it's recommended to utilize a subnet IP address range that can accommodate at least 390 runners. This buffer helps ensure that your network can handle unexpected increases in VM needs to meet job concurrency without running out of IP addresses. ```bicep copy @description('NSG for outbound rules') diff --git a/data/reusables/actions/expression-syntax-if.md b/data/reusables/actions/expression-syntax-if.md index db40c5764d41..fef2631fd775 100644 --- a/data/reusables/actions/expression-syntax-if.md +++ b/data/reusables/actions/expression-syntax-if.md @@ -1,6 +1,6 @@ When you use expressions in an `if` conditional, you can, optionally, omit the {% raw %}`${{ }}`{% endraw %} expression syntax because {% data variables.product.prodname_actions %} automatically evaluates the `if` conditional as an expression. However, this exception does not apply everywhere. -You must always use the {% raw %}`${{ }}`{% endraw %} expression syntax or escape with `''`, `""`, or `()` when the expression starts with `!`, since `!` is reserved notation in YAML format. For example: +You must always use the {% raw %}`${{ }}`{% endraw %} expression syntax or escape with `''`, `""`, or `()` when the expression starts with `!`, since `!` is reserved notation in YAML format. For example: {% raw %} diff --git a/data/reusables/actions/github-hosted-runners-navigate-to-repo-org-enterprise.md b/data/reusables/actions/github-hosted-runners-navigate-to-repo-org-enterprise.md index 32a66dc1aa1c..ce5d1a319223 100644 --- a/data/reusables/actions/github-hosted-runners-navigate-to-repo-org-enterprise.md +++ b/data/reusables/actions/github-hosted-runners-navigate-to-repo-org-enterprise.md @@ -1,10 +1,10 @@ {% ifversion fpt %} 1. Navigate to the main page of the organization or repository. -1. Click **{% octicon "gear" aria-label="The Settings gear" %} Settings**. +1. Click **{% octicon "gear" aria-hidden="true" %} Settings**. 1. In the left sidebar, click **Actions**, then click **Runners**. {% elsif ghec %} 1. Navigate to your runner settings: - * **In an organization or repository**: Navigate to the main page, then click **{% octicon "gear" aria-label="The Settings gear" %} Settings**. + * **In an organization or repository**: Navigate to the main page, then click **{% octicon "gear" aria-hidden="true" %} Settings**. * **If using an enterprise account**: Navigate to your enterprise account by clicking your profile photo in the top-right corner of {% data variables.product.github %}, then clicking **Your enterprises**, then clicking the enterprise. 1. Navigate to the {% data variables.product.prodname_actions %} settings: * **In an organization or repository**: Click **Actions** in the left sidebar, then click **Runners**. diff --git a/data/reusables/actions/jobs/section-assigning-permissions-to-jobs.md b/data/reusables/actions/jobs/section-assigning-permissions-to-jobs.md index ad34a787f0a0..d039bf637c7e 100644 --- a/data/reusables/actions/jobs/section-assigning-permissions-to-jobs.md +++ b/data/reusables/actions/jobs/section-assigning-permissions-to-jobs.md @@ -1,5 +1,5 @@ You can use `permissions` to modify the default permissions granted to the `GITHUB_TOKEN`, adding or removing access as required, so that you only allow the minimum required access. For more information, see "[AUTOTITLE](/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token)." -You can use `permissions` either as a top-level key, to apply to all jobs in the workflow, or within specific jobs. When you add the `permissions` key within a specific job, all actions and run commands within that job that use the `GITHUB_TOKEN` gain the access rights you specify. For more information, see [`jobs..permissions`](/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idpermissions). +You can use `permissions` either as a top-level key, to apply to all jobs in the workflow, or within specific jobs. When you add the `permissions` key within a specific job, all actions and run commands within that job that use the `GITHUB_TOKEN` gain the access rights you specify. For more information, see [`jobs..permissions`](/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idpermissions). {% data reusables.actions.github-token-scope-descriptions %} diff --git a/data/reusables/actions/jobs/section-using-environments-for-jobs.md b/data/reusables/actions/jobs/section-using-environments-for-jobs.md index 66015f307a7d..06492566e15a 100644 --- a/data/reusables/actions/jobs/section-using-environments-for-jobs.md +++ b/data/reusables/actions/jobs/section-using-environments-for-jobs.md @@ -37,7 +37,7 @@ environment: {% endraw %} -The value of `name` can be an expression. Allowed expression contexts: [`github`](/actions/learn-github-actions/contexts#github-context), [`inputs`](/actions/learn-github-actions/contexts#inputs-context), [`vars`](/actions/learn-github-actions/contexts#vars-context), [`needs`](/actions/learn-github-actions/contexts#needs-context), [`strategy`](/actions/learn-github-actions/contexts#strategy-context), and [`matrix`](/actions/learn-github-actions/contexts#matrix-context). For more information about expressions, see "[AUTOTITLE](/actions/learn-github-actions/expressions)." +The value of `name` can be an expression. Allowed expression contexts: [`github`](/actions/learn-github-actions/contexts#github-context), [`inputs`](/actions/learn-github-actions/contexts#inputs-context), [`vars`](/actions/learn-github-actions/contexts#vars-context), [`needs`](/actions/learn-github-actions/contexts#needs-context), [`strategy`](/actions/learn-github-actions/contexts#strategy-context), and [`matrix`](/actions/learn-github-actions/contexts#matrix-context). For more information about expressions, see "[AUTOTITLE](/actions/learn-github-actions/expressions)." ### Example: Using an expression as environment name diff --git a/data/reusables/actions/runner-groups-org-navigation.md b/data/reusables/actions/runner-groups-org-navigation.md index 3fe14315d3c9..92291984f152 100644 --- a/data/reusables/actions/runner-groups-org-navigation.md +++ b/data/reusables/actions/runner-groups-org-navigation.md @@ -1,3 +1,3 @@ 1. Navigate to the main page of the organization where your runner groups are located. -1. Click **{% octicon "gear" aria-label="The Settings gear" %} Settings**. +1. Click **{% octicon "gear" aria-hidden="true" %} Settings**. {% data reusables.organizations.settings-sidebar-actions-runner-groups %} diff --git a/data/reusables/actions/self-hosted-runner-navigate-repo-and-org.md b/data/reusables/actions/self-hosted-runner-navigate-repo-and-org.md index 533f9c6a8bfa..242e3d822cb1 100644 --- a/data/reusables/actions/self-hosted-runner-navigate-repo-and-org.md +++ b/data/reusables/actions/self-hosted-runner-navigate-repo-and-org.md @@ -1 +1 @@ -1. In your organization or repository, navigate to the main page and click **{% octicon "gear" aria-label="The Settings gear" %} Settings**. +1. In your organization or repository, navigate to the main page and click **{% octicon "gear" aria-hidden="true" %} Settings**. diff --git a/data/reusables/actions/self-hosted-runner-navigate-to-org.md b/data/reusables/actions/self-hosted-runner-navigate-to-org.md index dfd6534605b3..1ed444c9a905 100644 --- a/data/reusables/actions/self-hosted-runner-navigate-to-org.md +++ b/data/reusables/actions/self-hosted-runner-navigate-to-org.md @@ -1,3 +1,3 @@ 1. Navigate to the main page of the organization where your self-hosted runner group is registered. -1. Click **{% octicon "gear" aria-label="The Settings gear" %} Settings**. +1. Click **{% octicon "gear" aria-hidden="true" %} Settings**. {% data reusables.organizations.settings-sidebar-actions-runners %} diff --git a/data/reusables/actions/self-hosted-runner-navigate-to-repo.md b/data/reusables/actions/self-hosted-runner-navigate-to-repo.md index 709d15f0f0bd..d0076c416f48 100644 --- a/data/reusables/actions/self-hosted-runner-navigate-to-repo.md +++ b/data/reusables/actions/self-hosted-runner-navigate-to-repo.md @@ -1,3 +1,3 @@ 1. Navigate to the main page of the repository where your self-hosted runner group is registered. -1. Click **{% octicon "gear" aria-label="The Settings gear" %} Settings**. +1. Click **{% octicon "gear" aria-hidden="true" %} Settings**. {% data reusables.organizations.settings-sidebar-actions-runners %} diff --git a/data/reusables/actions/workflow-basic-example-and-explanation.md b/data/reusables/actions/workflow-basic-example-and-explanation.md index 3062196a2e3a..bd18afd193fb 100644 --- a/data/reusables/actions/workflow-basic-example-and-explanation.md +++ b/data/reusables/actions/workflow-basic-example-and-explanation.md @@ -1,6 +1,6 @@ ## Creating an example workflow -{% data variables.product.prodname_actions %} uses YAML syntax to define the workflow. Each workflow is stored as a separate YAML file in your code repository, in a directory named `.github/workflows`. +{% data variables.product.prodname_actions %} uses YAML syntax to define the workflow. Each workflow is stored as a separate YAML file in your code repository, in a directory named `.github/workflows`. You can create an example workflow in your repository that automatically triggers a series of commands whenever code is pushed. In this workflow, {% data variables.product.prodname_actions %} checks out the pushed code, installs the [bats](https://www.npmjs.com/package/bats) testing framework, and runs a basic command to output the bats version: `bats -v`. @@ -38,7 +38,7 @@ name: learn-github-actions # Optional - The name for workflow runs generated from the workflow, which will appear in the list of workflow runs on your repository's "Actions" tab. This example uses an expression with the `github` context to display the username of the actor that triggered the workflow run. For more information, see "[AUTOTITLE](/actions/using-workflows/workflow-syntax-for-github-actions#run-name)." run-name: {% raw %}${{ github.actor }}{% endraw %} is learning GitHub Actions -# Specifies the trigger for this workflow. This example uses the `push` event, so a workflow run is triggered every time someone pushes a change to the repository or merges a pull request. This is triggered by a push to every branch; for examples of syntax that runs only on pushes to specific branches, paths, or tags, see "[AUTOTITLE](/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestpull_request_targetpathspaths-ignore)." +# Specifies the trigger for this workflow. This example uses the `push` event, so a workflow run is triggered every time someone pushes a change to the repository or merges a pull request. This is triggered by a push to every branch; for examples of syntax that runs only on pushes to specific branches, paths, or tags, see "[AUTOTITLE](/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestpull_request_targetpathspaths-ignore)." on: [push] # Groups together all the jobs that run in the `learn-github-actions` workflow. diff --git a/data/reusables/actions/workflows/run-on-specific-branches-or-tags1.md b/data/reusables/actions/workflows/run-on-specific-branches-or-tags1.md index 5a1fcf65ab26..f2b429913054 100644 --- a/data/reusables/actions/workflows/run-on-specific-branches-or-tags1.md +++ b/data/reusables/actions/workflows/run-on-specific-branches-or-tags1.md @@ -5,6 +5,6 @@ Use the `branches` filter when you want to include branch name patterns or when Use the `tags` filter when you want to include tag name patterns or when you want to both include and exclude tag names patterns. Use the `tags-ignore` filter when you only want to exclude tag name patterns. You cannot use both the `tags` and `tags-ignore` filters for the same event in a workflow. -If you define only `tags`/`tags-ignore` or only `branches`/`branches-ignore`, the workflow won't run for events affecting the undefined Git ref. If you define neither `tags`/`tags-ignore` or `branches`/`branches-ignore`, the workflow will run for events affecting either branches or tags. If you define both `branches`/`branches-ignore` and [`paths`/`paths-ignore`](/actions/using-workflows/workflow-syntax-for-github-actions#onpushpull_requestpull_request_targetpathspaths-ignore), the workflow will only run when both filters are satisfied. +If you define only `tags`/`tags-ignore` or only `branches`/`branches-ignore`, the workflow won't run for events affecting the undefined Git ref. If you define neither `tags`/`tags-ignore` or `branches`/`branches-ignore`, the workflow will run for events affecting either branches or tags. If you define both `branches`/`branches-ignore` and [`paths`/`paths-ignore`](/actions/using-workflows/workflow-syntax-for-github-actions#onpushpull_requestpull_request_targetpathspaths-ignore), the workflow will only run when both filters are satisfied. The `branches`, `branches-ignore`, `tags`, and `tags-ignore` keywords accept glob patterns that use characters like `*`, `**`, `+`, `?`, `!` and others to match more than one branch or tag name. If a name contains any of these characters and you want a literal match, you need to _escape_ each of these special characters with `\`. For more information about glob patterns, see the "[AUTOTITLE](/actions/using-workflows/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet)." diff --git a/data/reusables/actions/workflows/section-triggering-a-workflow-types.md b/data/reusables/actions/workflows/section-triggering-a-workflow-types.md index c1210c529758..05b719abc969 100644 --- a/data/reusables/actions/workflows/section-triggering-a-workflow-types.md +++ b/data/reusables/actions/workflows/section-triggering-a-workflow-types.md @@ -1,4 +1,4 @@ -Use `on..types` to define the type of activity that will trigger a workflow run. Most GitHub events are triggered by more than one type of activity. For example, the `label` is triggered when a label is `created`, `edited`, or `deleted`. The `types` keyword enables you to narrow down activity that causes the workflow to run. When only one activity type triggers a webhook event, the `types` keyword is unnecessary. +Use `on..types` to define the type of activity that will trigger a workflow run. Most GitHub events are triggered by more than one type of activity. For example, the `label` is triggered when a label is `created`, `edited`, or `deleted`. The `types` keyword enables you to narrow down activity that causes the workflow to run. When only one activity type triggers a webhook event, the `types` keyword is unnecessary. You can use an array of event `types`. For more information about each event and their activity types, see "[AUTOTITLE](/actions/using-workflows/events-that-trigger-workflows#available-events)." diff --git a/data/reusables/advanced-security/secret-scanning-add-custom-pattern-details.md b/data/reusables/advanced-security/secret-scanning-add-custom-pattern-details.md index 82e5c7999e08..4bbab8ffbe98 100644 --- a/data/reusables/advanced-security/secret-scanning-add-custom-pattern-details.md +++ b/data/reusables/advanced-security/secret-scanning-add-custom-pattern-details.md @@ -1,7 +1,7 @@ 1. Enter the details for your new custom pattern. You must at least provide the name for your pattern, and a regular expression for the format of your secret pattern. 1. In the "Pattern name" field, type a name for your pattern. - 1. In the "Secret format" field, type a regular expression for the format of your secret pattern.{% ifversion secret-scanning-custom-pattern-ai-generated %} Alternatively, you can use the generator to generate a regular expression for you. For more information, see "[AUTOTITLE](/code-security/secret-scanning/copilot-secret-scanning/generating-regular-expressions-for-custom-patterns-with-ai)."{% endif %} - 1. You can click **More options {% octicon "chevron-down" aria-label="down" %}** to provide other surrounding content or additional match requirements for the secret format. + 1. In the "Secret format" field, type a regular expression for the format of your secret pattern.{% ifversion secret-scanning-custom-pattern-ai-generated %} Alternatively, you can use the generator to generate a regular expression for you. For more information, see "[AUTOTITLE](/code-security/secret-scanning/copilot-secret-scanning/generating-regular-expressions-for-custom-patterns-with-copilot-secret-scanning)."{% endif %} + 1. You can click **More options {% octicon "chevron-down" aria-hidden="true" %}** to provide other surrounding content or additional match requirements for the secret format. 1. Provide a sample test string to make sure your configuration is matching the patterns you expect. ![Screenshot of a filled custom {% data variables.product.prodname_secret_scanning %} pattern form.](/assets/images/help/repository/secret-scanning-create-custom-pattern.png) diff --git a/data/reusables/advanced-security/secret-scanning-generate-regular-expression-custom-pattern.md b/data/reusables/advanced-security/secret-scanning-generate-regular-expression-custom-pattern.md index f75728e1a6f4..8824fed109e6 100644 --- a/data/reusables/advanced-security/secret-scanning-generate-regular-expression-custom-pattern.md +++ b/data/reusables/advanced-security/secret-scanning-generate-regular-expression-custom-pattern.md @@ -13,4 +13,4 @@ ![Screenshot of a filled custom {% data variables.product.prodname_secret_scanning %} pattern form for the generator to use.](/assets/images/help/repository/secret-scanning-use-regular-expression-generator.png) -1. You can click **More options {% octicon "chevron-down" aria-label="down" %}** to provide other surrounding content or additional match requirements for the secret format. {% data variables.product.prodname_dotcom %} will add the examples you typed in the sliding panel to the **Test string** field. +1. You can click **More options {% octicon "chevron-down" aria-hidden="true" %}** to provide other surrounding content or additional match requirements for the secret format. {% data variables.product.prodname_dotcom %} will add the examples you typed in the sliding panel to the **Test string** field. diff --git a/data/reusables/apps/github_app_auth_saml.md b/data/reusables/apps/github_app_auth_saml.md index 6fbef954d1fe..c8ad5734c866 100644 --- a/data/reusables/apps/github_app_auth_saml.md +++ b/data/reusables/apps/github_app_auth_saml.md @@ -1 +1 @@ -If a user reports that they cannot see resources owned by their organization after authorizing your {% data variables.product.prodname_github_app %} and the organization uses SAML SSO, instruct the user to start an active SAML session for their organization before reauthorizing. For more information, see {% ifversion ghec %}"[AUTOTITLE](/apps/using-github-apps/saml-and-github-apps)."{% else %}"[AUTOTITLE](/enterprise-cloud@latest/apps/using-github-apps/saml-and-github-apps)" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% endif %} +If a user reports that they cannot see resources owned by their organization after authorizing your {% data variables.product.prodname_github_app %} and the organization uses SAML SSO, instruct the user to start an active SAML session for their organization before reauthorizing. For more information, see {% ifversion ghec %}"[AUTOTITLE](/apps/using-github-apps/saml-and-github-apps)."{% else %}"[AUTOTITLE](/enterprise-cloud@latest/apps/using-github-apps/saml-and-github-apps)" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% endif %} diff --git a/data/reusables/audit_log/audit-log-action-categories.md b/data/reusables/audit_log/audit-log-action-categories.md index 45566fcad583..3ca3a35db895 100644 --- a/data/reusables/audit_log/audit-log-action-categories.md +++ b/data/reusables/audit_log/audit-log-action-categories.md @@ -40,7 +40,7 @@ | `config_entry` | Contains activities related to configuration settings. These events are only visible in the site admin audit log. | | {% endif %} | | `dependabot_alerts` | Contains organization-level configuration activities for {% data variables.product.prodname_dependabot_alerts %} in existing repositories. For more information, see "[AUTOTITLE](/code-security/dependabot/dependabot-alerts/about-dependabot-alerts)." | -| `dependabot_alerts_new_repos` | Contains organization-level configuration activities for {% data variables.product.prodname_dependabot_alerts %} in new repositories created in the organization. | +| `dependabot_alerts_new_repos` | Contains organization-level configuration activities for {% data variables.product.prodname_dependabot_alerts %} in new repositories created in the organization. | | `dependabot_repository_access` | Contains activities related to which private repositories in an organization {% data variables.product.prodname_dependabot %} is allowed to access. | | `dependabot_security_updates` | Contains organization-level configuration activities for {% data variables.product.prodname_dependabot_security_updates %} in existing repositories. For more information, see "[AUTOTITLE](/code-security/dependabot/dependabot-security-updates/configuring-dependabot-security-updates)." | | `dependabot_security_updates_new_repos` | Contains organization-level configuration activities for {% data variables.product.prodname_dependabot_security_updates %} for new repositories created in the organization. | @@ -126,7 +126,7 @@ | `pull_request_review_comment` | Contains activities related to pull request review comments. | | `repo` | Contains activities related to the repositories owned by an organization. | | {% ifversion fpt or ghec %} | -| `repository_advisory` | Contains repository-level activities related to security advisories in the {% data variables.product.prodname_advisory_database %}. For more information, see "[AUTOTITLE](/code-security/security-advisories/working-with-repository-security-advisories/about-repository-security-advisories)." | +| `repository_advisory` | Contains repository-level activities related to security advisories in the {% data variables.product.prodname_advisory_database %}. For more information, see "[AUTOTITLE](/code-security/security-advisories/working-with-repository-security-advisories/about-repository-security-advisories)." | | `repository_content_analysis` | Contains activities related to enabling or disabling data use for a private repository. For more information, see "[AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository#enabling-or-disabling-security-and-analysis-features-for-private-repositories)." | | `repository_dependency_graph` | Contains repository-level activities related to enabling or disabling the dependency graph for a {% ifversion fpt or ghec %}private {% endif %}repository. For more information, see "[AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph)." | | {% endif %} | diff --git a/data/reusables/audit_log/audit_log_sidebar_for_org_admins.md b/data/reusables/audit_log/audit_log_sidebar_for_org_admins.md index 5426b3187a3f..cd7f8f912b2e 100644 --- a/data/reusables/audit_log/audit_log_sidebar_for_org_admins.md +++ b/data/reusables/audit_log/audit_log_sidebar_for_org_admins.md @@ -1 +1 @@ -1. In the "Archive" section of the sidebar, click **{% octicon "log" aria-hidden="true" %} Logs**, then click **Audit log**. +1. In the "Archive" section of the sidebar, click **{% octicon "log" aria-hidden="true" %} Logs**, then click **Audit log**. diff --git a/data/reusables/audit_log/audit_log_sidebar_for_site_admins.md b/data/reusables/audit_log/audit_log_sidebar_for_site_admins.md index 8f559aa32123..ab12e111c51d 100644 --- a/data/reusables/audit_log/audit_log_sidebar_for_site_admins.md +++ b/data/reusables/audit_log/audit_log_sidebar_for_site_admins.md @@ -1 +1 @@ -1. In the "Archives" section of the sidebar, click **{% octicon "log" aria-hidden="true" %} Security log**. +1. In the "Archives" section of the sidebar, click **{% octicon "log" aria-hidden="true" %} Security log**. diff --git a/data/reusables/code-scanning/filter-non-default-branches.md b/data/reusables/code-scanning/filter-non-default-branches.md index 6d8d85de0bac..6addef7e07ee 100644 --- a/data/reusables/code-scanning/filter-non-default-branches.md +++ b/data/reusables/code-scanning/filter-non-default-branches.md @@ -1 +1 @@ -Please note that if you have filtered for alerts on a non-default branch, but the same alerts exist on the default branch, the alert page for any given alert will still only reflect the alert's status on the default branch, even if that status conflicts with the status on a non-default branch. For example, an alert that appears in the "Open" list in the summary of alerts for `branch-x` could show a status of "Fixed" on the alert page, if the alert is already fixed on the default branch. You can view the status of the alert for the branch you filtered on in the **Affected branches** section on the right side of the alert page. +Please note that if you have filtered for alerts on a non-default branch, but the same alerts exist on the default branch, the alert page for any given alert will still only reflect the alert's status on the default branch, even if that status conflicts with the status on a non-default branch. For example, an alert that appears in the "Open" list in the summary of alerts for `branch-x` could show a status of "Fixed" on the alert page, if the alert is already fixed on the default branch. You can view the status of the alert for the branch you filtered on in the **Affected branches** section on the right side of the alert page. diff --git a/data/reusables/code-scanning/licensing-note.md b/data/reusables/code-scanning/licensing-note.md index 504817a15a94..4272fa2fdf2d 100644 --- a/data/reusables/code-scanning/licensing-note.md +++ b/data/reusables/code-scanning/licensing-note.md @@ -3,6 +3,5 @@ {%- elsif ghec %} > * The {% data variables.product.prodname_codeql_cli %} is free to use on public repositories that are maintained on {% data variables.product.prodname_dotcom_the_website %}, and available to use on private repositories that are owned by customers with an {% data variables.product.prodname_advanced_security %} license. For information, see "[{% data variables.product.product_name %} {% data variables.product.prodname_codeql %} Terms and Conditions](https://securitylab.github.com/tools/codeql/license)" and "[{% data variables.product.prodname_codeql %} CLI](https://codeql.github.com/docs/codeql-cli/)." {%- elsif ghes %} -> * The {% data variables.product.prodname_codeql_cli %} is available to customers with an {% data variables.product.prodname_advanced_security %} license. -{% endif %} +> * The {% data variables.product.prodname_codeql_cli %} is available to customers with an {% data variables.product.prodname_advanced_security %} license.{% endif %} > * {% data reusables.code-scanning.non-glibc-linux-support %} diff --git a/data/reusables/code-scanning/run-additional-queries.md b/data/reusables/code-scanning/run-additional-queries.md index bcbedb95d6e0..614f24bb30a4 100644 --- a/data/reusables/code-scanning/run-additional-queries.md +++ b/data/reusables/code-scanning/run-additional-queries.md @@ -1,10 +1,7 @@ When you use {% data variables.product.prodname_codeql %} to scan code, the {% data variables.product.prodname_codeql %} analysis engine generates a database from the code and runs queries on it. {% data variables.product.prodname_codeql %} analysis uses a default set of queries, but you can specify more queries to run, in addition to the default queries. -{% tip %} - -You can also specify the queries you want to exclude from analysis, or include in the analysis. This requires the use of a custom configuration file. For more information, see "[Using a custom configuration file](#using-a-custom-configuration-file)" and "[Excluding specific queries from analysis](#excluding-specific-queries-from-analysis)" below. - -{% endtip %} +> [!TIP] +> You can also specify the queries you want to exclude from analysis, or include in the analysis. This requires the use of a custom configuration file. For more information, see "[Using a custom configuration file](#using-a-custom-configuration-file)" and "[Excluding specific queries from analysis](#excluding-specific-queries-from-analysis)" below. You can run extra queries if they are part of a {% data variables.product.prodname_codeql %} pack published to the {% data variables.product.company_short %} {% data variables.product.prodname_container_registry %} or a {% data variables.product.prodname_codeql %} pack stored in a repository. For more information, see "[AUTOTITLE](/code-security/code-scanning/introduction-to-code-scanning/about-code-scanning-with-codeql#about-codeql-queries)." diff --git a/data/reusables/codespaces/customize-vcpus-and-ram.md b/data/reusables/codespaces/customize-vcpus-and-ram.md index 57f4593141d7..d2a9e8b129d6 100644 --- a/data/reusables/codespaces/customize-vcpus-and-ram.md +++ b/data/reusables/codespaces/customize-vcpus-and-ram.md @@ -1,5 +1,5 @@ You can customize your codespace by adjusting the amount of vCPUs and RAM, adding dotfiles to personalize your environment, or by modifying the tools and scripts installed. For more information, see "[AUTOTITLE](/codespaces/customizing-your-codespace)." -{% data variables.product.prodname_github_codespaces %} uses a file called `devcontainer.json` to configure the development container that you use when you work in a codespace. Each repository can contain one or more `devcontainer.json` files, to give you exactly the development environment you need to work on your code in a codespace. +{% data variables.product.prodname_github_codespaces %} uses a file called `devcontainer.json` to configure the development container that you use when you work in a codespace. Each repository can contain one or more `devcontainer.json` files, to give you exactly the development environment you need to work on your code in a codespace. On launch, {% data variables.product.prodname_github_codespaces %} uses a `devcontainer.json` file, and any dependent files that make up the dev container configuration, to install tools and runtimes, and perform other setup tasks that the project requires. For more information, see "[AUTOTITLE](/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/introduction-to-dev-containers)." diff --git a/data/reusables/codespaces/publishing-template-codespaces.md b/data/reusables/codespaces/publishing-template-codespaces.md index 0bc29f296404..89bfeb118272 100644 --- a/data/reusables/codespaces/publishing-template-codespaces.md +++ b/data/reusables/codespaces/publishing-template-codespaces.md @@ -1,7 +1,7 @@ If you're working in a codespace, you can publish it from the {% data variables.product.prodname_vscode_shortname %} web client or desktop application. {% data reusables.codespaces.source-control-activity-bar %} -1. To stage your changes, click **+** next to the file you've added or changed, or next to **Changes** if you've changed multiple files and you want to stage them all. +1. To stage your changes, click **+** next to the file you've added or changed, or next to **Changes** if you've changed multiple files and you want to stage them all. ![Screenshot of the "Source control" side bar with the staging button (a plus sign), to the right of "Changes," highlighted with a dark orange outline.](/assets/images/help/codespaces/codespaces-commit-stage.png) diff --git a/data/reusables/codespaces/source-control.md b/data/reusables/codespaces/source-control.md index f8071fbb5d9e..9dc5c6fc90d7 100644 --- a/data/reusables/codespaces/source-control.md +++ b/data/reusables/codespaces/source-control.md @@ -14,7 +14,7 @@ When you create a codespace from a template repository or a template on the "You ## Committing your changes {% data reusables.codespaces.source-control-activity-bar %} -1. To stage your changes, click {% octicon "plus" aria-label="Stage changes" %} next to the file you've changed, or next to **Changes** if you've changed multiple files and you want to stage them all. +1. To stage your changes, click {% octicon "plus" aria-label="Stage changes" %} next to the file you've changed, or next to **Changes** if you've changed multiple files and you want to stage them all. ![Screenshot of the "Source control" side bar with the staging button (a plus sign), to the right of "Changes," highlighted with a dark orange outline.](/assets/images/help/codespaces/codespaces-commit-stage.png) diff --git a/data/reusables/copilot/content-exclusion-limitations.md b/data/reusables/copilot/content-exclusion-limitations.md index 23198e717179..d86b19458f71 100644 --- a/data/reusables/copilot/content-exclusion-limitations.md +++ b/data/reusables/copilot/content-exclusion-limitations.md @@ -1 +1 @@ -It's possible that {% data variables.product.prodname_copilot_short %} may use semantic information from an excluded file if the information is provided by the IDE in a non-excluded file. Examples of such content include type information and hover-over definitions for symbols used in code. +It's possible that {% data variables.product.prodname_copilot_short %} may use semantic information from an excluded file if the information is provided by the IDE indirectly. Examples of such content include type information and hover-over definitions for symbols used in code, as well as general project properties such as build configuration information. diff --git a/data/reusables/copilot/differences-cfi-cfb-table.md b/data/reusables/copilot/differences-cfi-cfb-table.md index c907338e0ebc..77619ec178be 100644 --- a/data/reusables/copilot/differences-cfi-cfb-table.md +++ b/data/reusables/copilot/differences-cfi-cfb-table.md @@ -7,7 +7,7 @@ | {% data variables.product.prodname_copilot_chat_short %} in IDEs[^2] | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | | {% data variables.product.prodname_copilot_mobile_short %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | | {% data variables.product.prodname_copilot_chat_dotcom_short %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| {% data variables.product.prodname_copilot_chat_short %} in {% data variables.product.prodname_windows_terminal %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | +| {% data variables.product.prodname_copilot_chat_short %} in {% data variables.product.prodname_windows_terminal %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | | {% data variables.product.prodname_copilot_cli_short %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | | Block suggestions matching public code | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | | {% data variables.product.prodname_copilot_for_prs %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | diff --git a/data/reusables/dependabot/dependabot-security-updates-groups-supported.md b/data/reusables/dependabot/dependabot-security-updates-groups-supported.md index 24fbb308eb74..9b07638794e7 100644 --- a/data/reusables/dependabot/dependabot-security-updates-groups-supported.md +++ b/data/reusables/dependabot/dependabot-security-updates-groups-supported.md @@ -1,4 +1,4 @@ -{% ifversion dependabot-grouped-security-updates-config %}You can use the `dependabot.yml` file to create separate rules to group {% data variables.product.prodname_dependabot_version_updates %} and {% data variables.product.prodname_dependabot_security_updates %}.{% else %} +{% ifversion dependabot-grouped-security-updates-config %}You can use the `dependabot.yml` file to create separate rules to group {% data variables.product.prodname_dependabot_version_updates %} and {% data variables.product.prodname_dependabot_security_updates %}.{% else %} You can only use the `dependabot.yml` file to create groups for {% data variables.product.prodname_dependabot_version_updates %}. Grouped {% data variables.product.prodname_dependabot_security_updates %} are enabled or disabled in your repository or organization settings and do not support customization. For more information, see "[AUTOTITLE](/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates#about-grouped-security-updates)."{% endif %} > [!NOTE] diff --git a/data/reusables/dependabot/supported-package-managers.md b/data/reusables/dependabot/supported-package-managers.md index 02ee125ad55a..71f2ffd6373e 100644 --- a/data/reusables/dependabot/supported-package-managers.md +++ b/data/reusables/dependabot/supported-package-managers.md @@ -2,7 +2,7 @@ Package manager | YAML value | Supported versions | Version updates | Secur ---------------|------------------|------------------|:---:|:---:|:---:|:---:|:---:| Bundler | `bundler` | {% ifversion ghes < 3.15 %}v1, {% endif %}v2 | {% octicon "x" aria-label="Not supported" %}| {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | [Cargo](#cargo) | `cargo` | v1 | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %}{% ifversion dependabot-updates-cargo-private-registry-support %}{% else %} (Git only){% endif %} | {% octicon "x" aria-label="Not supported" %} | -Composer | `composer` | v1, v2 | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | +Composer | `composer` | {% ifversion dependabot-updates-composerv1-closing-down %}v2{% else %}v1, v2{% endif %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | | {% ifversion dependabot-version-updates-devcontainer-support %} | [Dev containers](#dev-containers) | `devcontainers` | Not applicable | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | | {% endif %} | @@ -53,7 +53,7 @@ You can use `devcontainers` as a `package-ecosystem` in your `dependabot.yml` fi Dev containers are used in several tools and services, including {% data variables.product.prodname_codespaces %}. For more information about Features and the supported services, see [Features](https://containers.dev/implementors/features/) and [Supporting tools and services](https://containers.dev/supporting) in the Development Containers documentation, respectively. -This updater ensures Features are pinned to the latest `major` version in the associated `devcontainer.json` file. If a dev container has a lockfile, that file will also be updated. For more information about lockfile specifications, see [Lockfiles](https://github.com/devcontainers/spec/blob/main/docs/specs/devcontainer-lockfile.md) in the `devcontainers/spec` repository. +This updater ensures Features are pinned to the latest `major` version in the associated `devcontainer.json` file. If a dev container has a lockfile, that file will also be updated. For more information about lockfile specifications, see [Lockfiles](https://github.com/devcontainers/spec/blob/main/docs/specs/devcontainer-lockfile.md) in the `devcontainers/spec` repository. Features in any valid dev container location will be updated in a single pull request. For more information about the dev container specification, see [Specification](https://containers.dev/implementors/spec/#devcontainerjson) in the Development Containers documentation. @@ -69,7 +69,7 @@ Features in any valid dev container location will be updated in a single pull re In order for {% data variables.product.prodname_dependabot %} to fetch Docker metadata, maintainers of Docker images must add the `org.opencontainers.image.source` label to their Dockerfile, and include the URL of the source repository. Additionally, maintainers must tag the repository with the same tags as the published Docker images. For an example, see the [`dependabot-fixtures/docker-with-source`](https://github.com/dependabot-fixtures/docker-with-source) repository. For more information on Docker labels, see [Extension image labels](https://docs.docker.com/desktop/extensions-sdk/extensions/labels/) and [BUILDX_GIT_LABELS](https://docs.docker.com/build/building/env-vars/#buildx_git_labels) in the Docker documentation. {% endif %} -{% data variables.product.prodname_dependabot %} can update Docker image tags in Kubernetes manifests. Add an entry to the Docker `package-ecosystem` element of your `dependabot.yml` file for each directory containing a Kubernetes manifest which references Docker image tags. Kubernetes manifests can be Kubernetes Deployment YAML files or Helm charts. For information about configuring your `dependabot.yml` file for `docker`, see "`package-ecosystem`" in "[AUTOTITLE](/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#package-ecosystem)." +{% data variables.product.prodname_dependabot %} can update Docker image tags in Kubernetes manifests. Add an entry to the Docker `package-ecosystem` element of your `dependabot.yml` file for each directory containing a Kubernetes manifest which references Docker image tags. Kubernetes manifests can be Kubernetes Deployment YAML files or Helm charts. For information about configuring your `dependabot.yml` file for `docker`, see "`package-ecosystem`" in "[AUTOTITLE](/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#package-ecosystem)." {% data variables.product.prodname_dependabot %} supports both public and private Docker registries. For a list of the supported registries, see "`docker-registry`" in "[AUTOTITLE](/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#docker-registry)." {% endif %} diff --git a/data/reusables/discussions/starting-a-discussion.md b/data/reusables/discussions/starting-a-discussion.md index 7e33f133ea10..9952edcfbada 100644 --- a/data/reusables/discussions/starting-a-discussion.md +++ b/data/reusables/discussions/starting-a-discussion.md @@ -3,7 +3,7 @@ 1. On the right side of the page, click **New discussion**. 1. Select a discussion category by clicking **Get started**. - ![Screenshot of the "Select a discussion category" page. A button, labeled "Get started", is outlined in dark orange.](/assets/images/help/discussions/new-discussion-select-category-dropdown-menu.png) + ![Screenshot of the "Select a discussion category" page. A button, labeled "Get started", is outlined in dark orange.](/assets/images/help/discussions/new-discussion-select-category-dropdown-menu.png) 1. Under "Discussion title", type a title for your discussion, and under "Write", type the body of your discussion. diff --git a/data/reusables/enterprise-accounts/messages-tab.md b/data/reusables/enterprise-accounts/messages-tab.md index 6d3cb5b9dc8b..f5bec8fd1209 100644 --- a/data/reusables/enterprise-accounts/messages-tab.md +++ b/data/reusables/enterprise-accounts/messages-tab.md @@ -1 +1 @@ -1. Under **{% octicon "gear" aria-label="The Settings gear" %} Settings**, click **{% ifversion ghes %}Messages{% elsif ghec %}Announcement{% endif %}**. +1. Under **{% octicon "gear" aria-hidden="true" %} Settings**, click **{% ifversion ghes %}Messages{% elsif ghec %}Announcement{% endif %}**. diff --git a/data/reusables/enterprise-migration-tool/grant-migrator-role-graphql.md b/data/reusables/enterprise-migration-tool/grant-migrator-role-graphql.md index d2b6a41bdcf0..a826086e4881 100644 --- a/data/reusables/enterprise-migration-tool/grant-migrator-role-graphql.md +++ b/data/reusables/enterprise-migration-tool/grant-migrator-role-graphql.md @@ -25,7 +25,7 @@ mutation grantMigratorRole ( |----|----| | `organizationId` | The `ownerId` (or organization ID) for your organization, from the `GetOrgInfo` query. | `actor` | The team or username who you want to assign the migration role to. -| `actor_type` | Specify whether the migrator is a `USER` or `TEAM`. +| `actor_type` | Specify whether the migrator is a `USER` or `TEAM`. #### `revokeMigratorRole` mutation diff --git a/data/reusables/enterprise/secure_two_factor_authentication.md b/data/reusables/enterprise/secure_two_factor_authentication.md new file mode 100644 index 000000000000..f114899c851c --- /dev/null +++ b/data/reusables/enterprise/secure_two_factor_authentication.md @@ -0,0 +1 @@ +1. Under "Two-factor authentication", select **Require two-factor authentication for the enterprise and all of its organizations** and **Only allow secure two-factor methods**, then click **Save**. diff --git a/data/reusables/enterprise_installation/increase-resources-communicate-and-enable-maintenance-mode.md b/data/reusables/enterprise_installation/increase-resources-communicate-and-enable-maintenance-mode.md index 05eae8d731ca..c1e90c69de10 100644 --- a/data/reusables/enterprise_installation/increase-resources-communicate-and-enable-maintenance-mode.md +++ b/data/reusables/enterprise_installation/increase-resources-communicate-and-enable-maintenance-mode.md @@ -1,4 +1,4 @@ -1. Communicate the upcoming downtime to your users and enable maintenance mode. For more information, see the following articles. +1. Communicate the upcoming downtime to your users and enable maintenance mode. For more information, see the following articles. * "[AUTOTITLE](/admin/managing-accounts-and-repositories/communicating-information-to-users-in-your-enterprise/customizing-user-messages-for-your-enterprise#creating-a-mandatory-message)" * "[AUTOTITLE](/admin/administering-your-instance/configuring-maintenance-mode/enabling-and-scheduling-maintenance-mode)" diff --git a/data/reusables/enterprise_migrations/token-generation.md b/data/reusables/enterprise_migrations/token-generation.md index 49a7c9f52f24..fcdf09b3203a 100644 --- a/data/reusables/enterprise_migrations/token-generation.md +++ b/data/reusables/enterprise_migrations/token-generation.md @@ -1 +1 @@ -[Generate an access token](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token) with the `repo` and `admin:org` scopes +[Generate an access token](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token) with the `repo` and `admin:org` scopes diff --git a/data/reusables/files/add-file.md b/data/reusables/files/add-file.md index 58cd9fc76c2e..15e320cb1353 100644 --- a/data/reusables/files/add-file.md +++ b/data/reusables/files/add-file.md @@ -1,5 +1,5 @@ {% ifversion code-view-ui %} -1. Above the list of files, select the **Add file** {% octicon "triangle-down" aria-label="The downwards-facing triangle icon" %} dropdown menu, then click **{% octicon "plus" aria-label="The plus sign icon" %} Create new file**. +1. Above the list of files, select the **Add file** {% octicon "triangle-down" aria-label="The downwards-facing triangle icon" %} dropdown menu, then click **{% octicon "plus" aria-hidden="true" %} Create new file**. Alternatively, you can click {% octicon "plus" aria-label="The plus sign icon" %} in the file tree view on the left. diff --git a/data/reusables/files/choose-commit-email.md b/data/reusables/files/choose-commit-email.md index 32cff80d725f..e8da0f234971 100644 --- a/data/reusables/files/choose-commit-email.md +++ b/data/reusables/files/choose-commit-email.md @@ -1,5 +1,5 @@ {%- ifversion fpt or ghec %} -1. If you have more than one email address associated with your account on {% data variables.product.prodname_dotcom %}, click the email address drop-down menu and select the email address to use as the Git author email address. Only verified email addresses appear in this drop-down menu. If you enabled email address privacy, then a no-reply will be the default commit author email address. For more information about the exact form the no-reply email address can take, see "[AUTOTITLE](/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address)." +1. If you have more than one email address associated with your account on {% data variables.product.prodname_dotcom %}, click the email address drop-down menu and select the email address to use as the Git author email address. Only verified email addresses appear in this drop-down menu. If you enabled email address privacy, then a no-reply will be the default commit author email address. For more information about the exact form the no-reply email address can take, see "[AUTOTITLE](/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/setting-your-commit-email-address)." ![Screenshot of a {% data variables.product.prodname_dotcom %} pull request showing a dropdown menu with options to choose the commit author email address. octocat@github.com is selected.](/assets/images/help/repository/choose-commit-email-address.png) {%- endif %} diff --git a/data/reusables/gated-features/historical-insights-for-projects.md b/data/reusables/gated-features/historical-insights-for-projects.md index 88ea54d89f44..1531d3b247b7 100644 --- a/data/reusables/gated-features/historical-insights-for-projects.md +++ b/data/reusables/gated-features/historical-insights-for-projects.md @@ -1 +1 @@ -Insights is available for the new Projects experience, you cannot use Insights with {% data variables.product.prodname_projects_v1 %}. Historical charts are available with {% data variables.product.prodname_team %} and {% data variables.product.prodname_ghe_cloud %} for organizations. You can save unlimited charts in private projects with {% data variables.product.prodname_team %} and {% data variables.product.prodname_ghe_cloud %} for organizations and {% data variables.product.prodname_pro %} for users. Users and organizations using a public project can also save unlimited charts. Users and organizations using {% data variables.product.prodname_free_team %} or a legacy plan can save two charts in private projects. {% data reusables.gated-features.more-info %} +Insights is available for the new Projects experience, you cannot use Insights with {% data variables.product.prodname_projects_v1 %}. Historical charts are available with {% data variables.product.prodname_team %} and {% data variables.product.prodname_ghe_cloud %} for organizations. You can save unlimited charts in private projects with {% data variables.product.prodname_team %} and {% data variables.product.prodname_ghe_cloud %} for organizations and {% data variables.product.prodname_pro %} for users. Users and organizations using a public project can also save unlimited charts. Users and organizations using {% data variables.product.prodname_free_team %} or a legacy plan can save two charts in private projects. {% data reusables.gated-features.more-info %} diff --git a/data/reusables/getting-started/github-pages-enterprise.md b/data/reusables/getting-started/github-pages-enterprise.md index aed03e573bf3..b9675fbf505f 100644 --- a/data/reusables/getting-started/github-pages-enterprise.md +++ b/data/reusables/getting-started/github-pages-enterprise.md @@ -1 +1 @@ -{% data variables.product.prodname_pages %} is a static site hosting service that takes HTML, CSS, and JavaScript files straight from a repository and publishes a website. You can enable or disable {% data variables.product.prodname_pages %} for your enterprise members at the organization level. For more information, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/configuring-github-pages-for-your-enterprise)" and "[AUTOTITLE](/pages/getting-started-with-github-pages/about-github-pages)." +{% data variables.product.prodname_pages %} is a static site hosting service that takes HTML, CSS, and JavaScript files straight from a repository and publishes a website. You can enable or disable {% data variables.product.prodname_pages %} for your enterprise members at the organization level. For more information, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/configuring-github-pages-for-your-enterprise)" and "[AUTOTITLE](/pages/getting-started-with-github-pages/about-github-pages)." diff --git a/data/reusables/identity-and-permissions/team-sync-usage-limits.md b/data/reusables/identity-and-permissions/team-sync-usage-limits.md index 9a11b72ca4da..e08b2ea38815 100644 --- a/data/reusables/identity-and-permissions/team-sync-usage-limits.md +++ b/data/reusables/identity-and-permissions/team-sync-usage-limits.md @@ -1,6 +1,6 @@ ### Usage limits -There are usage limits for the team synchronization feature. Exceeding these limits will lead to a degradation in performance and may cause synchronization failures. +There are usage limits for the team synchronization feature. Exceeding these limits will lead to a degradation in performance and may cause synchronization failures. * Maximum number of members in a GitHub team: 5,000 * Maximum number of members in a GitHub organization: 10,000 diff --git a/data/reusables/interactions/contributor-user-limit-definition.md b/data/reusables/interactions/contributor-user-limit-definition.md index e750eb466295..1d4f85a074bd 100644 --- a/data/reusables/interactions/contributor-user-limit-definition.md +++ b/data/reusables/interactions/contributor-user-limit-definition.md @@ -1 +1 @@ -**Contributors only:** When you limit interactions to `contributors_only`, users who have not previously contributed and are not collaborators will be temporarily restricted +**Contributors only:** When you limit interactions to `contributors_only`, users who have not previously contributed and are not collaborators will be temporarily restricted diff --git a/data/reusables/organizations/removed_outside_collaborators.md b/data/reusables/organizations/removed_outside_collaborators.md index 69ca258911bd..8296583fbd79 100644 --- a/data/reusables/organizations/removed_outside_collaborators.md +++ b/data/reusables/organizations/removed_outside_collaborators.md @@ -1,2 +1,2 @@ 1. If prompted, read the information about members and outside collaborators who will be removed from the organization. -1. In the text field, type your organization's name to confirm the change, then click **Remove members & require two-factor authentication**. +1. To confirm the change, click **Confirm**. diff --git a/data/reusables/organizations/secure_two_factor_authentication.md b/data/reusables/organizations/secure_two_factor_authentication.md new file mode 100644 index 000000000000..dd52bbb11c5f --- /dev/null +++ b/data/reusables/organizations/secure_two_factor_authentication.md @@ -0,0 +1 @@ +1. Under "Two-factor authentication", select **Require two-factor authentication for everyone in your organization** and **Only allow secure two-factor methods**, then click **Save**. diff --git a/data/reusables/organizations/secure_two_factor_authentication_confirm.md b/data/reusables/organizations/secure_two_factor_authentication_confirm.md new file mode 100644 index 000000000000..7f792e8e53d2 --- /dev/null +++ b/data/reusables/organizations/secure_two_factor_authentication_confirm.md @@ -0,0 +1 @@ +1. If prompted, read the information about how user access to organization resources will be affected by requiring secure 2FA methods. To confirm the change, click **Confirm**. diff --git a/data/reusables/package_registry/apache-maven-snapshot-versions-supported.md b/data/reusables/package_registry/apache-maven-snapshot-versions-supported.md index 4ecebf610fe4..ccd3525df755 100644 --- a/data/reusables/package_registry/apache-maven-snapshot-versions-supported.md +++ b/data/reusables/package_registry/apache-maven-snapshot-versions-supported.md @@ -1 +1 @@ -{% data variables.product.prodname_registry %} supports `SNAPSHOT` versions of Apache Maven. To use the {% data variables.product.prodname_registry %} repository for downloading `SNAPSHOT` artifacts, enable SNAPSHOTS in the POM of the consuming project or your _~/.m2/settings.xml_ file. +{% data variables.product.prodname_registry %} supports `SNAPSHOT` versions of Apache Maven. To use the {% data variables.product.prodname_registry %} repository for downloading `SNAPSHOT` artifacts, enable SNAPSHOTS in the POM of the consuming project or your _~/.m2/settings.xml_ file. diff --git a/data/reusables/pages/twenty-minutes-to-publish.md b/data/reusables/pages/twenty-minutes-to-publish.md index 69c96062b499..22cf2a175f14 100644 --- a/data/reusables/pages/twenty-minutes-to-publish.md +++ b/data/reusables/pages/twenty-minutes-to-publish.md @@ -1 +1 @@ -**Note:** It can take up to 10 minutes for changes to your site to publish after you push the changes to {% data variables.product.product_name %}. If you don't see your {% data variables.product.prodname_pages %} site changes reflected in your browser after an hour, see "[AUTOTITLE](/pages/setting-up-a-github-pages-site-with-jekyll/about-jekyll-build-errors-for-github-pages-sites)." +**Note:** It can take up to 10 minutes for changes to your site to publish after you push the changes to {% data variables.product.product_name %}. If you don't see your {% data variables.product.prodname_pages %} site changes reflected in your browser after an hour, see "[AUTOTITLE](/pages/setting-up-a-github-pages-site-with-jekyll/about-jekyll-build-errors-for-github-pages-sites)." diff --git a/data/reusables/project-management/delete-label.md b/data/reusables/project-management/delete-label.md index f3f93215ef9c..a051f353d8e6 100644 --- a/data/reusables/project-management/delete-label.md +++ b/data/reusables/project-management/delete-label.md @@ -1 +1 @@ - 1. In the labels list, to the right of the label you want to delete, click **Delete**. + 1. In the labels list, to the right of the label you want to delete, click **Delete**. diff --git a/data/reusables/projects/about-table-layout.md b/data/reusables/projects/about-table-layout.md index 80144b87c6e4..0df8fd62e1a8 100644 --- a/data/reusables/projects/about-table-layout.md +++ b/data/reusables/projects/about-table-layout.md @@ -1 +1 @@ -The table layout is a powerful and adaptable spreadsheet comprised of your issues, pull requests, and draft issues with metadata from {% data variables.product.company_short %} and the custom fields you've added to your project. You can group, sort, and filter items, and show or hide fields in your table layouts to suit the needs of everyone on your team. +The table layout is a powerful and adaptable spreadsheet comprised of your issues, pull requests, and draft issues with metadata from {% data variables.product.company_short %} and the custom fields you've added to your project. You can group, sort, and filter items, and show or hide fields in your table layouts to suit the needs of everyone on your team. diff --git a/data/reusables/projects/project-description.md b/data/reusables/projects/project-description.md index b5b8eb9f883b..9159c05dd29b 100644 --- a/data/reusables/projects/project-description.md +++ b/data/reusables/projects/project-description.md @@ -1,7 +1,7 @@ You can set your project's description and README to share the purpose of your project, provide instructions on how to use the project, and include any relevant links. {% data reusables.projects.project-settings %} -1. To add a short description to your project, under "Add a description", type your description in the text box and click **Save**. +1. To add a short description to your project, under "Add a description", type your description in the text box and click **Save**. 1. To update your project's README, under "README", type your content in the text box. * You can format your README using Markdown. For more information, see "[AUTOTITLE](/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax)." * To toggle between the text box and a preview of your changes, click {% octicon "eye" aria-label="The preview icon" %} or {% octicon "pencil" aria-label="The edit icon" %}. diff --git a/data/reusables/repositories/allow-maintainers-user-forks.md b/data/reusables/repositories/allow-maintainers-user-forks.md index 56d803a1a4f6..0b0c2eafe9b4 100644 --- a/data/reusables/repositories/allow-maintainers-user-forks.md +++ b/data/reusables/repositories/allow-maintainers-user-forks.md @@ -1,4 +1,4 @@ 1. On user-owned forks, if you want to allow anyone with push access to the upstream repository to make changes to your pull request, select **Allow edits from maintainers**. > [!WARNING] - > If your fork contains {% data variables.product.prodname_actions %} workflows, the option is **Allow edits and access to secrets by maintainers**. Allowing edits on a fork's branch that contains {% data variables.product.prodname_actions %} workflows also allows a maintainer to edit the forked repository's workflows, which can potentially reveal values of secrets and grant access to other branches. + > If your fork contains {% data variables.product.prodname_actions %} workflows, the option is **Allow edits and access to secrets by maintainers**. Allowing edits on a fork's branch that contains {% data variables.product.prodname_actions %} workflows also allows a maintainer to edit the forked repository's workflows, which can potentially reveal values of secrets and grant access to other branches. diff --git a/data/reusables/repositories/relative-links.md b/data/reusables/repositories/relative-links.md index 1d0010ee0da2..48dd8b6bd48c 100644 --- a/data/reusables/repositories/relative-links.md +++ b/data/reusables/repositories/relative-links.md @@ -1,6 +1,6 @@ You can define relative links and image paths in your rendered files to help readers navigate to other files in your repository. -A relative link is a link that is relative to the current file. For example, if you have a README file in root of your repository, and you have another file in _docs/CONTRIBUTING.md_, the relative link to _CONTRIBUTING.md_ in your README might look like this: +A relative link is a link that is relative to the current file. For example, if you have a README file in root of your repository, and you have another file in _docs/CONTRIBUTING.md_, the relative link to _CONTRIBUTING.md_ in your README might look like this: ```text [Contribution guidelines for this project](docs/CONTRIBUTING.md) diff --git a/data/reusables/repositories/rulesets-require-code-scanning-results.md b/data/reusables/repositories/rulesets-require-code-scanning-results.md index 230e6d1fbc0b..83df1a2353e4 100644 --- a/data/reusables/repositories/rulesets-require-code-scanning-results.md +++ b/data/reusables/repositories/rulesets-require-code-scanning-results.md @@ -1,5 +1,5 @@ 1. Under "Branch protections", select **Require {% data variables.product.prodname_code_scanning %} results**. -1. Under "Required tools and alert thresholds", click **{% octicon "plus" aria-label="Add tool" %} Add tool** and select a {% data variables.product.prodname_code_scanning %} tool with the dropdown. For example, "{% data variables.product.prodname_codeql %}". +1. Under "Required tools and alert thresholds", click **{% octicon "plus" aria-hidden="true" %} Add tool** and select a {% data variables.product.prodname_code_scanning %} tool with the dropdown. For example, "{% data variables.product.prodname_codeql %}". 1. Next to the name of a {% data variables.product.prodname_code_scanning %} tool: * Click **Alerts** and select one of: **None**, **Errors**, **Errors and Warnings** or **All**. * Click **Security alerts** and select one of: **None**, **Critical**, **High or higher**, **Medium or higher**, or **All**. diff --git a/data/reusables/repositories/security-alerts-x-github-severity.md b/data/reusables/repositories/security-alerts-x-github-severity.md index 2741a8f189a1..7fcc8de8a70d 100644 --- a/data/reusables/repositories/security-alerts-x-github-severity.md +++ b/data/reusables/repositories/security-alerts-x-github-severity.md @@ -1 +1 @@ -Email notifications for {% data variables.product.prodname_dependabot_alerts %} that affect one or more repositories include the `X-GitHub-Severity` header field. You can use the value of the `X-GitHub-Severity` header field to filter email notifications for {% data variables.product.prodname_dependabot_alerts %}. +Email notifications for {% data variables.product.prodname_dependabot_alerts %} that affect one or more repositories include the `X-GitHub-Severity` header field. You can use the value of the `X-GitHub-Severity` header field to filter email notifications for {% data variables.product.prodname_dependabot_alerts %}. diff --git a/data/reusables/rest-api/secondary-rate-limit-rest-graphql.md b/data/reusables/rest-api/secondary-rate-limit-rest-graphql.md index 406d89b65798..4f747331fc7f 100644 --- a/data/reusables/rest-api/secondary-rate-limit-rest-graphql.md +++ b/data/reusables/rest-api/secondary-rate-limit-rest-graphql.md @@ -19,6 +19,6 @@ Some secondary rate limits are determined by the point values of requests. For G | GraphQL requests without mutations | 1 | | GraphQL requests with mutations | 5 | | Most REST API `GET`, `HEAD`, and `OPTIONS` requests | 1 | -| Most REST API `POST`, `PATCH`, `PUT`, or `DELETE` requests | 5 | +| Most REST API `POST`, `PATCH`, `PUT`, or `DELETE` requests | 5 | Some REST API endpoints have a different point cost that is not shared publicly. diff --git a/data/reusables/saml/testing-saml-sso.md b/data/reusables/saml/testing-saml-sso.md index 3129fa8d30ca..e34ba66a37b9 100644 --- a/data/reusables/saml/testing-saml-sso.md +++ b/data/reusables/saml/testing-saml-sso.md @@ -1 +1 @@ -When setting up SAML SSO in your organization, you can test your implementation without affecting your organization members by leaving **Require SAML SSO authentication for all members of the _organization name_ organization** unchecked. +When setting up SAML SSO in your organization, you can test your implementation without affecting your organization members by leaving **Require SAML SSO authentication for all members of the _organization name_ organization** unchecked. diff --git a/data/reusables/secret-scanning/bypass-reasons-and-alerts.md b/data/reusables/secret-scanning/bypass-reasons-and-alerts.md index 2013a23b7c33..82c68dc9bbec 100644 --- a/data/reusables/secret-scanning/bypass-reasons-and-alerts.md +++ b/data/reusables/secret-scanning/bypass-reasons-and-alerts.md @@ -1,6 +1,6 @@ This table shows the behavior of alerts for each way a user can bypass a push protection block. -| Bypass reason | Alert behavior | +| Bypass reason | Alert behavior | |-----------------------|------------------------------------------------------| | It's used in tests | {% data variables.product.prodname_dotcom %} creates a closed alert, resolved as "used in tests" | | It's a false positive | {% data variables.product.prodname_dotcom %} creates a closed alert, resolved as "false positive" | diff --git a/data/reusables/secret-scanning/regular-expression-generator-overview.md b/data/reusables/secret-scanning/regular-expression-generator-overview.md index 9256124a4a33..6659f4177ec0 100644 --- a/data/reusables/secret-scanning/regular-expression-generator-overview.md +++ b/data/reusables/secret-scanning/regular-expression-generator-overview.md @@ -1 +1 @@ -The generator uses a generative AI model where you input a text description of the type of pattern you would like to detect, including optional example strings that should be detected. The model returns up to three regular expressions for you to review. +{% data variables.secret-scanning.copilot-secret-scanning %}'s {% data variables.secret-scanning.custom-pattern-regular-expression-generator %} uses a generative AI model where you input a text description of the type of pattern you would like to detect, including optional example strings that should be detected. The model returns up to three regular expressions for you to review. diff --git a/data/reusables/sponsors/sponsorship-dashboard.md b/data/reusables/sponsors/sponsorship-dashboard.md index 797190f59945..fc902cec4c9a 100644 --- a/data/reusables/sponsors/sponsorship-dashboard.md +++ b/data/reusables/sponsors/sponsorship-dashboard.md @@ -2,5 +2,5 @@ * If you're sponsoring a personal account, under the user's name, click **Sponsoring**. ![Screenshot of the sidebar of @octocat's profile page. A button, labeled with a heart icon and "Sponsoring", is outlined in dark orange.](/assets/images/help/profile/sponsoring-button.png) - * If you're sponsoring an organization, to the right of the organization's name, click **{% octicon "heart-fill" aria-label="" %} Sponsoring**. + * If you're sponsoring an organization, to the right of the organization's name, click **{% octicon "heart-fill" aria-hidden="true" %} Sponsoring**. 1. Optionally, to manage a sponsorship on behalf of an organization, on the right side of the page, use the **Sponsoring as** dropdown menu, then click the organization. diff --git a/data/reusables/support/help_resources.md b/data/reusables/support/help_resources.md index c6dca457e416..d06da9d99df6 100644 --- a/data/reusables/support/help_resources.md +++ b/data/reusables/support/help_resources.md @@ -1,4 +1,4 @@ -For questions, bug reports, and discussions about {% data variables.product.prodname_github_apps %}, {% data variables.product.prodname_oauth_apps %}, and API development, explore the {% data reusables.support.prodname_support_forum_with_url %}. The discussions are moderated and maintained by {% data variables.product.company_short %} staff, and answered by the {% data variables.product.company_short %} community. +For questions, bug reports, and discussions about {% data variables.product.prodname_github_apps %}, {% data variables.product.prodname_oauth_apps %}, and API development, explore the {% data reusables.support.prodname_support_forum_with_url %}. The discussions are moderated and maintained by {% data variables.product.company_short %} staff, and answered by the {% data variables.product.company_short %} community. Consider reaching out to [GitHub Support](https://support.github.com/) directly using the contact form for: * guaranteed response from {% data variables.product.product_name %} staff diff --git a/data/reusables/supported-languages/Cs.md b/data/reusables/supported-languages/Cs.md index dc392b2ca2f5..7333586dad33 100644 --- a/data/reusables/supported-languages/Cs.md +++ b/data/reusables/supported-languages/Cs.md @@ -1 +1 @@ -| C# {% ifversion fpt or ghec %}| {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %}
`dotnet` CLI | {% octicon "check" aria-label="Supported" %}
`dotnet` CLI | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %}
`dotnet` CLI |{% elsif ghes %}| {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %}
`dotnet` CLI | {% octicon "check" aria-label="Supported" %}
`dotnet` CLI | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %}
`dotnet` CLI |{% endif %} +| C# {% ifversion fpt or ghec %}| {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %}
`dotnet` CLI | {% octicon "check" aria-label="Supported" %}
`dotnet` CLI | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %}
`dotnet` CLI |{% elsif ghes %}| {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %}
`dotnet` CLI | {% octicon "check" aria-label="Supported" %}
`dotnet` CLI | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %}
`dotnet` CLI |{% endif %} diff --git a/data/reusables/supported-languages/swift.md b/data/reusables/supported-languages/swift.md index 778e5a9e6c8f..1e36d67c51d3 100644 --- a/data/reusables/supported-languages/swift.md +++ b/data/reusables/supported-languages/swift.md @@ -1 +1 @@ -| Swift | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %}
Swift Package Manager | +| Swift | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %}
Swift Package Manager | diff --git a/data/reusables/two_fa/manual-totp-app-setup.md b/data/reusables/two_fa/manual-totp-app-setup.md index c0ef429d92e8..79b9cd97ce02 100644 --- a/data/reusables/two_fa/manual-totp-app-setup.md +++ b/data/reusables/two_fa/manual-totp-app-setup.md @@ -2,7 +2,7 @@ If you are unable to scan the setup QR code or wish to setup a TOTP app manually * Type: `TOTP` * Label: `GitHub:` where `` is your handle on {% data variables.product.prodname_dotcom %}, for example `monalisa` -* Secret: This is the encoded setup key, shown if you click "Setup key" during configuration +* Secret: This is the encoded setup key, shown if you click "Setup key" during configuration * Issuer: `GitHub` * Algorithm: The default of SHA1 is used * Digits: The default of 6 is used diff --git a/data/reusables/two_fa/sms-cap-note.md b/data/reusables/two_fa/sms-cap-note.md new file mode 100644 index 000000000000..8e9a14b61b20 --- /dev/null +++ b/data/reusables/two_fa/sms-cap-note.md @@ -0,0 +1,2 @@ +> [!NOTE] +> Organizations and enterprises have the ability to prevent content access to members who have SMS 2FA configured. If you are a member of any organization or enterprise that has made this decision, you should enable TOTP application-configured 2FA instead. Outside collaborators may not enable SMS 2FA if their organization or enterprise has disallowed it. To continue working on content within an organization, enable 2FA with a TOTP application and disable SMS 2FA. diff --git a/data/reusables/webhooks/public_short_desc.md b/data/reusables/webhooks/public_short_desc.md index 3f7ac658afc0..f665fd28c0f0 100644 --- a/data/reusables/webhooks/public_short_desc.md +++ b/data/reusables/webhooks/public_short_desc.md @@ -1 +1 @@ -When a private repository is made public. Without a doubt: the best {% data variables.product.product_name %} event. +When a private repository is made public. Without a doubt: the best {% data variables.product.product_name %} event. diff --git a/package.json b/package.json index 3c2a5bde5a82..30a3d586d457 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "index-general-search": "tsx src/search/scripts/index/index-cli general-search", "index-test-fixtures": "./src/search/scripts/index-test-fixtures.sh", "lint": "eslint '**/*.{js,mjs,ts,tsx}'", - "lint-content": "node src/content-linter/scripts/lint-content.js", + "lint-content": "tsx src/content-linter/scripts/lint-content.js", "lint-translation": "vitest src/content-linter/tests/lint-files.js", "liquid-markdown-tables": "tsx src/tools/scripts/liquid-markdown-tables/index.ts", "generate-code-scanning-query-list": "tsx src/code-scanning/scripts/generate-code-scanning-query-list.ts", @@ -88,7 +88,7 @@ "update-internal-links": "tsx src/links/scripts/update-internal-links.ts", "validate-asset-images": "tsx src/assets/scripts/validate-asset-images.ts", "validate-github-github-docs-urls": "tsx src/links/scripts/validate-github-github-docs-urls/index.ts", - "warmup-remotejson": "node src/archives/scripts/warmup-remotejson.js" + "warmup-remotejson": "tsx src/archives/scripts/warmup-remotejson.ts" }, "lint-staged": { "*.{js,mjs,ts,tsx}": "eslint --cache --fix", diff --git a/src/archives/lib/is-archived-version.d.ts b/src/archives/lib/is-archived-version.d.ts deleted file mode 100644 index 02696d235141..000000000000 --- a/src/archives/lib/is-archived-version.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import type { ExtendedRequest } from '@/types' - -type IsArchivedInfo = { - isArchived?: boolean - requestedVersion?: string -} - -export declare function isArchivedVersion(req: ExtendedRequest): IsArchivedInfo -export declare function isArchivedVersionByPath(pathToCheck: string): IsArchivedInfo diff --git a/src/archives/lib/is-archived-version.js b/src/archives/lib/is-archived-version.ts similarity index 59% rename from src/archives/lib/is-archived-version.js rename to src/archives/lib/is-archived-version.ts index c7d145a45d40..801905b03d8f 100644 --- a/src/archives/lib/is-archived-version.js +++ b/src/archives/lib/is-archived-version.ts @@ -1,14 +1,20 @@ -import patterns from '#src/frame/lib/patterns.js' -import { deprecated } from '#src/versions/lib/enterprise-server-releases.js' +import patterns from '@/frame/lib/patterns.js' +import { deprecated } from '@/versions/lib/enterprise-server-releases.js' +import type { ExtendedRequest } from '@/types' -export function isArchivedVersion(req) { +type IsArchivedInfo = { + isArchived?: boolean + requestedVersion?: string +} + +export function isArchivedVersion(req: ExtendedRequest): IsArchivedInfo { // if this is an assets path, use the referrer // if this is a docs path, use the req.path const pathToCheck = patterns.assetPaths.test(req.path) ? req.get('referrer') : req.path return isArchivedVersionByPath(pathToCheck || '') } -export function isArchivedVersionByPath(pathToCheck) { +export function isArchivedVersionByPath(pathToCheck: string): IsArchivedInfo { // ignore paths that don't have an enterprise version number if ( !( @@ -22,10 +28,10 @@ export function isArchivedVersionByPath(pathToCheck) { // extract enterprise version from path, e.g. 2.16 const requestedVersion = pathToCheck.includes('enterprise-server@') ? pathToCheck.match(patterns.getEnterpriseServerNumber)?.[1] - : pathToCheck.match(patterns.getEnterpriseVersionNumber)[1] + : pathToCheck.match(patterns.getEnterpriseVersionNumber)?.[1] // bail if the request version is not deprecated - if (!deprecated.includes(requestedVersion)) { + if (!requestedVersion || !deprecated.includes(requestedVersion)) { return {} } diff --git a/src/archives/lib/old-versions-utils.js b/src/archives/lib/old-versions-utils.ts similarity index 84% rename from src/archives/lib/old-versions-utils.js rename to src/archives/lib/old-versions-utils.ts index 03767995b901..0952c97fba0d 100644 --- a/src/archives/lib/old-versions-utils.js +++ b/src/archives/lib/old-versions-utils.ts @@ -1,8 +1,8 @@ import path from 'path' -import { supported, latest } from '#src/versions/lib/enterprise-server-releases.js' -import patterns from '#src/frame/lib/patterns.js' -import nonEnterpriseDefaultVersion from '#src/versions/lib/non-enterprise-default-version.js' -import { allVersions } from '#src/versions/lib/all-versions.js' +import { supported, latest } from '@/versions/lib/enterprise-server-releases.js' +import patterns from '@/frame/lib/patterns.js' +import nonEnterpriseDefaultVersion from '@/versions/lib/non-enterprise-default-version.js' +import { allVersions } from '@/versions/lib/all-versions.js' const latestNewVersion = `enterprise-server@${latest}` const oldVersions = ['dotcom'].concat(supported) const newVersions = Object.keys(allVersions) @@ -18,7 +18,7 @@ const newVersions = Object.keys(allVersions) // return an old version like 2.21. // Fall back to latest GHES version if one can't be found, // for example, if the new version is private-instances@latest. -export function getOldVersionFromNewVersion(newVersion) { +export function getOldVersionFromNewVersion(newVersion: string) { return newVersion === nonEnterpriseDefaultVersion ? 'dotcom' : oldVersions.find((oldVersion) => newVersion.includes(oldVersion)) || latest @@ -27,7 +27,7 @@ export function getOldVersionFromNewVersion(newVersion) { // Given an old version like 2.21, // return a new version like enterprise-server@2.21. // Fall back to latest GHES version if one can't be found. -export function getNewVersionFromOldVersion(oldVersion) { +export function getNewVersionFromOldVersion(oldVersion: string) { return oldVersion === 'dotcom' ? nonEnterpriseDefaultVersion : newVersions.find((newVersion) => newVersion.includes(oldVersion)) || latestNewVersion @@ -35,7 +35,7 @@ export function getNewVersionFromOldVersion(oldVersion) { // Given an old path like /enterprise/2.21/user/github/category/article, // return an old version like 2.21. -export function getOldVersionFromOldPath(oldPath) { +export function getOldVersionFromOldPath(oldPath: string) { // We should never be calling this function on a path that starts with a new version, // so we can assume the path either uses the old /enterprise format or it's dotcom. if (!patterns.enterprise.test(oldPath)) return 'dotcom' @@ -46,7 +46,7 @@ export function getOldVersionFromOldPath(oldPath) { // Given an old path like /en/enterprise/2.21/user/github/category/article, // return a new path like /en/enterprise-server@2.21/github/category/article. -export function getNewVersionedPath(oldPath, languageCode = '') { +export function getNewVersionedPath(oldPath: string, languageCode = '') { // It's possible a new version has been injected into an old path // via syntax like: /en/enterprise/{{ currentVersion }}/admin/category/article // which could resolve to /en/enterprise/private-instances@latest/admin/category/article, @@ -58,7 +58,7 @@ export function getNewVersionedPath(oldPath, languageCode = '') { // If no new version was found, assume path contains an old version, like 2.21 if (!newVersion) { - const oldVersion = getOldVersionFromOldPath(oldPath, languageCode) + const oldVersion = getOldVersionFromOldPath(oldPath) newVersion = getNewVersionFromOldVersion(oldVersion) } diff --git a/src/archives/middleware/archived-enterprise-versions-assets.ts b/src/archives/middleware/archived-enterprise-versions-assets.ts index 5d7799777ee6..3d15ad2f16f9 100644 --- a/src/archives/middleware/archived-enterprise-versions-assets.ts +++ b/src/archives/middleware/archived-enterprise-versions-assets.ts @@ -2,7 +2,7 @@ import got from 'got' import type { Response, NextFunction } from 'express' import patterns from '@/frame/lib/patterns.js' -import { isArchivedVersion } from '@/archives/lib/is-archived-version.js' +import { isArchivedVersion } from '@/archives/lib/is-archived-version' import { setFastlySurrogateKey, SURROGATE_ENUMS, diff --git a/src/archives/middleware/archived-enterprise-versions.ts b/src/archives/middleware/archived-enterprise-versions.ts index d0fbc2d6d5ec..3bc04484758b 100644 --- a/src/archives/middleware/archived-enterprise-versions.ts +++ b/src/archives/middleware/archived-enterprise-versions.ts @@ -10,7 +10,7 @@ import { } from '@/versions/lib/enterprise-server-releases.js' import patterns from '@/frame/lib/patterns.js' import versionSatisfiesRange from '@/versions/lib/version-satisfies-range.js' -import { isArchivedVersion } from '@/archives/lib/is-archived-version.js' +import { isArchivedVersion } from '@/archives/lib/is-archived-version' import { setFastlySurrogateKey, SURROGATE_ENUMS, diff --git a/src/archives/scripts/warmup-remotejson.js b/src/archives/scripts/warmup-remotejson.ts similarity index 79% rename from src/archives/scripts/warmup-remotejson.js rename to src/archives/scripts/warmup-remotejson.ts index 7a2d431d9958..565d809f99ac 100755 --- a/src/archives/scripts/warmup-remotejson.js +++ b/src/archives/scripts/warmup-remotejson.ts @@ -19,12 +19,11 @@ // [end-readme] import { program } from 'commander' -import semver from 'semver' +import semver, { SemVer } from 'semver' -import getRemoteJSON from '#src/frame/lib/get-remote-json.js' +import getRemoteJSON from '@/frame/lib/get-remote-json.js' import { deprecated, - firstReleaseStoredInBlobStorage, lastVersionWithoutArchivedRedirectsFile, } from '#src/versions/lib/enterprise-server-releases.js' @@ -36,18 +35,14 @@ program main() -function version2url(version) { - const inBlobStorage = semver.gte( - semver.coerce(version).raw, - semver.coerce(firstReleaseStoredInBlobStorage).raw, - ) +function version2url(version: string | SemVer) { return `https://github.github.com/docs-ghes-${version}/redirects.json` } -function withArchivedRedirectsFile(version) { +function withArchivedRedirectsFile(version: string | SemVer) { return semver.eq( - semver.coerce(version).raw, - semver.coerce(lastVersionWithoutArchivedRedirectsFile).raw, + semver.coerce(version)?.raw || '', + semver.coerce(lastVersionWithoutArchivedRedirectsFile)?.raw || '', ) } diff --git a/src/archives/tests/deprecated-enterprise-versions.js b/src/archives/tests/deprecated-enterprise-versions.ts similarity index 85% rename from src/archives/tests/deprecated-enterprise-versions.js rename to src/archives/tests/deprecated-enterprise-versions.ts index 8dc3b7a3d461..d5baff1c4188 100644 --- a/src/archives/tests/deprecated-enterprise-versions.js +++ b/src/archives/tests/deprecated-enterprise-versions.ts @@ -1,8 +1,8 @@ import { describe, expect, test, vi } from 'vitest' -import enterpriseServerReleases from '#src/versions/lib/enterprise-server-releases.js' -import { get, getDOM } from '#src/tests/helpers/e2etest.js' -import { SURROGATE_ENUMS } from '#src/frame/middleware/set-fastly-surrogate-key.js' +import enterpriseServerReleases from '@/versions/lib/enterprise-server-releases.js' +import { get, getDOM } from '@/tests/helpers/e2etest-ts' +import { SURROGATE_ENUMS } from '@/frame/middleware/set-fastly-surrogate-key.js' describe('enterprise deprecation', () => { vi.setConfig({ testTimeout: 60 * 1000 }) @@ -45,8 +45,8 @@ describe('enterprise deprecation', () => { test('handles requests for deprecated Enterprise pages ( >=2.13 )', async () => { expect(enterpriseServerReleases.deprecated.includes('2.13')).toBe(true) - const $ = await getDOM('/en/enterprise/2.13/user/articles/about-branches') - expect($.res.statusCode).toBe(200) + const { $, res } = await getDOM('/en/enterprise/2.13/user/articles/about-branches') + expect(res.statusCode).toBe(200) expect($('h1').first().text()).toBe('About branches') }) @@ -60,27 +60,27 @@ describe('enterprise deprecation', () => { test('handles requests for deprecated Enterprise pages ( <2.13 )', async () => { expect(enterpriseServerReleases.deprecated.includes('2.12')).toBe(true) - const $ = await getDOM('/enterprise/2.12/user/articles/about-branches') - expect($.res.statusCode).toBe(200) + const { $, res } = await getDOM('/enterprise/2.12/user/articles/about-branches') + expect(res.statusCode).toBe(200) expect($('h2').text()).toBe('About branches') }) test('handles requests for deprecated Enterprise version 11.10.340', async () => { expect(enterpriseServerReleases.deprecated.includes('11.10.340')).toBe(true) - const $ = await getDOM('/enterprise/11.10.340/admin/articles/adding-teams') - expect($.res.statusCode).toBe(200) + const { $, res } = await getDOM('/enterprise/11.10.340/admin/articles/adding-teams') + expect(res.statusCode).toBe(200) expect($('h2').text()).toBe('Adding teams') }) test('has working admin guide links ( <2.13 )', async () => { const guidesPath = '/enterprise/2.12/admin' - let $ = await getDOM(`${guidesPath}/guides`) - const firstLink = $('[class="guide-section"]').children('a').attr('href') + const { $: $1 } = await getDOM(`${guidesPath}/guides`) + const firstLink = $1('[class="guide-section"]').children('a').attr('href') - $ = await getDOM(`${guidesPath}/${firstLink}`) - expect($.res.statusCode).toBe(200) + const { $: $2, res } = await getDOM(`${guidesPath}/${firstLink}`) + expect(res.statusCode).toBe(200) // this test assumes the Installation guide is the first link on the guides page - expect($('h2').text()).toBe('Installing and configuring GitHub Enterprise') + expect($2('h2').text()).toBe('Installing and configuring GitHub Enterprise') }) }) @@ -139,22 +139,22 @@ describe('recently deprecated redirects', () => { describe('deprecation banner', () => { test('renders a deprecation warning banner on oldest supported Enterprise version', async () => { - const $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.oldestSupported}`) + const { $ } = await getDOM(`/en/enterprise/${enterpriseServerReleases.oldestSupported}`) expect($('[data-testid=deprecation-banner]').length).toBe(1) }) test('does not render a deprecation warning banner on other Enterprise versions', async () => { - const $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}`) + const { $ } = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}`) expect($('[data-testid=deprecation-banner]').length).toBe(0) }) test('deprecation warning banner includes a date', async () => { - const $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.oldestSupported}`) + const { $ } = await getDOM(`/en/enterprise/${enterpriseServerReleases.oldestSupported}`) expect($('[data-testid=deprecation-banner] b').text().endsWith('discontinued on .')).toBe(false) }) test('deprecation warning banner includes the right text depending on the date', async () => { - const $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.oldestSupported}`) + const { $ } = await getDOM(`/en/enterprise/${enterpriseServerReleases.oldestSupported}`) const expectedString = enterpriseServerReleases.isOldestReleaseDeprecated ? 'was discontinued' : 'will be discontinued' @@ -164,24 +164,28 @@ describe('deprecation banner', () => { describe('does not render survey prompt or contribution button', () => { test('does not render survey prompt', async () => { - let $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}/github`) - expect($('[data-testid="survey-form"]').length).toBeGreaterThan(0) - $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.oldestSupported}/github`) + const { $: $1 } = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}/github`) + expect($1('[data-testid="survey-form"]').length).toBeGreaterThan(0) + const { $: $2 } = await getDOM( + `/en/enterprise/${enterpriseServerReleases.oldestSupported}/github`, + ) if (enterpriseServerReleases.isOldestReleaseDeprecated) { - expect($('[data-testid="survey-form"]').length).toBe(0) + expect($2('[data-testid="survey-form"]').length).toBe(0) } else { - expect($('[data-testid="survey-form"]').length).toBeGreaterThan(0) + expect($2('[data-testid="survey-form"]').length).toBeGreaterThan(0) } }) test('does not render contribution button', async () => { - let $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}/github`) - expect($('.contribution').length).toBeGreaterThan(0) - $ = await getDOM(`/en/enterprise/${enterpriseServerReleases.oldestSupported}/github`) + const { $: $1 } = await getDOM(`/en/enterprise/${enterpriseServerReleases.latest}/github`) + expect($1('.contribution').length).toBeGreaterThan(0) + const { $: $2 } = await getDOM( + `/en/enterprise/${enterpriseServerReleases.oldestSupported}/github`, + ) if (enterpriseServerReleases.isOldestReleaseDeprecated) { - expect($('.contribution').length).toBe(0) + expect($2('.contribution').length).toBe(0) } else { - expect($('[data-testid=survey-form]').length).toBeGreaterThan(0) + expect($2('[data-testid=survey-form]').length).toBeGreaterThan(0) } }) }) diff --git a/src/assets/lib/image-density.txt b/src/assets/lib/image-density.txt index 9dd0edac295b..aff98f46a523 100644 --- a/src/assets/lib/image-density.txt +++ b/src/assets/lib/image-density.txt @@ -95,10 +95,10 @@ /assets/images/help/2fa/add-sms-number-option.png 1x /assets/images/help/2fa/disable-two-factor-authentication.png 2x /assets/images/help/2fa/edit-2fa-method-dropdown.png 1x -/assets/images/help/2fa/filter-org-collaborator-by-2fa-required.png 1x -/assets/images/help/2fa/filter-org-members-by-2fa-required.png 1x -/assets/images/help/2fa/filter-org-members-by-2fa.png 2x -/assets/images/help/2fa/filter-outside-collaborators-by-2fa.png 2x +/assets/images/help/2fa/filter-enterprise-members-by-2fa.png 1x +/assets/images/help/2fa/filter-org-members-by-2fa.png 1x +/assets/images/help/2fa/legacy-filter-org-members-by-2fa.png 1x +/assets/images/help/2fa/legacy-filter-org-collaborators-by-2fa.png 2x /assets/images/help/2fa/ghes-3.8-and-higher-2fa-wizard-app-click-code.png 1x /assets/images/help/2fa/unlink-this-email.png 2x /assets/images/help/2fa/view-recovery-codes-button.png 2x diff --git a/src/assets/scripts/deleted-assets-pr-comment-1.ts b/src/assets/scripts/deleted-assets-pr-comment-1.ts index 206143821033..23c41dddacf0 100755 --- a/src/assets/scripts/deleted-assets-pr-comment-1.ts +++ b/src/assets/scripts/deleted-assets-pr-comment-1.ts @@ -3,7 +3,7 @@ // [start-readme] // // For testing the GitHub Action that executes -// src/assets/scripts/deleted-assets-pr-comment.js but doing it +// src/assets/scripts/deleted-assets-pr-comment.ts but doing it // locally. // This is more convenient and faster than relying on seeing that the // Action produces in a PR. @@ -13,7 +13,7 @@ // Example use: // // export GITHUB_TOKEN=github_pat_11AAAG..... -// ./src/assets/scripts/deleted-assets-pr-comment.js github docs-internal main 4a0b0f2 +// ./src/assets/scripts/deleted-assets-pr-comment.ts github docs-internal main 4a0b0f2 // // [end-readme] diff --git a/src/audit-logs/data/fpt/organization.json b/src/audit-logs/data/fpt/organization.json index 87c192dca1e9..301d8357a1c6 100644 --- a/src/audit-logs/data/fpt/organization.json +++ b/src/audit-logs/data/fpt/organization.json @@ -2959,6 +2959,11 @@ "description": "Changes were pushed to update and resolve a Dependabot alert in a project dependency.", "docs_reference_links": "N/A" }, + { + "action": "repository_vulnerability_alert.withdraw", + "description": "A Dependabot alert was withdrawn.", + "docs_reference_links": "N/A" + }, { "action": "repository_vulnerability_alerts.authorized_users_teams", "description": "The list of people or teams authorized to receive Dependabot alerts for the repository was updated.", diff --git a/src/audit-logs/data/ghec/enterprise.json b/src/audit-logs/data/ghec/enterprise.json index 3f3522746060..a7c6d99f5c6f 100644 --- a/src/audit-logs/data/ghec/enterprise.json +++ b/src/audit-logs/data/ghec/enterprise.json @@ -3734,6 +3734,11 @@ "description": "Changes were pushed to update and resolve a Dependabot alert in a project dependency.", "docs_reference_links": "N/A" }, + { + "action": "repository_vulnerability_alert.withdraw", + "description": "A Dependabot alert was withdrawn.", + "docs_reference_links": "N/A" + }, { "action": "repository_vulnerability_alerts.authorized_users_teams", "description": "The list of people or teams authorized to receive Dependabot alerts for the repository was updated.", diff --git a/src/audit-logs/data/ghec/organization.json b/src/audit-logs/data/ghec/organization.json index 87c192dca1e9..301d8357a1c6 100644 --- a/src/audit-logs/data/ghec/organization.json +++ b/src/audit-logs/data/ghec/organization.json @@ -2959,6 +2959,11 @@ "description": "Changes were pushed to update and resolve a Dependabot alert in a project dependency.", "docs_reference_links": "N/A" }, + { + "action": "repository_vulnerability_alert.withdraw", + "description": "A Dependabot alert was withdrawn.", + "docs_reference_links": "N/A" + }, { "action": "repository_vulnerability_alerts.authorized_users_teams", "description": "The list of people or teams authorized to receive Dependabot alerts for the repository was updated.", diff --git a/src/audit-logs/lib/config.json b/src/audit-logs/lib/config.json index a3cde864507e..4c619112b420 100644 --- a/src/audit-logs/lib/config.json +++ b/src/audit-logs/lib/config.json @@ -3,5 +3,5 @@ "apiOnlyEvents": "This event is not available in the web interface, only via the REST API, audit log streaming, or JSON/CSV exports.", "apiRequestEvent": "This event is only available via audit log streaming." }, - "sha": "331ad672f7b1e388933dc4491e0f4a539fd58496" + "sha": "014cf4c9c23bf1f27dd034a2a76b92388951c01c" } \ No newline at end of file diff --git a/src/content-render/unified/rewrite-local-links.js b/src/content-render/unified/rewrite-local-links.js index 8f5d2d87e2e1..99116307ae09 100644 --- a/src/content-render/unified/rewrite-local-links.js +++ b/src/content-render/unified/rewrite-local-links.js @@ -5,7 +5,7 @@ import stripAnsi from 'strip-ansi' import { visit } from 'unist-util-visit' import { distance } from 'fastest-levenshtein' import { getPathWithoutLanguage, getVersionStringFromPath } from '#src/frame/lib/path-utils.js' -import { getNewVersionedPath } from '#src/archives/lib/old-versions-utils.js' +import { getNewVersionedPath } from '#src/archives/lib/old-versions-utils.ts' import patterns from '#src/frame/lib/patterns.js' import { deprecated, latest } from '#src/versions/lib/enterprise-server-releases.js' import nonEnterpriseDefaultVersion from '#src/versions/lib/non-enterprise-default-version.js' diff --git a/src/fixtures/fixtures/rest-redirects.json b/src/fixtures/fixtures/rest-redirects.json index 94540bc4a297..5a364f6e338d 100644 --- a/src/fixtures/fixtures/rest-redirects.json +++ b/src/fixtures/fixtures/rest-redirects.json @@ -418,7 +418,7 @@ "/v3/enterprise-admin/global_webhooks": "/en/enterprise-server/rest/enterprise-admin/global-webhooks", "/v3/enterprise-admin/ldap": "/en/enterprise-server/rest/enterprise-admin/ldap", "/v3/enterprise-admin/license": "/en/enterprise-server/rest/enterprise-admin/license", - "/v3/enterprise-admin/management_console": "/en/enterprise-server/rest/enterprise-admin/management-console", + "/v3/enterprise-admin/management_console": "/en/enterprise-server/rest/enterprise-admin/manage-ghes", "/v3/enterprise-admin/orgs": "/en/enterprise-server/rest/enterprise-admin/orgs", "/v3/enterprise-admin/pre_receive_environments": "/en/enterprise-server/rest/enterprise-admin/pre-receive-environments", "/v3/enterprise-admin/pre_receive_hooks": "/en/enterprise-server/rest/enterprise-admin/pre-receive-hooks", diff --git a/src/frame/middleware/helmet.ts b/src/frame/middleware/helmet.ts index d5e3e8487575..16ba54a2d90d 100644 --- a/src/frame/middleware/helmet.ts +++ b/src/frame/middleware/helmet.ts @@ -1,6 +1,6 @@ import type { NextFunction, Request, Response } from 'express' import helmet from 'helmet' -import { isArchivedVersion } from '@/archives/lib/is-archived-version.js' +import { isArchivedVersion } from '@/archives/lib/is-archived-version' import versionSatisfiesRange from '@/versions/lib/version-satisfies-range.js' import { languagePrefixPathRegex } from '@/languages/lib/languages.js' diff --git a/src/github-apps/lib/config.json b/src/github-apps/lib/config.json index 55f51e11f491..b36f05bee93e 100644 --- a/src/github-apps/lib/config.json +++ b/src/github-apps/lib/config.json @@ -60,5 +60,5 @@ "2022-11-28" ] }, - "sha": "a0508cecd18ab26b525527e4ba35bd9c6d725c4f" + "sha": "d97436bb3672e8d985262803de6ab7cafe1c7ff3" } \ No newline at end of file diff --git a/src/landings/components/CategoryLanding.tsx b/src/landings/components/CategoryLanding.tsx index 21522a196d65..f004f3b844e0 100644 --- a/src/landings/components/CategoryLanding.tsx +++ b/src/landings/components/CategoryLanding.tsx @@ -85,10 +85,37 @@ export const CategoryLanding = () => { {intro && {intro}}

Spotlight

-
- - - +
+
+ +
+
+ +
+
+ +
@@ -110,7 +137,7 @@ export const CategoryLanding = () => {
  • - image ? ( -
    - ) : null - //
  • - ) +function setImage(image: string, alt: string) { + return image ? ( + {alt} + ) : null } const spotlightClasses = 'd-flex flex-column align-items-center' export const CookBookArticleCard = ({ - title = defaultProps.title, - icon = defaultProps.icon as IconType, - tags = defaultProps.tags, - description = defaultProps.description, + title, + icon, + tags, + description, image = '', url, spotlight = false, @@ -86,7 +76,7 @@ export const CookBookArticleCard = ({ style={{ minHeight: 200 }} className={spotlight ? spotlightClasses : 'd-flex pb-3 border-bottom'} > - {spotlight ? setImage(image) : null} + {spotlight ? setImage(image, title) : null} {spotlight ? null : IconComponent && ( @@ -104,7 +94,7 @@ export const CookBookArticleCard = ({ {tags.map((tag, index) => ( //fix this to have unique keys + ))}
    diff --git a/src/pageinfo/middleware.ts b/src/pageinfo/middleware.ts index d321717534f0..cda18f015abe 100644 --- a/src/pageinfo/middleware.ts +++ b/src/pageinfo/middleware.ts @@ -14,7 +14,7 @@ import shortVersions from '@/versions/middleware/short-versions.js' import contextualize from '@/frame/middleware/context/context' import features from '@/versions/middleware/features.js' import getRedirect from '@/redirects/lib/get-redirect.js' -import { isArchivedVersionByPath } from '@/archives/lib/is-archived-version.js' +import { isArchivedVersionByPath } from '@/archives/lib/is-archived-version' import { readCompressedJsonFile } from '@/frame/lib/read-json-file.js' const router = express.Router() diff --git a/src/redirects/lib/static/developer.json b/src/redirects/lib/static/developer.json index e205edc33baf..900f074440fe 100644 --- a/src/redirects/lib/static/developer.json +++ b/src/redirects/lib/static/developer.json @@ -1857,7 +1857,7 @@ "/enterprise/v3/enterprise-admin/global_webhooks": "/enterprise-server@latest/rest/enterprise-admin#global-webhooks", "/enterprise/v3/enterprise-admin/ldap": "/enterprise-server@latest/rest/enterprise-admin#ldap", "/enterprise/v3/enterprise-admin/license": "/enterprise-server@latest/rest/enterprise-admin#license", - "/enterprise/v3/enterprise-admin/management_console": "/enterprise-server@latest/rest/enterprise-admin#management-console", + "/enterprise/v3/enterprise-admin/management_console": "/enterprise-server@latest/rest/enterprise-admin/manage-ghes", "/enterprise/v3/enterprise-admin/org_pre_receive_hooks": "/enterprise-server@latest/rest/enterprise-admin#organization-pre-receive-hooks", "/enterprise/v3/enterprise-admin/orgs": "/enterprise-server@latest/rest/enterprise-admin#orgs", "/enterprise/v3/enterprise-admin/pre_receive_environments": "/enterprise-server@latest/rest/enterprise-admin#pre-receive-environments", @@ -1868,7 +1868,7 @@ "/enterprise/v3/enterprise/admin_stats": "/enterprise-server@latest/rest/enterprise-admin#admin-stats", "/enterprise/v3/enterprise/ldap": "/enterprise-server@latest/rest/enterprise-admin#ldap", "/enterprise/v3/enterprise/license": "/enterprise-server@latest/rest/enterprise-admin#license", - "/enterprise/v3/enterprise/management_console": "/enterprise-server@latest/rest/enterprise-admin#management-console", + "/enterprise/v3/enterprise/management_console": "/enterprise-server@latest/rest/enterprise-admin/manage-ghes", "/enterprise/v3/enterprise/orgs": "/enterprise-server@latest/rest/enterprise-admin#orgs", "/enterprise/v3/enterprise/pre_receive_environments": "/enterprise-server@latest/rest/enterprise-admin#pre-receive-environments", "/enterprise/v3/enterprise/pre_receive_hooks": "/enterprise-server@latest/rest/enterprise-admin#pre-receive-hooks", @@ -3009,7 +3009,7 @@ "/v3/enterprise-admin/global_webhooks": "/enterprise-server@latest/rest/enterprise-admin/global-webhooks", "/v3/enterprise-admin/ldap": "/enterprise-server@latest/rest/enterprise-admin/ldap", "/v3/enterprise-admin/license": "/enterprise-server@latest/rest/enterprise-admin/license", - "/v3/enterprise-admin/management_console": "/enterprise-server@latest/rest/enterprise-admin/management-console", + "/v3/enterprise-admin/management_console": "/enterprise-server@latest/rest/enterprise-admin/manage-ghes", "/v3/enterprise-admin/orgs": "/enterprise-server@latest/rest/enterprise-admin/orgs", "/v3/enterprise-admin/pre_receive_environments": "/enterprise-server@latest/rest/enterprise-admin/pre-receive-environments", "/v3/enterprise-admin/pre_receive_hooks": "/enterprise-server@latest/rest/enterprise-admin/pre-receive-hooks", @@ -3019,7 +3019,7 @@ "/v3/enterprise/global_webhooks": "/enterprise-server@latest/rest/enterprise-admin/global-webhooks", "/v3/enterprise/ldap": "/enterprise-server@latest/rest/enterprise-admin/ldap", "/v3/enterprise/license": "/enterprise-server@latest/rest/enterprise-admin/license", - "/v3/enterprise/management_console": "/enterprise-server@latest/rest/enterprise-admin/management-console", + "/v3/enterprise/management_console": "/enterprise-server@latest/rest/enterprise-admin/manage-ghes", "/v3/enterprise/org_pre_receive_hooks": "/enterprise-server@latest/rest/enterprise-admin/organization-pre-receive-hooks", "/v3/enterprise/orgs": "/enterprise-server@latest/rest/enterprise-admin/orgs", "/v3/enterprise/pre_receive_environments": "/enterprise-server@latest/rest/enterprise-admin/pre-receive-environments", diff --git a/src/rest/data/fpt-2022-11-28/schema.json b/src/rest/data/fpt-2022-11-28/schema.json index 025a5727a148..54a15366bd9c 100644 --- a/src/rest/data/fpt-2022-11-28/schema.json +++ b/src/rest/data/fpt-2022-11-28/schema.json @@ -223084,7 +223084,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -223177,7 +223177,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -223234,7 +223234,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -223294,7 +223294,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -223673,7 +223673,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -223766,7 +223766,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -223823,7 +223823,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -223883,7 +223883,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -224255,7 +224255,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -224348,7 +224348,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -224405,7 +224405,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -224465,7 +224465,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -224847,7 +224847,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -224940,7 +224940,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -224997,7 +224997,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -225057,7 +225057,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -359898,7 +359898,7 @@ }, { "name": "min_timestamp", - "description": "

    The minimum timestamp to query for stats

    ", + "description": "

    The minimum timestamp to query for stats. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", "in": "query", "required": true, "schema": { @@ -359907,9 +359907,9 @@ }, { "name": "max_timestamp", - "description": "

    The maximum timestamp to query for stats

    ", + "description": "

    The maximum timestamp to query for stats. Defaults to the time 30 days ago. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", "in": "query", - "required": true, + "required": false, "schema": { "type": "string" } @@ -360073,7 +360073,7 @@ }, { "name": "min_timestamp", - "description": "

    The minimum timestamp to query for stats

    ", + "description": "

    The minimum timestamp to query for stats. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", "in": "query", "required": true, "schema": { @@ -360082,9 +360082,9 @@ }, { "name": "max_timestamp", - "description": "

    The maximum timestamp to query for stats

    ", + "description": "

    The maximum timestamp to query for stats. Defaults to the time 30 days ago. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", "in": "query", - "required": true, + "required": false, "schema": { "type": "string" } @@ -360245,7 +360245,7 @@ }, { "name": "min_timestamp", - "description": "

    The minimum timestamp to query for stats

    ", + "description": "

    The minimum timestamp to query for stats. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", "in": "query", "required": true, "schema": { @@ -360254,9 +360254,9 @@ }, { "name": "max_timestamp", - "description": "

    The maximum timestamp to query for stats

    ", + "description": "

    The maximum timestamp to query for stats. Defaults to the time 30 days ago. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", "in": "query", - "required": true, + "required": false, "schema": { "type": "string" } @@ -360348,7 +360348,7 @@ }, { "name": "min_timestamp", - "description": "

    The minimum timestamp to query for stats

    ", + "description": "

    The minimum timestamp to query for stats. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", "in": "query", "required": true, "schema": { @@ -360357,9 +360357,9 @@ }, { "name": "max_timestamp", - "description": "

    The maximum timestamp to query for stats

    ", + "description": "

    The maximum timestamp to query for stats. Defaults to the time 30 days ago. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", "in": "query", - "required": true, + "required": false, "schema": { "type": "string" } @@ -360443,7 +360443,7 @@ }, { "name": "min_timestamp", - "description": "

    The minimum timestamp to query for stats

    ", + "description": "

    The minimum timestamp to query for stats. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", "in": "query", "required": true, "schema": { @@ -360452,9 +360452,9 @@ }, { "name": "max_timestamp", - "description": "

    The maximum timestamp to query for stats

    ", + "description": "

    The maximum timestamp to query for stats. Defaults to the time 30 days ago. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", "in": "query", - "required": true, + "required": false, "schema": { "type": "string" } @@ -360564,7 +360564,7 @@ }, { "name": "min_timestamp", - "description": "

    The minimum timestamp to query for stats

    ", + "description": "

    The minimum timestamp to query for stats. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", "in": "query", "required": true, "schema": { @@ -360573,9 +360573,9 @@ }, { "name": "max_timestamp", - "description": "

    The maximum timestamp to query for stats

    ", + "description": "

    The maximum timestamp to query for stats. Defaults to the time 30 days ago. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", "in": "query", - "required": true, + "required": false, "schema": { "type": "string" } @@ -360708,7 +360708,7 @@ }, { "name": "min_timestamp", - "description": "

    The minimum timestamp to query for stats

    ", + "description": "

    The minimum timestamp to query for stats. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", "in": "query", "required": true, "schema": { @@ -360717,9 +360717,9 @@ }, { "name": "max_timestamp", - "description": "

    The maximum timestamp to query for stats

    ", + "description": "

    The maximum timestamp to query for stats. Defaults to the time 30 days ago. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", "in": "query", - "required": true, + "required": false, "schema": { "type": "string" } @@ -360869,7 +360869,7 @@ }, { "name": "min_timestamp", - "description": "

    The minimum timestamp to query for stats

    ", + "description": "

    The minimum timestamp to query for stats. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", "in": "query", "required": true, "schema": { @@ -360878,9 +360878,9 @@ }, { "name": "max_timestamp", - "description": "

    The maximum timestamp to query for stats

    ", + "description": "

    The maximum timestamp to query for stats. Defaults to the time 30 days ago. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", "in": "query", - "required": true, + "required": false, "schema": { "type": "string" } @@ -361015,7 +361015,7 @@ }, { "name": "min_timestamp", - "description": "

    The minimum timestamp to query for stats

    ", + "description": "

    The minimum timestamp to query for stats. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", "in": "query", "required": true, "schema": { @@ -361024,9 +361024,9 @@ }, { "name": "max_timestamp", - "description": "

    The maximum timestamp to query for stats

    ", + "description": "

    The maximum timestamp to query for stats. Defaults to the time 30 days ago. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", "in": "query", - "required": true, + "required": false, "schema": { "type": "string" } @@ -456925,7 +456925,7 @@ "false", "legacy" ], - "default": true + "default": "true" } ], "progAccess": { @@ -530379,7 +530379,7 @@ { "type": "pull_request_title", "details": { - "pull_request_title_url": "https://api.github.com/repos/octocat/Hello-World/pull/2846" + "pull_request_title_url": "https://api.github.com/repos/octocat/Hello-World/pulls/2846" } }, { @@ -530678,7 +530678,7 @@ "format": "uri", "description": "The API URL to get the pull request where the secret was detected.", "examples": [ - "https://api.github.com/repos/octocat/Hello-World/pull/2846" + "https://api.github.com/repos/octocat/Hello-World/pulls/2846" ] } }, @@ -530695,7 +530695,7 @@ "format": "uri", "description": "The API URL to get the pull request where the secret was detected.", "examples": [ - "https://api.github.com/repos/octocat/Hello-World/pull/2846" + "https://api.github.com/repos/octocat/Hello-World/pulls/2846" ] } }, diff --git a/src/rest/data/ghec-2022-11-28/schema.json b/src/rest/data/ghec-2022-11-28/schema.json index 03674fb8317a..260186126823 100644 --- a/src/rest/data/ghec-2022-11-28/schema.json +++ b/src/rest/data/ghec-2022-11-28/schema.json @@ -232044,7 +232044,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -232137,7 +232137,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -232194,7 +232194,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -232254,7 +232254,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -232633,7 +232633,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -232726,7 +232726,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -232783,7 +232783,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -232843,7 +232843,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -233215,7 +233215,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -233308,7 +233308,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -233365,7 +233365,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -233425,7 +233425,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -233807,7 +233807,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -233900,7 +233900,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -233957,7 +233957,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -234017,7 +234017,7 @@ "properties": { "name": { "type": "string", - "description": "Name of the language used for Copilot code completion suggestions, for the given editor." + "description": "Name of the model used for Copilot code completion suggestions. If the default model is used will appear as 'default'." }, "is_custom_model": { "type": "boolean", @@ -260596,6 +260596,1197 @@ "description": "

    OK

    " } ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "get", + "requestPath": "/enterprises/{enterprise}/audit-log/stream-key", + "title": "Get the audit log stream key for encrypting secrets", + "category": "enterprise-admin", + "subcategory": "audit-log", + "parameters": [ + { + "name": "enterprise", + "description": "

    The slug version of the enterprise name. You can also substitute this value with the enterprise id.

    ", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "bodyParameters": [], + "progAccess": { + "userToServerRest": false, + "serverToServer": false, + "fineGrainedPat": false, + "permissions": [] + }, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "enterprise": "ENTERPRISE" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

    The stream key for the audit log streaming configuration was retrieved successfully.

    ", + "example": { + "key_id": "123", + "key": "actual-public-key-value" + }, + "schema": { + "title": "stream-key", + "description": "Audit Log Streaming Public Key", + "type": "object", + "properties": { + "key_id": { + "type": "string" + }, + "key": { + "type": "string" + } + }, + "required": [ + "key_id", + "key" + ] + } + } + } + ], + "previews": [], + "descriptionHTML": "

    Retrieves the audit log streaming public key for encrypting secrets.

    \n

    When using this endpoint, you must encrypt the credentials following the same encryption steps as outlined in the guide on encrypting secrets. See \"Encrypting secrets for the REST API.\"

    ", + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

    The stream key for the audit log streaming configuration was retrieved successfully.

    " + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "get", + "requestPath": "/enterprises/{enterprise}/audit-log/streams", + "title": "List audit log stream configurations for an enterprise", + "category": "enterprise-admin", + "subcategory": "audit-log", + "parameters": [ + { + "name": "enterprise", + "description": "

    The slug version of the enterprise name. You can also substitute this value with the enterprise id.

    ", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "bodyParameters": [], + "progAccess": { + "userToServerRest": false, + "serverToServer": false, + "fineGrainedPat": false, + "permissions": [] + }, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "enterprise": "ENTERPRISE" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

    OK

    ", + "example": [ + { + "id": 1, + "stream_type": "Splunk", + "stream_details": "US", + "enabled": true, + "created_at": "2024-06-06T08:00:00Z", + "updated_at": "2024-06-06T08:00:00Z", + "paused_at": null + } + ], + "schema": { + "title": "List audit log streaming configurations", + "description": "Lists the audit log streaming configurations for an enterprise.", + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "stream_type": { + "type": "string" + }, + "stream_details": { + "type": "string" + }, + "enabled": { + "type": "boolean" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "paused_at": { + "type": [ + "string", + "null" + ], + "format": "date-time" + } + } + }, + "required": [ + "id", + "stream_type", + "stream_details", + "enabled", + "created_at", + "updated_at" + ] + } + } + } + ], + "previews": [], + "descriptionHTML": "

    Lists the configured audit log streaming configurations for an enterprise.\nThis only lists configured streams for supported providers.

    \n

    When using this endpoint, you must encrypt the credentials following the same encryption steps as outlined in the guide on encrypting secrets. See \"Encrypting secrets for the REST API.\"

    ", + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

    OK

    " + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "post", + "requestPath": "/enterprises/{enterprise}/audit-log/streams", + "title": "Create an audit log streaming configuration for an enterprise", + "category": "enterprise-admin", + "subcategory": "audit-log", + "parameters": [ + { + "name": "enterprise", + "description": "

    The slug version of the enterprise name. You can also substitute this value with the enterprise id.

    ", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "bodyParameters": [ + { + "type": "boolean", + "name": "enabled", + "in": "body", + "description": "

    This setting pauses or resumes a stream.

    ", + "isRequired": true + }, + { + "type": "string", + "name": "stream_type", + "in": "body", + "description": "

    The audit log streaming provider. The name is case sensitive.

    ", + "isRequired": true, + "enum": [ + "Azure Blob Storage", + "Azure Event Hubs", + "Amazon S3", + "Splunk", + "HTTPS Event Collector", + "Google Cloud Storage", + "Datadog" + ] + }, + { + "type": "object", + "name": "vendor_specific", + "in": "body", + "description": "", + "isRequired": true, + "childParamsGroups": [ + { + "type": "object", + "name": "AzureBlobConfig", + "description": "

    Azure Blob Config for audit log streaming configuration.

    ", + "isRequired": [ + "key_id", + "encrypted_sas_url" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "key_id", + "description": "

    Key ID obtained from the audit log stream key endpoint used to encrypt secrets.

    ", + "isRequired": true + }, + { + "type": "string", + "name": "encrypted_sas_url", + "description": "", + "isRequired": true + } + ] + }, + { + "type": "object", + "name": "AzureHubConfig", + "description": "

    Azure Event Hubs Config for audit log streaming configuration.

    ", + "isRequired": [ + "name", + "encrypted_connstring", + "key_id" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

    Instance name of Azure Event Hubs

    ", + "isRequired": true + }, + { + "type": "string", + "name": "encrypted_connstring", + "description": "

    Encrypted Connection String for Azure Event Hubs

    ", + "isRequired": true + }, + { + "type": "string", + "name": "key_id", + "description": "

    Key ID obtained from the audit log stream key endpoint used to encrypt secrets.

    ", + "isRequired": true + } + ] + }, + { + "type": "object", + "name": "AmazonS3OIDCConfig", + "description": "

    Amazon S3 OIDC Config for audit log streaming configuration.

    ", + "isRequired": [ + "arn_role", + "authentication_type", + "bucket", + "key_id", + "region" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "bucket", + "description": "

    Amazon S3 Bucket Name.

    ", + "isRequired": true + }, + { + "type": "string", + "name": "region", + "description": "

    AWS S3 Bucket Region.

    ", + "isRequired": true + }, + { + "type": "string", + "name": "key_id", + "description": "

    Key ID obtained from the audit log stream key endpoint used to encrypt secrets.

    ", + "isRequired": true + }, + { + "type": "string", + "name": "authentication_type", + "description": "

    Authentication Type for Amazon S3.

    ", + "isRequired": true, + "enum": [ + "oidc" + ] + }, + { + "type": "string", + "name": "arn_role", + "description": "", + "isRequired": true + } + ] + }, + { + "type": "object", + "name": "AmazonS3AccessKeysConfig", + "description": "

    Amazon S3 Access Keys Config for audit log streaming configuration.

    ", + "isRequired": [ + "authentication_type", + "bucket", + "encrypted_access_key_id", + "encrypted_secret_key", + "key_id", + "region" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "bucket", + "description": "

    Amazon S3 Bucket Name.

    ", + "isRequired": true + }, + { + "type": "string", + "name": "region", + "description": "

    Amazon S3 Bucket Name.

    ", + "isRequired": true + }, + { + "type": "string", + "name": "key_id", + "description": "

    Key ID obtained from the audit log stream key endpoint used to encrypt secrets.

    ", + "isRequired": true + }, + { + "type": "string", + "name": "authentication_type", + "description": "

    Authentication Type for Amazon S3.

    ", + "isRequired": true, + "enum": [ + "access_keys" + ] + }, + { + "type": "string", + "name": "encrypted_secret_key", + "description": "

    Encrypted AWS Secret Key.

    ", + "isRequired": true + }, + { + "type": "string", + "name": "encrypted_access_key_id", + "description": "

    Encrypted AWS Access Key ID.

    ", + "isRequired": true + } + ] + }, + { + "type": "object", + "name": "SplunkConfig", + "description": "

    Splunk Config for Audit Log Stream Configuration

    ", + "isRequired": [ + "domain", + "encrypted_token", + "key_id", + "port", + "ssl_verify" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "domain", + "description": "

    Domain of Splunk instance.

    ", + "isRequired": true + }, + { + "type": "integer", + "name": "port", + "description": "

    The port number for connecting to Splunk.

    ", + "isRequired": true + }, + { + "type": "string", + "name": "key_id", + "description": "

    Key ID obtained from the audit log stream key endpoint used to encrypt secrets.

    ", + "isRequired": true + }, + { + "type": "string", + "name": "encrypted_token", + "description": "

    Encrypted Token.

    ", + "isRequired": true + }, + { + "type": "boolean", + "name": "ssl_verify", + "description": "

    SSL verification helps ensure your events are sent to your Splunk endpoint securely.

    ", + "isRequired": true + } + ] + }, + { + "type": "object", + "name": "GoogleCloudConfig", + "description": "

    Google Cloud Config for audit log streaming configuration.

    ", + "isRequired": [ + "bucket", + "key_id", + "encrypted_json_credentials" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "bucket", + "description": "

    Google Cloud Bucket Name

    ", + "isRequired": true + }, + { + "type": "string", + "name": "key_id", + "description": "

    Key ID obtained from the audit log stream key endpoint used to encrypt secrets.

    ", + "isRequired": true + }, + { + "type": "string", + "name": "encrypted_json_credentials", + "description": "", + "isRequired": true + } + ] + }, + { + "type": "object", + "name": "DatadogConfig", + "description": "

    Datadog Config for audit log streaming configuration.

    ", + "isRequired": [ + "encrypted_token", + "site", + "key_id" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "encrypted_token", + "description": "

    Encrypted Splunk token.

    ", + "isRequired": true + }, + { + "type": "string", + "name": "site", + "description": "

    Datadog Site to use.

    ", + "isRequired": true, + "enum": [ + "US", + "US3", + "US5", + "EU1", + "US1-FED", + "AP1" + ] + }, + { + "type": "string", + "name": "key_id", + "description": "

    Key ID obtained from the audit log stream key endpoint used to encrypt secrets.

    ", + "isRequired": true + } + ] + } + ], + "oneOfObject": true + } + ], + "progAccess": { + "userToServerRest": false, + "serverToServer": false, + "fineGrainedPat": false, + "permissions": [] + }, + "codeExamples": [ + { + "key": "default", + "request": { + "contentType": "application/json", + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "enabled": false, + "stream_type": "Azure Event Hubs", + "vendor_specific": { + "namespace": "newnamespace", + "shared_access_key_name": "newaccesskeyname", + "shared_access_key": "newaccesskey", + "event_hub_name": "neweventhub" + } + }, + "parameters": { + "enterprise": "ENTERPRISE" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

    The audit log stream configuration was created successfully.

    ", + "example": { + "id": 1, + "stream_type": "Splunk", + "stream_details": "US", + "enabled": true, + "created_at": "2024-06-06T08:00:00Z", + "updated_at": "2024-06-06T08:00:00Z", + "paused_at": null + }, + "schema": { + "title": "Get an audit log streaming configuration", + "description": "Get an audit log streaming configuration for an enterprise.", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "stream_type": { + "type": "string" + }, + "stream_details": { + "type": "string" + }, + "enabled": { + "type": "boolean" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "paused_at": { + "type": [ + "string", + "null" + ], + "format": "date-time" + } + }, + "required": [ + "id", + "stream_type", + "stream_details", + "enabled", + "created_at", + "updated_at" + ] + } + } + } + ], + "previews": [], + "descriptionHTML": "

    Creates an audit log streaming configuration for any of the supported streaming endpoints: Azure Blob Storage, Azure Event Hubs, Amazon S3, Splunk, Google Cloud Storage, Datadog.

    \n

    When using this endpoint, you must encrypt the credentials following the same encryption steps as outlined in the guide on encrypting secrets. See \"Encrypting secrets for the REST API.\"

    ", + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

    The audit log stream configuration was created successfully.

    " + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "get", + "requestPath": "/enterprises/{enterprise}/audit-log/streams/{stream_id}", + "title": "List one audit log streaming configuration via a stream ID", + "category": "enterprise-admin", + "subcategory": "audit-log", + "parameters": [ + { + "name": "enterprise", + "description": "

    The slug version of the enterprise name. You can also substitute this value with the enterprise id.

    ", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "stream_id", + "description": "

    The ID of the audit log stream configuration.

    ", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "bodyParameters": [], + "progAccess": { + "userToServerRest": false, + "serverToServer": false, + "fineGrainedPat": false, + "permissions": [] + }, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "enterprise": "ENTERPRISE", + "stream_id": "STREAM_ID" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

    Lists one audit log stream configuration via stream ID.

    ", + "example": { + "id": 1, + "stream_type": "Splunk", + "stream_details": "US", + "enabled": true, + "created_at": "2024-06-06T08:00:00Z", + "updated_at": "2024-06-06T08:00:00Z", + "paused_at": null + }, + "schema": { + "title": "Get an audit log streaming configuration", + "description": "Get an audit log streaming configuration for an enterprise.", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "stream_type": { + "type": "string" + }, + "stream_details": { + "type": "string" + }, + "enabled": { + "type": "boolean" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "paused_at": { + "type": [ + "string", + "null" + ], + "format": "date-time" + } + }, + "required": [ + "id", + "stream_type", + "stream_details", + "enabled", + "created_at", + "updated_at" + ] + } + } + } + ], + "previews": [], + "descriptionHTML": "

    Lists one audit log stream configuration via a stream ID.

    \n

    When using this endpoint, you must encrypt the credentials following the same encryption steps as outlined in the guide on encrypting secrets. See \"Encrypting secrets for the REST API.\"

    ", + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

    Lists one audit log stream configuration via stream ID.

    " + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "put", + "requestPath": "/enterprises/{enterprise}/audit-log/streams/{stream_id}", + "title": "Update an existing audit log stream configuration", + "category": "enterprise-admin", + "subcategory": "audit-log", + "parameters": [ + { + "name": "enterprise", + "description": "

    The slug version of the enterprise name. You can also substitute this value with the enterprise id.

    ", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "stream_id", + "description": "

    The ID of the audit log stream configuration.

    ", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "bodyParameters": [ + { + "type": "boolean", + "name": "enabled", + "in": "body", + "description": "

    This setting pauses or resumes a stream.

    ", + "isRequired": true + }, + { + "type": "string", + "name": "stream_type", + "in": "body", + "description": "

    The audit log streaming provider. The name is case sensitive.

    ", + "isRequired": true, + "enum": [ + "Azure Blob Storage", + "Azure Event Hubs", + "Amazon S3", + "Splunk", + "HTTPS Event Collector", + "Google Cloud Storage", + "Datadog" + ] + }, + { + "type": "object", + "name": "vendor_specific", + "in": "body", + "description": "", + "isRequired": true, + "childParamsGroups": [ + { + "type": "object", + "name": "AzureBlobConfig", + "description": "

    Azure Blob Config for audit log streaming configuration.

    ", + "isRequired": [ + "key_id", + "encrypted_sas_url" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "key_id", + "description": "

    Key ID obtained from the audit log stream key endpoint used to encrypt secrets.

    ", + "isRequired": true + }, + { + "type": "string", + "name": "encrypted_sas_url", + "description": "", + "isRequired": true + } + ] + }, + { + "type": "object", + "name": "AzureHubConfig", + "description": "

    Azure Event Hubs Config for audit log streaming configuration.

    ", + "isRequired": [ + "name", + "encrypted_connstring", + "key_id" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "name", + "description": "

    Instance name of Azure Event Hubs

    ", + "isRequired": true + }, + { + "type": "string", + "name": "encrypted_connstring", + "description": "

    Encrypted Connection String for Azure Event Hubs

    ", + "isRequired": true + }, + { + "type": "string", + "name": "key_id", + "description": "

    Key ID obtained from the audit log stream key endpoint used to encrypt secrets.

    ", + "isRequired": true + } + ] + }, + { + "type": "object", + "name": "AmazonS3OIDCConfig", + "description": "

    Amazon S3 OIDC Config for audit log streaming configuration.

    ", + "isRequired": [ + "arn_role", + "authentication_type", + "bucket", + "key_id", + "region" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "bucket", + "description": "

    Amazon S3 Bucket Name.

    ", + "isRequired": true + }, + { + "type": "string", + "name": "region", + "description": "

    AWS S3 Bucket Region.

    ", + "isRequired": true + }, + { + "type": "string", + "name": "key_id", + "description": "

    Key ID obtained from the audit log stream key endpoint used to encrypt secrets.

    ", + "isRequired": true + }, + { + "type": "string", + "name": "authentication_type", + "description": "

    Authentication Type for Amazon S3.

    ", + "isRequired": true, + "enum": [ + "oidc" + ] + }, + { + "type": "string", + "name": "arn_role", + "description": "", + "isRequired": true + } + ] + }, + { + "type": "object", + "name": "AmazonS3AccessKeysConfig", + "description": "

    Amazon S3 Access Keys Config for audit log streaming configuration.

    ", + "isRequired": [ + "authentication_type", + "bucket", + "encrypted_access_key_id", + "encrypted_secret_key", + "key_id", + "region" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "bucket", + "description": "

    Amazon S3 Bucket Name.

    ", + "isRequired": true + }, + { + "type": "string", + "name": "region", + "description": "

    Amazon S3 Bucket Name.

    ", + "isRequired": true + }, + { + "type": "string", + "name": "key_id", + "description": "

    Key ID obtained from the audit log stream key endpoint used to encrypt secrets.

    ", + "isRequired": true + }, + { + "type": "string", + "name": "authentication_type", + "description": "

    Authentication Type for Amazon S3.

    ", + "isRequired": true, + "enum": [ + "access_keys" + ] + }, + { + "type": "string", + "name": "encrypted_secret_key", + "description": "

    Encrypted AWS Secret Key.

    ", + "isRequired": true + }, + { + "type": "string", + "name": "encrypted_access_key_id", + "description": "

    Encrypted AWS Access Key ID.

    ", + "isRequired": true + } + ] + }, + { + "type": "object", + "name": "SplunkConfig", + "description": "

    Splunk Config for Audit Log Stream Configuration

    ", + "isRequired": [ + "domain", + "encrypted_token", + "key_id", + "port", + "ssl_verify" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "domain", + "description": "

    Domain of Splunk instance.

    ", + "isRequired": true + }, + { + "type": "integer", + "name": "port", + "description": "

    The port number for connecting to Splunk.

    ", + "isRequired": true + }, + { + "type": "string", + "name": "key_id", + "description": "

    Key ID obtained from the audit log stream key endpoint used to encrypt secrets.

    ", + "isRequired": true + }, + { + "type": "string", + "name": "encrypted_token", + "description": "

    Encrypted Token.

    ", + "isRequired": true + }, + { + "type": "boolean", + "name": "ssl_verify", + "description": "

    SSL verification helps ensure your events are sent to your Splunk endpoint securely.

    ", + "isRequired": true + } + ] + }, + { + "type": "object", + "name": "GoogleCloudConfig", + "description": "

    Google Cloud Config for audit log streaming configuration.

    ", + "isRequired": [ + "bucket", + "key_id", + "encrypted_json_credentials" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "bucket", + "description": "

    Google Cloud Bucket Name

    ", + "isRequired": true + }, + { + "type": "string", + "name": "key_id", + "description": "

    Key ID obtained from the audit log stream key endpoint used to encrypt secrets.

    ", + "isRequired": true + }, + { + "type": "string", + "name": "encrypted_json_credentials", + "description": "", + "isRequired": true + } + ] + }, + { + "type": "object", + "name": "DatadogConfig", + "description": "

    Datadog Config for audit log streaming configuration.

    ", + "isRequired": [ + "encrypted_token", + "site", + "key_id" + ], + "childParamsGroups": [ + { + "type": "string", + "name": "encrypted_token", + "description": "

    Encrypted Splunk token.

    ", + "isRequired": true + }, + { + "type": "string", + "name": "site", + "description": "

    Datadog Site to use.

    ", + "isRequired": true, + "enum": [ + "US", + "US3", + "US5", + "EU1", + "US1-FED", + "AP1" + ] + }, + { + "type": "string", + "name": "key_id", + "description": "

    Key ID obtained from the audit log stream key endpoint used to encrypt secrets.

    ", + "isRequired": true + } + ] + } + ], + "oneOfObject": true + } + ], + "progAccess": { + "userToServerRest": false, + "serverToServer": false, + "fineGrainedPat": false, + "permissions": [] + }, + "codeExamples": [ + { + "key": "default", + "request": { + "contentType": "application/json", + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "enabled": false, + "stream_type": "Azure Event Hubs", + "vendor_specific": { + "namespace": "newnamespace", + "shared_access_key_name": "newaccesskeyname", + "shared_access_key": "newaccesskey", + "event_hub_name": "neweventhub" + } + }, + "parameters": { + "enterprise": "ENTERPRISE", + "stream_id": "STREAM_ID" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

    Successful update

    ", + "example": { + "id": 1, + "stream_type": "Splunk", + "stream_details": "US", + "enabled": true, + "created_at": "2024-06-06T08:00:00Z", + "updated_at": "2024-06-06T08:00:00Z", + "paused_at": null + }, + "schema": { + "title": "Get an audit log streaming configuration", + "description": "Get an audit log streaming configuration for an enterprise.", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "stream_type": { + "type": "string" + }, + "stream_details": { + "type": "string" + }, + "enabled": { + "type": "boolean" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "paused_at": { + "type": [ + "string", + "null" + ], + "format": "date-time" + } + }, + "required": [ + "id", + "stream_type", + "stream_details", + "enabled", + "created_at", + "updated_at" + ] + } + } + } + ], + "previews": [], + "descriptionHTML": "

    Updates an existing audit log stream configuration for an enterprise.

    \n

    When using this endpoint, you must encrypt the credentials following the same encryption steps as outlined in the guide on encrypting secrets. See \"Encrypting secrets for the REST API.\"

    ", + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

    Successful update

    " + }, + { + "httpStatusCode": "422", + "description": "

    Validation error

    " + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "delete", + "requestPath": "/enterprises/{enterprise}/audit-log/streams/{stream_id}", + "title": "Delete an audit log streaming configuration for an enterprise", + "category": "enterprise-admin", + "subcategory": "audit-log", + "parameters": [ + { + "name": "enterprise", + "description": "

    The slug version of the enterprise name. You can also substitute this value with the enterprise id.

    ", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "stream_id", + "description": "

    The ID of the audit log stream configuration.

    ", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "bodyParameters": [], + "progAccess": { + "userToServerRest": false, + "serverToServer": false, + "fineGrainedPat": false, + "permissions": [] + }, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "enterprise": "ENTERPRISE", + "stream_id": "STREAM_ID" + } + }, + "response": { + "statusCode": "204", + "description": "

    The audit log stream configuration was deleted successfully.

    " + } + } + ], + "previews": [], + "descriptionHTML": "

    Deletes an existing audit log stream configuration for an enterprise.

    \n

    When using this endpoint, you must encrypt the credentials following the same encryption steps as outlined in the guide on encrypting secrets. See \"Encrypting secrets for the REST API.\"

    ", + "statusCodes": [ + { + "httpStatusCode": "204", + "description": "

    The audit log stream configuration was deleted successfully.

    " + } + ] } ], "billing": [ @@ -377581,7 +378772,7 @@ }, { "name": "min_timestamp", - "description": "

    The minimum timestamp to query for stats

    ", + "description": "

    The minimum timestamp to query for stats. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", "in": "query", "required": true, "schema": { @@ -377590,9 +378781,9 @@ }, { "name": "max_timestamp", - "description": "

    The maximum timestamp to query for stats

    ", + "description": "

    The maximum timestamp to query for stats. Defaults to the time 30 days ago. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", "in": "query", - "required": true, + "required": false, "schema": { "type": "string" } @@ -377756,377 +378947,7 @@ }, { "name": "min_timestamp", - "description": "

    The minimum timestamp to query for stats

    ", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "max_timestamp", - "description": "

    The maximum timestamp to query for stats

    ", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "page", - "description": "

    The page number of the results to fetch. For more information, see \"Using pagination in the REST API.\"

    ", - "in": "query", - "schema": { - "type": "integer", - "default": 1 - } - }, - { - "name": "per_page", - "description": "

    The number of results per page (max 100). For more information, see \"Using pagination in the REST API.\"

    ", - "in": "query", - "schema": { - "type": "integer", - "default": 30 - } - }, - { - "name": "direction", - "description": "

    The direction to sort the results by.

    ", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "desc" - } - }, - { - "name": "sort", - "description": "

    The property to sort the results by.

    ", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "last_rate_limited_timestamp", - "last_request_timestamp", - "rate_limited_request_count", - "subject_name", - "total_request_count" - ], - "default": "total_request_count" - } - } - } - ], - "bodyParameters": [], - "progAccess": { - "userToServerRest": true, - "serverToServer": true, - "fineGrainedPat": true, - "permissions": [ - { - "\"API Insights\" organization permissions": "read" - } - ] - }, - "codeExamples": [ - { - "key": "default", - "request": { - "description": "Example", - "acceptHeader": "application/vnd.github.v3+json", - "parameters": { - "org": "ORG" - } - }, - "response": { - "statusCode": "200", - "contentType": "application/json", - "description": "

    Response

    ", - "example": [ - { - "subject_type": "installation", - "subject_id": 954453, - "subject_name": "GitHub Actions", - "integration_id": 124345, - "total_request_count": 544665, - "rate_limited_request_count": 13, - "last_request_timestamp": "2024-09-18T15:43:03Z", - "last_rate_limited_timestamp": "2024-09-18T06:30:09Z" - } - ], - "schema": { - "title": "Subject Stats", - "description": "API Insights usage subject stats for an organization", - "type": "array", - "items": { - "type": "object", - "properties": { - "subject_type": { - "type": "string" - }, - "subject_name": { - "type": "string" - }, - "subject_id": { - "type": "integer", - "format": "int64" - }, - "total_request_count": { - "type": "integer" - }, - "rate_limited_request_count": { - "type": "integer" - }, - "last_rate_limited_timestamp": { - "type": [ - "string", - "null" - ] - }, - "last_request_timestamp": { - "type": "string" - } - } - } - } - } - } - ], - "previews": [], - "descriptionHTML": "

    Get API request statistics for all subjects within an organization within a specified time frame. Subjects can be users or GitHub Apps.

    ", - "statusCodes": [ - { - "httpStatusCode": "200", - "description": "

    OK

    " - } - ] - }, - { - "serverUrl": "https://api.github.com", - "verb": "get", - "requestPath": "/orgs/{org}/insights/api/summary-stats", - "title": "Get summary stats", - "category": "orgs", - "subcategory": "api-insights", - "parameters": [ - { - "name": "org", - "description": "

    The organization name. The name is not case sensitive.

    ", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "min_timestamp", - "description": "

    The minimum timestamp to query for stats

    ", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "max_timestamp", - "description": "

    The maximum timestamp to query for stats

    ", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "bodyParameters": [], - "progAccess": { - "userToServerRest": true, - "serverToServer": true, - "fineGrainedPat": true, - "permissions": [ - { - "\"API Insights\" organization permissions": "read" - } - ] - }, - "codeExamples": [ - { - "key": "default", - "request": { - "description": "Example", - "acceptHeader": "application/vnd.github.v3+json", - "parameters": { - "org": "ORG" - } - }, - "response": { - "statusCode": "200", - "contentType": "application/json", - "description": "

    Response

    ", - "example": { - "total_request_count": 34225, - "rate_limited_request_count": 23 - }, - "schema": { - "title": "Summary Stats", - "description": "API Insights usage summary stats for an organization", - "type": "object", - "properties": { - "total_request_count": { - "description": "The total number of requests within the queried time period", - "type": "integer", - "format": "int64" - }, - "rate_limited_request_count": { - "description": "The total number of requests that were rate limited within the queried time period", - "type": "integer", - "format": "int64" - } - } - } - } - } - ], - "previews": [], - "descriptionHTML": "

    Get overall statistics of API requests made within an organization by all users and apps within a specified time frame.

    ", - "statusCodes": [ - { - "httpStatusCode": "200", - "description": "

    OK

    " - } - ] - }, - { - "serverUrl": "https://api.github.com", - "verb": "get", - "requestPath": "/orgs/{org}/insights/api/summary-stats/users/{user_id}", - "title": "Get summary stats by user", - "category": "orgs", - "subcategory": "api-insights", - "parameters": [ - { - "name": "org", - "description": "

    The organization name. The name is not case sensitive.

    ", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "user_id", - "in": "path", - "description": "

    The ID of the user to query for stats

    ", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "min_timestamp", - "description": "

    The minimum timestamp to query for stats

    ", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "max_timestamp", - "description": "

    The maximum timestamp to query for stats

    ", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "bodyParameters": [], - "progAccess": { - "userToServerRest": true, - "serverToServer": true, - "fineGrainedPat": true, - "permissions": [ - { - "\"API Insights\" organization permissions": "read" - } - ] - }, - "codeExamples": [ - { - "key": "default", - "request": { - "description": "Example", - "acceptHeader": "application/vnd.github.v3+json", - "parameters": { - "org": "ORG", - "user_id": "USER_ID" - } - }, - "response": { - "statusCode": "200", - "contentType": "application/json", - "description": "

    Response

    ", - "example": { - "total_request_count": 34225, - "rate_limited_request_count": 23 - }, - "schema": { - "title": "Summary Stats", - "description": "API Insights usage summary stats for an organization", - "type": "object", - "properties": { - "total_request_count": { - "description": "The total number of requests within the queried time period", - "type": "integer", - "format": "int64" - }, - "rate_limited_request_count": { - "description": "The total number of requests that were rate limited within the queried time period", - "type": "integer", - "format": "int64" - } - } - } - } - } - ], - "previews": [], - "descriptionHTML": "

    Get overall statistics of API requests within the organization for a user.

    ", - "statusCodes": [ - { - "httpStatusCode": "200", - "description": "

    OK

    " - } - ] - }, - { - "serverUrl": "https://api.github.com", - "verb": "get", - "requestPath": "/orgs/{org}/insights/api/summary-stats/{actor_type}/{actor_id}", - "title": "Get summary stats by actor", - "category": "orgs", - "subcategory": "api-insights", - "parameters": [ - { - "name": "org", - "description": "

    The organization name. The name is not case sensitive.

    ", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "min_timestamp", - "description": "

    The minimum timestamp to query for stats

    ", + "description": "

    The minimum timestamp to query for stats. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", "in": "query", "required": true, "schema": { @@ -378135,13 +378956,383 @@ }, { "name": "max_timestamp", - "description": "

    The maximum timestamp to query for stats

    ", + "description": "

    The maximum timestamp to query for stats. Defaults to the time 30 days ago. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "page", + "description": "

    The page number of the results to fetch. For more information, see \"Using pagination in the REST API.\"

    ", + "in": "query", + "schema": { + "type": "integer", + "default": 1 + } + }, + { + "name": "per_page", + "description": "

    The number of results per page (max 100). For more information, see \"Using pagination in the REST API.\"

    ", + "in": "query", + "schema": { + "type": "integer", + "default": 30 + } + }, + { + "name": "direction", + "description": "

    The direction to sort the results by.

    ", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "desc" + } + }, + { + "name": "sort", + "description": "

    The property to sort the results by.

    ", + "in": "query", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "last_rate_limited_timestamp", + "last_request_timestamp", + "rate_limited_request_count", + "subject_name", + "total_request_count" + ], + "default": "total_request_count" + } + } + } + ], + "bodyParameters": [], + "progAccess": { + "userToServerRest": true, + "serverToServer": true, + "fineGrainedPat": true, + "permissions": [ + { + "\"API Insights\" organization permissions": "read" + } + ] + }, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "org": "ORG" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

    Response

    ", + "example": [ + { + "subject_type": "installation", + "subject_id": 954453, + "subject_name": "GitHub Actions", + "integration_id": 124345, + "total_request_count": 544665, + "rate_limited_request_count": 13, + "last_request_timestamp": "2024-09-18T15:43:03Z", + "last_rate_limited_timestamp": "2024-09-18T06:30:09Z" + } + ], + "schema": { + "title": "Subject Stats", + "description": "API Insights usage subject stats for an organization", + "type": "array", + "items": { + "type": "object", + "properties": { + "subject_type": { + "type": "string" + }, + "subject_name": { + "type": "string" + }, + "subject_id": { + "type": "integer", + "format": "int64" + }, + "total_request_count": { + "type": "integer" + }, + "rate_limited_request_count": { + "type": "integer" + }, + "last_rate_limited_timestamp": { + "type": [ + "string", + "null" + ] + }, + "last_request_timestamp": { + "type": "string" + } + } + } + } + } + } + ], + "previews": [], + "descriptionHTML": "

    Get API request statistics for all subjects within an organization within a specified time frame. Subjects can be users or GitHub Apps.

    ", + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

    OK

    " + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "get", + "requestPath": "/orgs/{org}/insights/api/summary-stats", + "title": "Get summary stats", + "category": "orgs", + "subcategory": "api-insights", + "parameters": [ + { + "name": "org", + "description": "

    The organization name. The name is not case sensitive.

    ", + "in": "path", "required": true, "schema": { "type": "string" } }, + { + "name": "min_timestamp", + "description": "

    The minimum timestamp to query for stats. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "max_timestamp", + "description": "

    The maximum timestamp to query for stats. Defaults to the time 30 days ago. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + } + ], + "bodyParameters": [], + "progAccess": { + "userToServerRest": true, + "serverToServer": true, + "fineGrainedPat": true, + "permissions": [ + { + "\"API Insights\" organization permissions": "read" + } + ] + }, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "org": "ORG" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

    Response

    ", + "example": { + "total_request_count": 34225, + "rate_limited_request_count": 23 + }, + "schema": { + "title": "Summary Stats", + "description": "API Insights usage summary stats for an organization", + "type": "object", + "properties": { + "total_request_count": { + "description": "The total number of requests within the queried time period", + "type": "integer", + "format": "int64" + }, + "rate_limited_request_count": { + "description": "The total number of requests that were rate limited within the queried time period", + "type": "integer", + "format": "int64" + } + } + } + } + } + ], + "previews": [], + "descriptionHTML": "

    Get overall statistics of API requests made within an organization by all users and apps within a specified time frame.

    ", + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

    OK

    " + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "get", + "requestPath": "/orgs/{org}/insights/api/summary-stats/users/{user_id}", + "title": "Get summary stats by user", + "category": "orgs", + "subcategory": "api-insights", + "parameters": [ + { + "name": "org", + "description": "

    The organization name. The name is not case sensitive.

    ", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "user_id", + "in": "path", + "description": "

    The ID of the user to query for stats

    ", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "min_timestamp", + "description": "

    The minimum timestamp to query for stats. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "max_timestamp", + "description": "

    The maximum timestamp to query for stats. Defaults to the time 30 days ago. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + } + ], + "bodyParameters": [], + "progAccess": { + "userToServerRest": true, + "serverToServer": true, + "fineGrainedPat": true, + "permissions": [ + { + "\"API Insights\" organization permissions": "read" + } + ] + }, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "org": "ORG", + "user_id": "USER_ID" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "

    Response

    ", + "example": { + "total_request_count": 34225, + "rate_limited_request_count": 23 + }, + "schema": { + "title": "Summary Stats", + "description": "API Insights usage summary stats for an organization", + "type": "object", + "properties": { + "total_request_count": { + "description": "The total number of requests within the queried time period", + "type": "integer", + "format": "int64" + }, + "rate_limited_request_count": { + "description": "The total number of requests that were rate limited within the queried time period", + "type": "integer", + "format": "int64" + } + } + } + } + } + ], + "previews": [], + "descriptionHTML": "

    Get overall statistics of API requests within the organization for a user.

    ", + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "

    OK

    " + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "get", + "requestPath": "/orgs/{org}/insights/api/summary-stats/{actor_type}/{actor_id}", + "title": "Get summary stats by actor", + "category": "orgs", + "subcategory": "api-insights", + "parameters": [ + { + "name": "org", + "description": "

    The organization name. The name is not case sensitive.

    ", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "min_timestamp", + "description": "

    The minimum timestamp to query for stats. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "max_timestamp", + "description": "

    The maximum timestamp to query for stats. Defaults to the time 30 days ago. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, { "name": "actor_type", "in": "path", @@ -378247,7 +379438,7 @@ }, { "name": "min_timestamp", - "description": "

    The minimum timestamp to query for stats

    ", + "description": "

    The minimum timestamp to query for stats. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", "in": "query", "required": true, "schema": { @@ -378256,9 +379447,9 @@ }, { "name": "max_timestamp", - "description": "

    The maximum timestamp to query for stats

    ", + "description": "

    The maximum timestamp to query for stats. Defaults to the time 30 days ago. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", "in": "query", - "required": true, + "required": false, "schema": { "type": "string" } @@ -378391,7 +379582,7 @@ }, { "name": "min_timestamp", - "description": "

    The minimum timestamp to query for stats

    ", + "description": "

    The minimum timestamp to query for stats. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", "in": "query", "required": true, "schema": { @@ -378400,9 +379591,9 @@ }, { "name": "max_timestamp", - "description": "

    The maximum timestamp to query for stats

    ", + "description": "

    The maximum timestamp to query for stats. Defaults to the time 30 days ago. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", "in": "query", - "required": true, + "required": false, "schema": { "type": "string" } @@ -378552,7 +379743,7 @@ }, { "name": "min_timestamp", - "description": "

    The minimum timestamp to query for stats

    ", + "description": "

    The minimum timestamp to query for stats. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", "in": "query", "required": true, "schema": { @@ -378561,9 +379752,9 @@ }, { "name": "max_timestamp", - "description": "

    The maximum timestamp to query for stats

    ", + "description": "

    The maximum timestamp to query for stats. Defaults to the time 30 days ago. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", "in": "query", - "required": true, + "required": false, "schema": { "type": "string" } @@ -378698,7 +379889,7 @@ }, { "name": "min_timestamp", - "description": "

    The minimum timestamp to query for stats

    ", + "description": "

    The minimum timestamp to query for stats. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", "in": "query", "required": true, "schema": { @@ -378707,9 +379898,9 @@ }, { "name": "max_timestamp", - "description": "

    The maximum timestamp to query for stats

    ", + "description": "

    The maximum timestamp to query for stats. Defaults to the time 30 days ago. This is a timestamp in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ.

    ", "in": "query", - "required": true, + "required": false, "schema": { "type": "string" } @@ -478774,7 +479965,7 @@ "false", "legacy" ], - "default": true + "default": "true" } ], "progAccess": { @@ -555079,7 +556270,7 @@ { "type": "pull_request_title", "details": { - "pull_request_title_url": "https://api.github.com/repos/octocat/Hello-World/pull/2846" + "pull_request_title_url": "https://api.github.com/repos/octocat/Hello-World/pulls/2846" } }, { @@ -555378,7 +556569,7 @@ "format": "uri", "description": "The API URL to get the pull request where the secret was detected.", "examples": [ - "https://api.github.com/repos/octocat/Hello-World/pull/2846" + "https://api.github.com/repos/octocat/Hello-World/pulls/2846" ] } }, @@ -555395,7 +556586,7 @@ "format": "uri", "description": "The API URL to get the pull request where the secret was detected.", "examples": [ - "https://api.github.com/repos/octocat/Hello-World/pull/2846" + "https://api.github.com/repos/octocat/Hello-World/pulls/2846" ] } }, diff --git a/src/rest/data/ghes-3.10-2022-11-28/schema.json b/src/rest/data/ghes-3.10-2022-11-28/schema.json index ecc88d4f7107..c2847529362c 100644 --- a/src/rest/data/ghes-3.10-2022-11-28/schema.json +++ b/src/rest/data/ghes-3.10-2022-11-28/schema.json @@ -406150,7 +406150,7 @@ "false", "legacy" ], - "default": true + "default": "true" } ], "progAccess": { @@ -467450,7 +467450,7 @@ { "type": "pull_request_title", "details": { - "pull_request_title_url": "https://api.github.com/repos/octocat/Hello-World/pull/2846" + "pull_request_title_url": "https://api.github.com/repos/octocat/Hello-World/pulls/2846" } }, { @@ -467680,7 +467680,7 @@ "format": "uri", "description": "The API URL to get the pull request where the secret was detected.", "examples": [ - "https://api.github.com/repos/octocat/Hello-World/pull/2846" + "https://api.github.com/repos/octocat/Hello-World/pulls/2846" ] } }, @@ -467697,7 +467697,7 @@ "format": "uri", "description": "The API URL to get the pull request where the secret was detected.", "examples": [ - "https://api.github.com/repos/octocat/Hello-World/pull/2846" + "https://api.github.com/repos/octocat/Hello-World/pulls/2846" ] } }, diff --git a/src/rest/data/ghes-3.11-2022-11-28/schema.json b/src/rest/data/ghes-3.11-2022-11-28/schema.json index a3ed0aeb1325..17c0548fe474 100644 --- a/src/rest/data/ghes-3.11-2022-11-28/schema.json +++ b/src/rest/data/ghes-3.11-2022-11-28/schema.json @@ -412024,7 +412024,7 @@ "false", "legacy" ], - "default": true + "default": "true" } ], "progAccess": { @@ -480307,7 +480307,7 @@ { "type": "pull_request_title", "details": { - "pull_request_title_url": "https://api.github.com/repos/octocat/Hello-World/pull/2846" + "pull_request_title_url": "https://api.github.com/repos/octocat/Hello-World/pulls/2846" } }, { @@ -480537,7 +480537,7 @@ "format": "uri", "description": "The API URL to get the pull request where the secret was detected.", "examples": [ - "https://api.github.com/repos/octocat/Hello-World/pull/2846" + "https://api.github.com/repos/octocat/Hello-World/pulls/2846" ] } }, @@ -480554,7 +480554,7 @@ "format": "uri", "description": "The API URL to get the pull request where the secret was detected.", "examples": [ - "https://api.github.com/repos/octocat/Hello-World/pull/2846" + "https://api.github.com/repos/octocat/Hello-World/pulls/2846" ] } }, diff --git a/src/rest/data/ghes-3.12-2022-11-28/schema.json b/src/rest/data/ghes-3.12-2022-11-28/schema.json index 343d7d81207a..600a63716529 100644 --- a/src/rest/data/ghes-3.12-2022-11-28/schema.json +++ b/src/rest/data/ghes-3.12-2022-11-28/schema.json @@ -414895,7 +414895,7 @@ "false", "legacy" ], - "default": true + "default": "true" } ], "progAccess": { @@ -483856,7 +483856,7 @@ { "type": "pull_request_title", "details": { - "pull_request_title_url": "https://api.github.com/repos/octocat/Hello-World/pull/2846" + "pull_request_title_url": "https://api.github.com/repos/octocat/Hello-World/pulls/2846" } }, { @@ -484086,7 +484086,7 @@ "format": "uri", "description": "The API URL to get the pull request where the secret was detected.", "examples": [ - "https://api.github.com/repos/octocat/Hello-World/pull/2846" + "https://api.github.com/repos/octocat/Hello-World/pulls/2846" ] } }, @@ -484103,7 +484103,7 @@ "format": "uri", "description": "The API URL to get the pull request where the secret was detected.", "examples": [ - "https://api.github.com/repos/octocat/Hello-World/pull/2846" + "https://api.github.com/repos/octocat/Hello-World/pulls/2846" ] } }, diff --git a/src/rest/data/ghes-3.13-2022-11-28/schema.json b/src/rest/data/ghes-3.13-2022-11-28/schema.json index 9c6ff785fd04..9378981713c1 100644 --- a/src/rest/data/ghes-3.13-2022-11-28/schema.json +++ b/src/rest/data/ghes-3.13-2022-11-28/schema.json @@ -417326,7 +417326,7 @@ "false", "legacy" ], - "default": true + "default": "true" } ], "progAccess": { @@ -486999,7 +486999,7 @@ { "type": "pull_request_title", "details": { - "pull_request_title_url": "https://api.github.com/repos/octocat/Hello-World/pull/2846" + "pull_request_title_url": "https://api.github.com/repos/octocat/Hello-World/pulls/2846" } }, { @@ -487229,7 +487229,7 @@ "format": "uri", "description": "The API URL to get the pull request where the secret was detected.", "examples": [ - "https://api.github.com/repos/octocat/Hello-World/pull/2846" + "https://api.github.com/repos/octocat/Hello-World/pulls/2846" ] } }, @@ -487246,7 +487246,7 @@ "format": "uri", "description": "The API URL to get the pull request where the secret was detected.", "examples": [ - "https://api.github.com/repos/octocat/Hello-World/pull/2846" + "https://api.github.com/repos/octocat/Hello-World/pulls/2846" ] } }, diff --git a/src/rest/data/ghes-3.14-2022-11-28/schema.json b/src/rest/data/ghes-3.14-2022-11-28/schema.json index 952051a3461a..d5f51a37d71d 100644 --- a/src/rest/data/ghes-3.14-2022-11-28/schema.json +++ b/src/rest/data/ghes-3.14-2022-11-28/schema.json @@ -420575,7 +420575,7 @@ "false", "legacy" ], - "default": true + "default": "true" } ], "progAccess": { @@ -490735,7 +490735,7 @@ { "type": "pull_request_title", "details": { - "pull_request_title_url": "https://api.github.com/repos/octocat/Hello-World/pull/2846" + "pull_request_title_url": "https://api.github.com/repos/octocat/Hello-World/pulls/2846" } }, { @@ -491034,7 +491034,7 @@ "format": "uri", "description": "The API URL to get the pull request where the secret was detected.", "examples": [ - "https://api.github.com/repos/octocat/Hello-World/pull/2846" + "https://api.github.com/repos/octocat/Hello-World/pulls/2846" ] } }, @@ -491051,7 +491051,7 @@ "format": "uri", "description": "The API URL to get the pull request where the secret was detected.", "examples": [ - "https://api.github.com/repos/octocat/Hello-World/pull/2846" + "https://api.github.com/repos/octocat/Hello-World/pulls/2846" ] } }, diff --git a/src/rest/data/ghes-3.15-2022-11-28/schema.json b/src/rest/data/ghes-3.15-2022-11-28/schema.json index c23ce897218f..d62c5615c0dd 100644 --- a/src/rest/data/ghes-3.15-2022-11-28/schema.json +++ b/src/rest/data/ghes-3.15-2022-11-28/schema.json @@ -204875,1348 +204875,6 @@ ] } ], - "management-console": [ - { - "serverUrl": "http(s)://HOSTNAME", - "verb": "get", - "requestPath": "/setup/api/configcheck", - "title": "Get the configuration status", - "category": "enterprise-admin", - "subcategory": "management-console", - "parameters": [], - "bodyParameters": [], - "codeExamples": [ - { - "key": "default", - "request": { - "description": "Example", - "acceptHeader": "application/vnd.github.v3+json" - }, - "response": { - "statusCode": "200", - "contentType": "application/json", - "description": "

    Response

    ", - "example": { - "status": "running", - "progress": [ - { - "status": "DONE", - "key": "Appliance core components" - }, - { - "status": "DONE", - "key": "GitHub utilities" - }, - { - "status": "DONE", - "key": "GitHub applications" - }, - { - "status": "CONFIGURING", - "key": "GitHub services" - }, - { - "status": "PENDING", - "key": "Reloading appliance services" - } - ] - }, - "schema": { - "type": "object", - "properties": { - "status": { - "type": "string" - }, - "progress": { - "type": "array", - "items": { - "type": "object", - "properties": { - "status": { - "type": "string" - }, - "key": { - "type": "string" - } - }, - "required": [ - "status", - "key" - ] - } - } - } - } - } - } - ], - "previews": [], - "descriptionHTML": "

    This endpoint allows you to check the status of the most recent configuration process:

    \n

    Note that you may need to wait several seconds after you start a process before you can check its status.

    \n

    The different statuses are:

    \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
    StatusDescription
    PENDINGThe job has not started yet
    CONFIGURINGThe job is running
    DONEThe job has finished correctly
    FAILEDThe job has finished unexpectedly
    ", - "statusCodes": [ - { - "httpStatusCode": "200", - "description": "

    OK

    " - }, - { - "httpStatusCode": "401", - "description": "

    Unauthorized

    " - } - ] - }, - { - "serverUrl": "http(s)://HOSTNAME", - "verb": "post", - "requestPath": "/setup/api/configure", - "title": "Start a configuration process", - "category": "enterprise-admin", - "subcategory": "management-console", - "parameters": [], - "bodyParameters": [], - "codeExamples": [ - { - "key": "default", - "request": { - "description": "Example", - "acceptHeader": "application/vnd.github.v3+json" - }, - "response": { - "statusCode": "202", - "description": "

    Response

    " - } - } - ], - "previews": [], - "descriptionHTML": "

    This endpoint allows you to start a configuration process at any time for your updated settings to take effect:

    ", - "statusCodes": [ - { - "httpStatusCode": "202", - "description": "

    Accepted

    " - }, - { - "httpStatusCode": "401", - "description": "

    Unauthorized

    " - } - ] - }, - { - "serverUrl": "http(s)://HOSTNAME", - "verb": "get", - "requestPath": "/setup/api/maintenance", - "title": "Get the maintenance status", - "category": "enterprise-admin", - "subcategory": "management-console", - "parameters": [], - "bodyParameters": [], - "codeExamples": [ - { - "key": "default", - "request": { - "description": "Example", - "acceptHeader": "application/vnd.github.v3+json" - }, - "response": { - "statusCode": "200", - "contentType": "application/json", - "description": "

    Response

    ", - "example": { - "status": "scheduled", - "scheduled_time": "Tuesday, January 22 at 15:34 -0800", - "connection_services": [ - { - "name": "git operations", - "number": 0 - }, - { - "name": "mysql queries", - "number": 233 - }, - { - "name": "aqueduct jobs", - "number": 34 - }, - { - "name": "resque jobs", - "number": 54 - } - ] - }, - "schema": { - "type": "object", - "properties": { - "status": { - "type": "string" - }, - "scheduled_time": { - "type": "string" - }, - "connection_services": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "number": { - "type": "integer" - } - }, - "required": [ - "name", - "number" - ] - } - } - } - } - } - } - ], - "previews": [], - "descriptionHTML": "

    Check your installation's maintenance status:

    ", - "statusCodes": [ - { - "httpStatusCode": "200", - "description": "

    OK

    " - }, - { - "httpStatusCode": "401", - "description": "

    Unauthorized

    " - } - ] - }, - { - "serverUrl": "http(s)://HOSTNAME", - "verb": "post", - "requestPath": "/setup/api/maintenance", - "title": "Enable or disable maintenance mode", - "category": "enterprise-admin", - "subcategory": "management-console", - "parameters": [], - "bodyParameters": [ - { - "type": "string", - "name": "maintenance", - "in": "body", - "description": "

    A JSON string with the attributes enabled and when.

    \n

    The possible values for enabled are true and false. When it's false, the attribute when is ignored and the maintenance mode is turned off. when defines the time period when the maintenance was enabled.

    \n

    The possible values for when are now or any date parseable by mojombo/chronic.

    ", - "isRequired": true - } - ], - "codeExamples": [ - { - "key": "default", - "request": { - "contentType": "application/x-www-form-urlencoded", - "description": "Example", - "acceptHeader": "application/vnd.github.v3+json", - "bodyParameters": { - "maintenance": "{\"enabled\":true, \"when\":\"now\"}" - } - }, - "response": { - "statusCode": "200", - "contentType": "application/json", - "description": "

    Response

    ", - "example": { - "status": "scheduled", - "scheduled_time": "Tuesday, January 22 at 15:34 -0800", - "connection_services": [ - { - "name": "git operations", - "number": 0 - }, - { - "name": "mysql queries", - "number": 233 - }, - { - "name": "aqueduct jobs", - "number": 34 - }, - { - "name": "resque jobs", - "number": 54 - } - ] - }, - "schema": { - "type": "object", - "properties": { - "status": { - "type": "string" - }, - "scheduled_time": { - "type": "string" - }, - "connection_services": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "number": { - "type": "integer" - } - }, - "required": [ - "name", - "number" - ] - } - } - } - } - } - } - ], - "previews": [], - "descriptionHTML": "

    Note

    \n

    \nThe request body for this operation must be submitted as application/x-www-form-urlencoded data. You can submit a parameter value as a string, or you can use a tool such as curl to submit a parameter value as the contents of a text file. For more information, see the curl documentation.

    \n
    ", - "statusCodes": [ - { - "httpStatusCode": "200", - "description": "

    OK

    " - }, - { - "httpStatusCode": "401", - "description": "

    Unauthorized

    " - } - ] - }, - { - "serverUrl": "http(s)://HOSTNAME", - "verb": "get", - "requestPath": "/setup/api/settings", - "title": "Get settings", - "category": "enterprise-admin", - "subcategory": "management-console", - "parameters": [], - "bodyParameters": [], - "codeExamples": [ - { - "key": "default", - "request": { - "description": "Example", - "acceptHeader": "application/vnd.github.v3+json" - }, - "response": { - "statusCode": "200", - "contentType": "application/json", - "description": "

    Response

    ", - "example": { - "enterprise": { - "private_mode": false, - "public_pages": false, - "subdomain_isolation": true, - "signup_enabled": false, - "github_hostname": "ghe.local", - "identicons_host": "dotcom", - "http_proxy": null, - "auth_mode": "default", - "expire_sessions": false, - "admin_password": null, - "configuration_id": 1401777404, - "configuration_run_count": 4, - "avatar": { - "enabled": false, - "uri": "" - }, - "customer": { - "name": "GitHub", - "email": "stannis@themannis.biz", - "uuid": "af6cac80-e4e1-012e-d822-1231380e52e9", - "secret_key_data": "-----BEGIN PGP PRIVATE KEY BLOCK-----\nVersion: GnuPG v1.4.10 (GNU/Linux)\n\nlQcYBE5TCgsBEACk4yHpUcapplebaumBMXYMiLF+nCQ0lxpx...\n-----END PGP PRIVATE KEY BLOCK-----\n", - "public_key_data": "-----BEGIN PGP PUBLIC KEY BLOCK-----\nVersion: GnuPG v1.4.10 (GNU/Linux)\n\nmI0ETqzZYgEEALSe6snowdenXyqvLfSQ34HWD6C7....\n-----END PGP PUBLIC KEY BLOCK-----\n" - }, - "license": { - "seats": 0, - "evaluation": false, - "perpetual": false, - "unlimited_seating": true, - "support_key": "ssh-rsa AAAAB3N....", - "ssh_allowed": true, - "cluster_support": false, - "expire_at": "2016-04-27T00:00:00-07:00" - }, - "github_ssl": { - "enabled": false, - "cert": null, - "key": null - }, - "ldap": { - "host": null, - "port": 0, - "base": [], - "uid": null, - "bind_dn": null, - "password": null, - "method": "Plain", - "search_strategy": "detect", - "user_groups": [], - "admin_group": null, - "virtual_attribute_enabled": false, - "recursive_group_search": false, - "posix_support": true, - "user_sync_emails": false, - "user_sync_keys": false, - "user_sync_interval": 4, - "team_sync_interval": 4, - "sync_enabled": false, - "reconciliation": { - "user": null, - "org": null - }, - "profile": { - "uid": "uid", - "name": null, - "mail": null, - "key": null - } - }, - "cas": { - "url": null - }, - "saml": { - "sso_url": null, - "certificate": null, - "certificate_path": null, - "issuer": null, - "idp_initiated_sso": false, - "disable_admin_demote": false - }, - "github_oauth": { - "client_id": "12313412", - "client_secret": "kj123131132", - "organization_name": "Homestar Runners", - "organization_team": "homestarrunners/characters" - }, - "smtp": { - "enabled": true, - "address": "smtp.example.com", - "authentication": "plain", - "port": "1234", - "domain": "blah", - "username": "foo", - "user_name": "mr_foo", - "enable_starttls_auto": true, - "password": "bar", - "discard-to-noreply-address": true, - "support_address": "enterprise@github.com", - "support_address_type": "email", - "noreply_address": "noreply@github.com" - }, - "ntp": { - "primary_server": "0.pool.ntp.org", - "secondary_server": "1.pool.ntp.org" - }, - "timezone": null, - "snmp": { - "enabled": false, - "community": "" - }, - "syslog": { - "enabled": false, - "server": null, - "protocol_name": "udp" - }, - "assets": null, - "pages": { - "enabled": true - }, - "collectd": { - "enabled": false, - "server": null, - "port": 0, - "encryption": null, - "username": null, - "password": null - }, - "mapping": { - "enabled": true, - "tileserver": null, - "basemap": "company.map-qsz2zrvs", - "token": null - }, - "load_balancer": null - }, - "run_list": [ - "recipe[enterprise-configure]" - ] - }, - "schema": { - "type": "object", - "properties": { - "enterprise": { - "type": "object", - "properties": { - "private_mode": { - "type": "boolean" - }, - "public_pages": { - "type": "boolean" - }, - "subdomain_isolation": { - "type": "boolean" - }, - "signup_enabled": { - "type": "boolean" - }, - "github_hostname": { - "type": "string" - }, - "identicons_host": { - "type": "string" - }, - "http_proxy": { - "type": [ - "string", - "null" - ] - }, - "auth_mode": { - "type": "string" - }, - "expire_sessions": { - "type": "boolean" - }, - "admin_password": { - "type": [ - "string", - "null" - ] - }, - "configuration_id": { - "type": "integer" - }, - "configuration_run_count": { - "type": "integer" - }, - "avatar": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - }, - "uri": { - "type": "string" - } - } - }, - "customer": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "email": { - "type": "string" - }, - "uuid": { - "type": "string" - }, - "secret_key_data": { - "type": "string" - }, - "public_key_data": { - "type": "string" - } - } - }, - "license": { - "type": "object", - "properties": { - "seats": { - "type": "integer" - }, - "evaluation": { - "type": "boolean" - }, - "perpetual": { - "type": "boolean" - }, - "unlimited_seating": { - "type": "boolean" - }, - "support_key": { - "type": "string" - }, - "ssh_allowed": { - "type": "boolean" - }, - "cluster_support": { - "type": "boolean" - }, - "expire_at": { - "type": "string" - } - } - }, - "github_ssl": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - }, - "cert": { - "type": [ - "string", - "null" - ] - }, - "key": { - "type": [ - "string", - "null" - ] - } - } - }, - "ldap": { - "type": "object", - "properties": { - "host": { - "type": [ - "string", - "null" - ] - }, - "port": { - "type": "integer" - }, - "base": { - "type": "array", - "items": {} - }, - "uid": { - "type": [ - "string", - "null" - ] - }, - "bind_dn": { - "type": [ - "string", - "null" - ] - }, - "password": { - "type": [ - "string", - "null" - ] - }, - "method": { - "type": "string" - }, - "search_strategy": { - "type": "string" - }, - "user_groups": { - "type": "array", - "items": {} - }, - "admin_group": { - "type": [ - "string", - "null" - ] - }, - "virtual_attribute_enabled": { - "type": "boolean" - }, - "recursive_group_search": { - "type": "boolean" - }, - "posix_support": { - "type": "boolean" - }, - "user_sync_emails": { - "type": "boolean" - }, - "user_sync_keys": { - "type": "boolean" - }, - "user_sync_interval": { - "type": "integer" - }, - "team_sync_interval": { - "type": "integer" - }, - "sync_enabled": { - "type": "boolean" - }, - "reconciliation": { - "type": "object", - "properties": { - "user": { - "type": [ - "string", - "null" - ] - }, - "org": { - "type": [ - "string", - "null" - ] - } - } - }, - "profile": { - "type": "object", - "properties": { - "uid": { - "type": "string" - }, - "name": { - "type": [ - "string", - "null" - ] - }, - "mail": { - "type": [ - "string", - "null" - ] - }, - "key": { - "type": [ - "string", - "null" - ] - } - } - } - } - }, - "cas": { - "type": "object", - "properties": { - "url": { - "type": [ - "string", - "null" - ] - } - } - }, - "saml": { - "type": "object", - "properties": { - "sso_url": { - "type": [ - "string", - "null" - ] - }, - "certificate": { - "type": [ - "string", - "null" - ] - }, - "certificate_path": { - "type": [ - "string", - "null" - ] - }, - "issuer": { - "type": [ - "string", - "null" - ] - }, - "idp_initiated_sso": { - "type": "boolean" - }, - "disable_admin_demote": { - "type": "boolean" - } - } - }, - "github_oauth": { - "type": "object", - "properties": { - "client_id": { - "type": "string" - }, - "client_secret": { - "type": "string" - }, - "organization_name": { - "type": "string" - }, - "organization_team": { - "type": "string" - } - } - }, - "smtp": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - }, - "address": { - "type": "string" - }, - "authentication": { - "type": "string" - }, - "port": { - "type": "string" - }, - "domain": { - "type": "string" - }, - "username": { - "type": "string" - }, - "user_name": { - "type": "string" - }, - "enable_starttls_auto": { - "type": "boolean" - }, - "password": { - "type": "string" - }, - "discard-to-noreply-address": { - "type": "boolean" - }, - "support_address": { - "type": "string" - }, - "support_address_type": { - "type": "string" - }, - "noreply_address": { - "type": "string" - } - } - }, - "ntp": { - "type": "object", - "properties": { - "primary_server": { - "type": "string" - }, - "secondary_server": { - "type": "string" - } - } - }, - "timezone": { - "type": [ - "string", - "null" - ] - }, - "snmp": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - }, - "community": { - "type": "string" - } - } - }, - "syslog": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - }, - "server": { - "type": [ - "string", - "null" - ] - }, - "protocol_name": { - "type": "string" - } - } - }, - "assets": { - "type": [ - "string", - "null" - ] - }, - "pages": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - } - } - }, - "collectd": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - }, - "server": { - "type": [ - "string", - "null" - ] - }, - "port": { - "type": "integer" - }, - "encryption": { - "type": [ - "string", - "null" - ] - }, - "username": { - "type": [ - "string", - "null" - ] - }, - "password": { - "type": [ - "string", - "null" - ] - } - } - }, - "mapping": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - }, - "tileserver": { - "type": [ - "string", - "null" - ] - }, - "basemap": { - "type": "string" - }, - "token": { - "type": [ - "string", - "null" - ] - } - } - }, - "load_balancer": { - "type": [ - "string", - "null" - ] - } - } - }, - "run_list": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - } - ], - "previews": [], - "descriptionHTML": "

    Gets the settings for your instance. To change settings, see the Set settings endpoint.

    \n

    Note

    \n

    \nYou cannot retrieve the management console password with the Enterprise administration API.

    \n
    ", - "statusCodes": [ - { - "httpStatusCode": "200", - "description": "

    OK

    " - }, - { - "httpStatusCode": "401", - "description": "

    Unauthorized

    " - } - ] - }, - { - "serverUrl": "http(s)://HOSTNAME", - "verb": "put", - "requestPath": "/setup/api/settings", - "title": "Set settings", - "category": "enterprise-admin", - "subcategory": "management-console", - "parameters": [], - "bodyParameters": [ - { - "type": "string", - "name": "settings", - "in": "body", - "description": "

    A JSON string with the new settings. Note that you only need to pass the specific settings you want to modify. For a list of the available settings, see the Get settings endpoint.

    ", - "isRequired": true - } - ], - "codeExamples": [ - { - "key": "204", - "request": { - "contentType": "application/x-www-form-urlencoded", - "description": "Example", - "acceptHeader": "application/vnd.github.v3+json", - "bodyParameters": { - "settings": "{ \"enterprise\": { \"public_pages\": true }}" - } - }, - "response": { - "statusCode": "204", - "description": "

    Response

    " - } - } - ], - "previews": [], - "descriptionHTML": "

    Applies settings on your instance. For a list of the available settings, see the Get settings endpoint.

    \n

    Notes:

    \n
      \n
    • The request body for this operation must be submitted as application/x-www-form-urlencoded data. You can submit a parameter value as a string, or you can use a tool such as curl to submit a parameter value as the contents of a text file. For more information, see the curl documentation.
    • \n
    • You cannot set the management console password with the Enterprise administration API. Use the ghe-set-password utility to change the management console password. For more information, see \"Command-line utilities.\"
    • \n
    ", - "statusCodes": [ - { - "httpStatusCode": "204", - "description": "

    No Content

    " - }, - { - "httpStatusCode": "401", - "description": "

    Unauthorized

    " - } - ] - }, - { - "serverUrl": "http(s)://HOSTNAME", - "verb": "get", - "requestPath": "/setup/api/settings/authorized-keys", - "title": "Get all authorized SSH keys", - "category": "enterprise-admin", - "subcategory": "management-console", - "parameters": [], - "bodyParameters": [], - "codeExamples": [ - { - "key": "default", - "request": { - "description": "Example", - "acceptHeader": "application/vnd.github.v3+json" - }, - "response": { - "statusCode": "200", - "contentType": "application/json", - "description": "

    Response

    ", - "example": [ - { - "key": "ssh-rsa AAAAB3NzaC1yc2EAAAAB...", - "pretty-print": "ssh-rsa 01:14:0f:f2:0f:e2:fe:e8:f4:72:62:af:75:f7:1a:88:3e:04:92:64" - }, - { - "key": "ssh-rsa AAAAB3NzaC1yc2EAAAAB...", - "pretty-print": "ssh-rsa 01:14:0f:f2:0f:e2:fe:e8:f4:72:62:af:75:f7:1a:88:3e:04:92:64" - }, - { - "key": "ssh-rsa AAAAB3NzaC1yc2EAAAAB...", - "pretty-print": "ssh-rsa 01:14:0f:f2:0f:e2:fe:e8:f4:72:62:af:75:f7:1a:88:3e:04:92:64" - } - ], - "schema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "pretty-print": { - "type": "string" - } - } - } - } - } - } - ], - "descriptionHTML": "", - "previews": [], - "statusCodes": [ - { - "httpStatusCode": "200", - "description": "

    OK

    " - }, - { - "httpStatusCode": "401", - "description": "

    Unauthorized

    " - } - ] - }, - { - "serverUrl": "http(s)://HOSTNAME", - "verb": "post", - "requestPath": "/setup/api/settings/authorized-keys", - "title": "Add an authorized SSH key", - "category": "enterprise-admin", - "subcategory": "management-console", - "parameters": [], - "bodyParameters": [ - { - "type": "string", - "name": "authorized_key", - "in": "body", - "description": "

    The public SSH key.

    ", - "isRequired": true - } - ], - "codeExamples": [ - { - "key": "default", - "request": { - "contentType": "application/x-www-form-urlencoded", - "description": "Example", - "acceptHeader": "application/vnd.github.v3+json", - "bodyParameters": { - "authorized_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCssTL/Vtu/ODLTj0VtZoRAbvf7uiv5997GyDq0MoAZUjb5jmA5wYe2/wF6sFuhiZTnZoF1ZtCHunPp0hM/GHrn6VySBhNncx14YO8FPt1CIhEeRMSEjUK9cY3xAbS365oXY8vnUHJsS9+1tr/2bx/+4NJfcUt/Ezf1OR/0LStQXw==" - } - }, - "response": { - "statusCode": "201", - "contentType": "application/json", - "description": "

    Response

    ", - "example": [ - { - "key": "ssh-rsa AAAAB3NzaC1yc2EAAAAB...", - "pretty-print": "ssh-rsa 01:14:0f:f2:0f:e2:fe:e8:f4:72:62:af:75:f7:1a:88:3e:04:92:64" - }, - { - "key": "ssh-rsa AAAAB3NzaC1yc2EAAAAB...", - "pretty-print": "ssh-rsa 01:14:0f:f2:0f:e2:fe:e8:f4:72:62:af:75:f7:1a:88:3e:04:92:64" - }, - { - "key": "ssh-rsa AAAAB3NzaC1yc2EAAAAB...", - "pretty-print": "ssh-rsa 01:14:0f:f2:0f:e2:fe:e8:f4:72:62:af:75:f7:1a:88:3e:04:92:64" - } - ], - "schema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "pretty-print": { - "type": "string" - } - } - } - } - } - } - ], - "previews": [], - "descriptionHTML": "

    Note: The request body for this operation must be submitted as application/x-www-form-urlencoded data. You can submit a parameter value as a string, or you can use a tool such as curl to submit a parameter value as the contents of a text file. For more information, see the curl documentation.

    ", - "statusCodes": [ - { - "httpStatusCode": "201", - "description": "

    Created

    " - }, - { - "httpStatusCode": "401", - "description": "

    Unauthorized

    " - } - ] - }, - { - "serverUrl": "http(s)://HOSTNAME", - "verb": "delete", - "requestPath": "/setup/api/settings/authorized-keys", - "title": "Remove an authorized SSH key", - "category": "enterprise-admin", - "subcategory": "management-console", - "parameters": [], - "bodyParameters": [ - { - "type": "string", - "name": "authorized_key", - "in": "body", - "description": "

    The public SSH key.

    ", - "isRequired": true - } - ], - "codeExamples": [ - { - "key": "default", - "request": { - "contentType": "application/x-www-form-urlencoded", - "description": "Example", - "acceptHeader": "application/vnd.github.v3+json", - "bodyParameters": { - "authorized_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCssTL/Vtu/ODLTj0VtZoRAbvf7uiv5997GyDq0MoAZUjb5jmA5wYe2/wF6sFuhiZTnZoF1ZtCHunPp0hM/GHrn6VySBhNncx14YO8FPt1CIhEeRMSEjUK9cY3xAbS365oXY8vnUHJsS9+1tr/2bx/+4NJfcUt/Ezf1OR/0LStQXw==" - } - }, - "response": { - "statusCode": "200", - "contentType": "application/json", - "description": "

    Response

    ", - "example": [ - { - "key": "ssh-rsa AAAAB3NzaC1yc2EAAAAB...", - "pretty-print": "ssh-rsa 01:14:0f:f2:0f:e2:fe:e8:f4:72:62:af:75:f7:1a:88:3e:04:92:64" - }, - { - "key": "ssh-rsa AAAAB3NzaC1yc2EAAAAB...", - "pretty-print": "ssh-rsa 01:14:0f:f2:0f:e2:fe:e8:f4:72:62:af:75:f7:1a:88:3e:04:92:64" - }, - { - "key": "ssh-rsa AAAAB3NzaC1yc2EAAAAB...", - "pretty-print": "ssh-rsa 01:14:0f:f2:0f:e2:fe:e8:f4:72:62:af:75:f7:1a:88:3e:04:92:64" - } - ], - "schema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "pretty-print": { - "type": "string" - } - } - } - } - } - } - ], - "previews": [], - "descriptionHTML": "

    Note: The request body for this operation must be submitted as application/x-www-form-urlencoded data. You can submit a parameter value as a string, or you can use a tool such as curl to submit a parameter value as the contents of a text file. For more information, see the curl documentation.

    ", - "statusCodes": [ - { - "httpStatusCode": "200", - "description": "

    OK

    " - }, - { - "httpStatusCode": "401", - "description": "

    Unauthorized

    " - } - ] - }, - { - "serverUrl": "http(s)://HOSTNAME", - "verb": "post", - "requestPath": "/setup/api/start", - "title": "Create a GitHub license", - "category": "enterprise-admin", - "subcategory": "management-console", - "parameters": [], - "bodyParameters": [ - { - "type": "string", - "name": "license", - "in": "body", - "description": "

    The content of your .ghl license file.

    ", - "isRequired": true - }, - { - "type": "string", - "name": "password", - "in": "body", - "description": "

    You must provide a password only if you are uploading your license for the first time. If you previously set a password through the web interface, you don't need this parameter.

    " - }, - { - "type": "string", - "name": "settings", - "in": "body", - "description": "

    An optional JSON string containing the installation settings. For a list of the available settings, see the Get settings endpoint.

    " - } - ], - "codeExamples": [ - { - "key": "default", - "request": { - "contentType": "multipart/form-data", - "description": "Example", - "acceptHeader": "application/vnd.github.v3+json", - "bodyParameters": { - "license": "@enterprise.ghl", - "password": "secret" - } - }, - "response": { - "statusCode": "202", - "description": "

    Response

    " - } - } - ], - "previews": [], - "descriptionHTML": "

    When you boot a GitHub instance for the first time, you can use the following endpoint to upload a license.

    \n

    Note that you need to POST to /setup/api/configure to start the actual configuration process.

    \n

    When using this endpoint, your GitHub instance must have a password set. This can be accomplished two ways:

    \n
      \n
    1. If you're working directly with the API before accessing the web interface, you must pass in the password parameter to set your password.
    2. \n
    3. If you set up your instance via the web interface before accessing the API, your calls to this endpoint do not need the password parameter.
    4. \n
    \n

    Note

    \n

    \nThe request body for this operation must be submitted as multipart/form-data data. You can can reference the license file by prefixing the filename with the @ symbol using curl. For more information, see the curl documentation.

    \n
    ", - "statusCodes": [ - { - "httpStatusCode": "202", - "description": "

    Accepted

    " - }, - { - "httpStatusCode": "401", - "description": "

    Unauthorized

    " - } - ] - }, - { - "serverUrl": "http(s)://HOSTNAME", - "verb": "post", - "requestPath": "/setup/api/upgrade", - "title": "Upgrade a license", - "category": "enterprise-admin", - "subcategory": "management-console", - "parameters": [], - "bodyParameters": [ - { - "type": "string", - "name": "license", - "in": "body", - "description": "

    The content of your new .ghl license file.

    " - } - ], - "codeExamples": [ - { - "key": "default", - "request": { - "contentType": "multipart/form-data", - "description": "Example", - "acceptHeader": "application/vnd.github.v3+json", - "bodyParameters": { - "license": "@enterprise.ghl" - } - }, - "response": { - "statusCode": "202", - "description": "

    Response

    " - } - } - ], - "previews": [], - "descriptionHTML": "

    This API upgrades your license and also triggers the configuration process.

    \n

    Note

    \n

    \nThe request body for this operation must be submitted as multipart/form-data data. You can can reference the license file by prefixing the filename with the @ symbol using curl. For more information, see the curl documentation.

    \n
    ", - "statusCodes": [ - { - "httpStatusCode": "202", - "description": "

    Accepted

    " - }, - { - "httpStatusCode": "401", - "description": "

    Unauthorized

    " - } - ] - } - ], "org-pre-receive-hooks": [ { "serverUrl": "http(s)://HOSTNAME/api/v3", @@ -327749,45 +326407,51 @@ }, "advanced_security_enabled_for_new_repositories": { "type": "boolean", - "description": "Whether GitHub Advanced Security is enabled for new repositories and repositories transferred to this organization.\n\nThis field is only visible to organization owners or members of a team with the security manager role.", + "description": "**Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/enterprise-server@3.15/rest/code-security/configurations) instead.\n\nWhether GitHub Advanced Security is enabled for new repositories and repositories transferred to this organization.\n\nThis field is only visible to organization owners or members of a team with the security manager role.", "examples": [ false - ] + ], + "deprecated": true }, "dependabot_alerts_enabled_for_new_repositories": { "type": "boolean", - "description": "Whether Dependabot alerts are automatically enabled for new repositories and repositories transferred to this organization.\n\nThis field is only visible to organization owners or members of a team with the security manager role.", + "description": "**Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/enterprise-server@3.15/rest/code-security/configurations) instead.\n\nWhether Dependabot alerts are automatically enabled for new repositories and repositories transferred to this organization.\n\nThis field is only visible to organization owners or members of a team with the security manager role.", "examples": [ false - ] + ], + "deprecated": true }, "dependabot_security_updates_enabled_for_new_repositories": { "type": "boolean", - "description": "Whether Dependabot security updates are automatically enabled for new repositories and repositories transferred to this organization.\n\nThis field is only visible to organization owners or members of a team with the security manager role.", + "description": "**Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/enterprise-server@3.15/rest/code-security/configurations) instead.\n\nWhether Dependabot security updates are automatically enabled for new repositories and repositories transferred to this organization.\n\nThis field is only visible to organization owners or members of a team with the security manager role.", "examples": [ false - ] + ], + "deprecated": true }, "dependency_graph_enabled_for_new_repositories": { "type": "boolean", - "description": "Whether dependency graph is automatically enabled for new repositories and repositories transferred to this organization.\n\nThis field is only visible to organization owners or members of a team with the security manager role.", + "description": "**Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/enterprise-server@3.15/rest/code-security/configurations) instead.\n\nWhether dependency graph is automatically enabled for new repositories and repositories transferred to this organization.\n\nThis field is only visible to organization owners or members of a team with the security manager role.", "examples": [ false - ] + ], + "deprecated": true }, "secret_scanning_enabled_for_new_repositories": { "type": "boolean", - "description": "Whether secret scanning is automatically enabled for new repositories and repositories transferred to this organization.\n\nThis field is only visible to organization owners or members of a team with the security manager role.", + "description": "**Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/enterprise-server@3.15/rest/code-security/configurations) instead.\n\nWhether secret scanning is automatically enabled for new repositories and repositories transferred to this organization.\n\nThis field is only visible to organization owners or members of a team with the security manager role.", "examples": [ false - ] + ], + "deprecated": true }, "secret_scanning_push_protection_enabled_for_new_repositories": { "type": "boolean", - "description": "Whether secret scanning push protection is automatically enabled for new repositories and repositories transferred to this organization.\n\nThis field is only visible to organization owners or members of a team with the security manager role.", + "description": "**Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/enterprise-server@3.15/rest/code-security/configurations) instead.\n\nWhether secret scanning push protection is automatically enabled for new repositories and repositories transferred to this organization.\n\nThis field is only visible to organization owners or members of a team with the security manager role.", "examples": [ false - ] + ], + "deprecated": true }, "secret_scanning_push_protection_custom_link_enabled": { "type": "boolean", @@ -328020,37 +326684,37 @@ "type": "boolean", "name": "advanced_security_enabled_for_new_repositories", "in": "body", - "description": "

    Whether GitHub Advanced Security is automatically enabled for new repositories and repositories transferred to this organization.

    \n

    To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see \"Managing security managers in your organization.\"

    \n

    You can check which security and analysis features are currently enabled by using a GET /orgs/{org} request.

    " + "description": "

    Endpoint closing down notice. Please use code security configurations instead.

    \n

    Whether GitHub Advanced Security is automatically enabled for new repositories and repositories transferred to this organization.

    \n

    To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see \"Managing security managers in your organization.\"

    \n

    You can check which security and analysis features are currently enabled by using a GET /orgs/{org} request.

    " }, { "type": "boolean", "name": "dependabot_alerts_enabled_for_new_repositories", "in": "body", - "description": "

    Whether Dependabot alerts is automatically enabled for new repositories and repositories transferred to this organization.

    \n

    To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see \"Managing security managers in your organization.\"

    \n

    You can check which security and analysis features are currently enabled by using a GET /orgs/{org} request.

    " + "description": "

    Endpoint closing down notice. Please use code security configurations instead.

    \n

    Whether Dependabot alerts are automatically enabled for new repositories and repositories transferred to this organization.

    \n

    To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see \"Managing security managers in your organization.\"

    \n

    You can check which security and analysis features are currently enabled by using a GET /orgs/{org} request.

    " }, { "type": "boolean", "name": "dependabot_security_updates_enabled_for_new_repositories", "in": "body", - "description": "

    Whether Dependabot security updates is automatically enabled for new repositories and repositories transferred to this organization.

    \n

    To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see \"Managing security managers in your organization.\"

    \n

    You can check which security and analysis features are currently enabled by using a GET /orgs/{org} request.

    " + "description": "

    Endpoint closing down notice. Please use code security configurations instead.

    \n

    Whether Dependabot security updates are automatically enabled for new repositories and repositories transferred to this organization.

    \n

    To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see \"Managing security managers in your organization.\"

    \n

    You can check which security and analysis features are currently enabled by using a GET /orgs/{org} request.

    " }, { "type": "boolean", "name": "dependency_graph_enabled_for_new_repositories", "in": "body", - "description": "

    Whether dependency graph is automatically enabled for new repositories and repositories transferred to this organization.

    \n

    To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see \"Managing security managers in your organization.\"

    \n

    You can check which security and analysis features are currently enabled by using a GET /orgs/{org} request.

    " + "description": "

    Endpoint closing down notice. Please use code security configurations instead.

    \n

    Whether dependency graph is automatically enabled for new repositories and repositories transferred to this organization.

    \n

    To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see \"Managing security managers in your organization.\"

    \n

    You can check which security and analysis features are currently enabled by using a GET /orgs/{org} request.

    " }, { "type": "boolean", "name": "secret_scanning_enabled_for_new_repositories", "in": "body", - "description": "

    Whether secret scanning is automatically enabled for new repositories and repositories transferred to this organization.

    \n

    To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see \"Managing security managers in your organization.\"

    \n

    You can check which security and analysis features are currently enabled by using a GET /orgs/{org} request.

    " + "description": "

    Endpoint closing down notice. Please use code security configurations instead.

    \n

    Whether secret scanning is automatically enabled for new repositories and repositories transferred to this organization.

    \n

    To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see \"Managing security managers in your organization.\"

    \n

    You can check which security and analysis features are currently enabled by using a GET /orgs/{org} request.

    " }, { "type": "boolean", "name": "secret_scanning_push_protection_enabled_for_new_repositories", "in": "body", - "description": "

    Whether secret scanning push protection is automatically enabled for new repositories and repositories transferred to this organization.

    \n

    To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see \"Managing security managers in your organization.\"

    \n

    You can check which security and analysis features are currently enabled by using a GET /orgs/{org} request.

    " + "description": "

    Endpoint closing down notice. Please use code security configurations instead.

    \n

    Whether secret scanning push protection is automatically enabled for new repositories and repositories transferred to this organization.

    \n

    To use this parameter, you must have admin permissions for the repository or be an owner or security manager for the organization that owns the repository. For more information, see \"Managing security managers in your organization.\"

    \n

    You can check which security and analysis features are currently enabled by using a GET /orgs/{org} request.

    " }, { "type": "boolean", @@ -328503,45 +327167,51 @@ }, "advanced_security_enabled_for_new_repositories": { "type": "boolean", - "description": "Whether GitHub Advanced Security is enabled for new repositories and repositories transferred to this organization.\n\nThis field is only visible to organization owners or members of a team with the security manager role.", + "description": "**Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/enterprise-server@3.15/rest/code-security/configurations) instead.\n\nWhether GitHub Advanced Security is enabled for new repositories and repositories transferred to this organization.\n\nThis field is only visible to organization owners or members of a team with the security manager role.", "examples": [ false - ] + ], + "deprecated": true }, "dependabot_alerts_enabled_for_new_repositories": { "type": "boolean", - "description": "Whether Dependabot alerts are automatically enabled for new repositories and repositories transferred to this organization.\n\nThis field is only visible to organization owners or members of a team with the security manager role.", + "description": "**Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/enterprise-server@3.15/rest/code-security/configurations) instead.\n\nWhether Dependabot alerts are automatically enabled for new repositories and repositories transferred to this organization.\n\nThis field is only visible to organization owners or members of a team with the security manager role.", "examples": [ false - ] + ], + "deprecated": true }, "dependabot_security_updates_enabled_for_new_repositories": { "type": "boolean", - "description": "Whether Dependabot security updates are automatically enabled for new repositories and repositories transferred to this organization.\n\nThis field is only visible to organization owners or members of a team with the security manager role.", + "description": "**Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/enterprise-server@3.15/rest/code-security/configurations) instead.\n\nWhether Dependabot security updates are automatically enabled for new repositories and repositories transferred to this organization.\n\nThis field is only visible to organization owners or members of a team with the security manager role.", "examples": [ false - ] + ], + "deprecated": true }, "dependency_graph_enabled_for_new_repositories": { "type": "boolean", - "description": "Whether dependency graph is automatically enabled for new repositories and repositories transferred to this organization.\n\nThis field is only visible to organization owners or members of a team with the security manager role.", + "description": "**Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/enterprise-server@3.15/rest/code-security/configurations) instead.\n\nWhether dependency graph is automatically enabled for new repositories and repositories transferred to this organization.\n\nThis field is only visible to organization owners or members of a team with the security manager role.", "examples": [ false - ] + ], + "deprecated": true }, "secret_scanning_enabled_for_new_repositories": { "type": "boolean", - "description": "Whether secret scanning is automatically enabled for new repositories and repositories transferred to this organization.\n\nThis field is only visible to organization owners or members of a team with the security manager role.", + "description": "**Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/enterprise-server@3.15/rest/code-security/configurations) instead.\n\nWhether secret scanning is automatically enabled for new repositories and repositories transferred to this organization.\n\nThis field is only visible to organization owners or members of a team with the security manager role.", "examples": [ false - ] + ], + "deprecated": true }, "secret_scanning_push_protection_enabled_for_new_repositories": { "type": "boolean", - "description": "Whether secret scanning push protection is automatically enabled for new repositories and repositories transferred to this organization.\n\nThis field is only visible to organization owners or members of a team with the security manager role.", + "description": "**Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/enterprise-server@3.15/rest/code-security/configurations) instead.\n\nWhether secret scanning push protection is automatically enabled for new repositories and repositories transferred to this organization.\n\nThis field is only visible to organization owners or members of a team with the security manager role.", "examples": [ false - ] + ], + "deprecated": true }, "secret_scanning_push_protection_custom_link_enabled": { "type": "boolean", @@ -328609,7 +327279,7 @@ } ], "previews": [], - "descriptionHTML": "

    Warning

    \n

    \nClosing down notice: GitHub Enterprise Server will replace and discontinue members_allowed_repository_creation_type in favor of more granular permissions. The new input parameters are members_can_create_public_repositories, members_can_create_private_repositories for all organizations and members_can_create_internal_repositories for organizations associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. For more information, see the blog post.

    \n
    \n

    Updates the organization's profile and member privileges.

    \n

    The authenticated user must be an organization owner to use this endpoint.

    \n

    OAuth app tokens and personal access tokens (classic) need the admin:org or repo scope to use this endpoint.

    ", + "descriptionHTML": "

    Warning

    \n

    \nClosing down notice: GitHub Enterprise Server will replace and discontinue members_allowed_repository_creation_type in favor of more granular permissions. The new input parameters are members_can_create_public_repositories, members_can_create_private_repositories for all organizations and members_can_create_internal_repositories for organizations associated with an enterprise account using GitHub Enterprise Cloud or GitHub Enterprise Server 2.20+. For more information, see the blog post.

    \n
    \n

    Warning

    \n

    \nClosing down notice: Code security product enablement for new repositories through the organization API is closing down and will be replaced with code security configurations in a future GitHub Enterprise Server version.

    \n
    \n

    Updates the organization's profile and member privileges.

    \n

    The authenticated user must be an organization owner to use this endpoint.

    \n

    OAuth app tokens and personal access tokens (classic) need the admin:org or repo scope to use this endpoint.

    ", "statusCodes": [ { "httpStatusCode": "200", @@ -330341,7 +329011,7 @@ } ], "previews": [], - "descriptionHTML": "

    Enables or disables the specified security feature for all eligible repositories in an organization. For more information, see \"Managing security managers in your organization.\"

    \n

    The authenticated user must be an organization owner or be member of a team with the security manager role to use this endpoint.

    \n

    OAuth app tokens and personal access tokens (classic) need the admin:org, write:org, or repo scopes to use this endpoint.

    ", + "descriptionHTML": "

    Warning

    \n

    \nClosing down notice: The ability to enable or disable a security feature for all eligible repositories in an organization is closing down. Please use code security configurations instead. For more information, see the changelog.

    \n
    \n

    Enables or disables the specified security feature for all eligible repositories in an organization. For more information, see \"Managing security managers in your organization.\"

    \n

    The authenticated user must be an organization owner or be member of a team with the security manager role to use this endpoint.

    \n

    OAuth app tokens and personal access tokens (classic) need the admin:org, write:org, or repo scopes to use this endpoint.

    ", "statusCodes": [ { "httpStatusCode": "204", @@ -425962,7 +424632,7 @@ "false", "legacy" ], - "default": true + "default": "true" } ], "progAccess": { @@ -496870,7 +495540,7 @@ { "type": "pull_request_title", "details": { - "pull_request_title_url": "https://api.github.com/repos/octocat/Hello-World/pull/2846" + "pull_request_title_url": "https://api.github.com/repos/octocat/Hello-World/pulls/2846" } }, { @@ -497169,7 +495839,7 @@ "format": "uri", "description": "The API URL to get the pull request where the secret was detected.", "examples": [ - "https://api.github.com/repos/octocat/Hello-World/pull/2846" + "https://api.github.com/repos/octocat/Hello-World/pulls/2846" ] } }, @@ -497186,7 +495856,7 @@ "format": "uri", "description": "The API URL to get the pull request where the secret was detected.", "examples": [ - "https://api.github.com/repos/octocat/Hello-World/pull/2846" + "https://api.github.com/repos/octocat/Hello-World/pulls/2846" ] } }, diff --git a/src/rest/lib/config.json b/src/rest/lib/config.json index 73fe6df42048..96f543557c0e 100644 --- a/src/rest/lib/config.json +++ b/src/rest/lib/config.json @@ -50,5 +50,5 @@ ] } }, - "sha": "a0508cecd18ab26b525527e4ba35bd9c6d725c4f" + "sha": "d97436bb3672e8d985262803de6ab7cafe1c7ff3" } \ No newline at end of file diff --git a/src/search/lib/elasticsearch-versions.ts b/src/search/lib/elasticsearch-versions.ts index 19dfd937d87c..d365ddda57a7 100644 --- a/src/search/lib/elasticsearch-versions.ts +++ b/src/search/lib/elasticsearch-versions.ts @@ -30,7 +30,10 @@ export const versionToIndexVersionMap: { [key: string]: string } = {} // For each potential input (from request query string, CLI, etc), map it to the appropriate index version for (const versionSource of Object.values(allVersions)) { if (versionSource.hasNumberedReleases) { + // Map version number to corresponding release, e.g. `3.14` -> `ghes-3.14` versionToIndexVersionMap[versionSource.currentRelease] = versionSource.miscVersionName + // Map full release name to corresponding release, e.g. `enterprise-server@3.14` -> `ghes-3.14` + versionToIndexVersionMap[versionSource.version] = versionSource.miscVersionName // Map shortname or plan, e.g. `ghes` or `enterprise-server` to the latest release, e.g. `ghes-3.14` if (versionSource.latestRelease === versionSource.currentRelease) { versionToIndexVersionMap[versionSource.plan] = versionSource.miscVersionName diff --git a/src/search/lib/search-request-params/get-search-from-request-params.ts b/src/search/lib/search-request-params/get-search-from-request-params.ts index 1ae3fd38ad85..af3fd98b0cf6 100644 --- a/src/search/lib/search-request-params/get-search-from-request-params.ts +++ b/src/search/lib/search-request-params/get-search-from-request-params.ts @@ -6,11 +6,6 @@ import { ValidationError, getSearchRequestParamsObject, } from '@/search/lib/search-request-params/search-params-objects' -import { - getGeneralSearchIndexVersion, - getGeneralSearchIndexPrefix, - isBeforeSearchIndexMigration, -} from '@/search/lib/helpers/old-version-logic' import type { ComputedSearchQueryParams, @@ -79,17 +74,8 @@ export function getSearchFromRequestParams( let indexName = '' if (!validationErrors.length) { - // generalSearch is the only type of search that uses the old index prefix logic, rather than the `getElasticSearchIndex` function logic - if (type === 'generalSearch' && isBeforeSearchIndexMigration()) { - indexName = `${getGeneralSearchIndexPrefix()}github-docs-${getGeneralSearchIndexVersion(searchParams.version)}-${searchParams.language}` - } else { - const getIndexResults = getElasticSearchIndex( - type, - searchParams.version, - searchParams.language, - ) - indexName = getIndexResults.indexName - } + const getIndexResults = getElasticSearchIndex(type, searchParams.version, searchParams.language) + indexName = getIndexResults.indexName } return { indexName, searchParams, validationErrors } diff --git a/src/search/lib/search-request-params/search-params-objects.ts b/src/search/lib/search-request-params/search-params-objects.ts index 76dfce35e61e..23478b88a7ba 100644 --- a/src/search/lib/search-request-params/search-params-objects.ts +++ b/src/search/lib/search-request-params/search-params-objects.ts @@ -6,8 +6,6 @@ import languages from '@/languages/lib/languages' import { allIndexVersionKeys, versionToIndexVersionMap } from '@/search/lib/elasticsearch-versions' import { SearchTypes } from '@/search/types' -import { versionAliases } from '@/search/lib/helpers/old-version-logic' -import { allVersions } from '@/versions/lib/all-versions' import type { SearchRequestQueryParams } from '@/search/lib/search-request-params/types' @@ -60,16 +58,6 @@ const SHARED_PARAMS_OBJ: SearchRequestQueryParams[] = [ const GENERAL_SEARCH_PARAMS_OBJ: SearchRequestQueryParams[] = [ ...SHARED_PARAMS_OBJ, { key: 'query' }, - // TODO: Overwrite with old version logic for now - { - key: 'version', - default_: 'dotcom', - validate: (v) => { - if (versionAliases[v] || allVersions[v]) return true - const valid = [...Object.keys(versionAliases), ...Object.keys(allVersions)] - throw new ValidationError(`'${v}' not in ${valid}`) - }, - }, { key: 'language', default_: 'en', validate: (v) => v in languages }, { key: 'size', diff --git a/src/search/scripts/scrape/lib/search-index-records.ts b/src/search/scripts/scrape/lib/search-index-records.ts index c4459ccdb88a..cc8d1a802c3f 100644 --- a/src/search/scripts/scrape/lib/search-index-records.ts +++ b/src/search/scripts/scrape/lib/search-index-records.ts @@ -1,4 +1,5 @@ import path from 'path' +import fsSync from 'fs' import fs from 'fs/promises' import assert from 'assert' import { isArray, isString } from 'lodash-es' @@ -15,8 +16,13 @@ export async function writeIndexRecords( const recordsObject = Object.fromEntries(records.map((record) => [record.objectID, record])) const content = JSON.stringify(recordsObject, undefined, 0) + // If the outDirectory doesn't exist, create it + if (!fsSync.existsSync(outDirectory)) { + await fs.mkdir(outDirectory, { recursive: true }) + } + const filePath = path.join(outDirectory, `${name}-records.json`) - await fs.writeFile(filePath, content) + await fs.writeFile(filePath, content, { flag: 'w' }) return filePath } diff --git a/src/search/tests/rendering.ts b/src/search/tests/rendering.ts index 660f9d553a45..61697806f2ba 100644 --- a/src/search/tests/rendering.ts +++ b/src/search/tests/rendering.ts @@ -32,7 +32,7 @@ describeIfElasticsearchURL('search rendering page', () => { // To see why this will work, // see src/search/tests/fixtures/search-indexes/github-docs-dotcom-en-records.json // which clearly has a record with the title "Foo" - const $ = await getDOM('/en/search?query=foo') + const { $ } = await getDOM('/en/search?query=foo') expect($('h1').text()).toMatch(/\d+ Search results for "foo"/) // Note it testid being 'search-result', not 'search-results' @@ -62,7 +62,7 @@ describeIfElasticsearchURL('search rendering page', () => { }) test('debug search', async () => { - const $ = await getDOM('/en/search?query=foo&debug=1') + const { $ } = await getDOM('/en/search?query=foo&debug=1') expect($('h1').text()).toMatch(/\d+ Search results for "foo"/) // Note it testid being 'search-result', not 'search-results' @@ -74,21 +74,21 @@ describeIfElasticsearchURL('search rendering page', () => { }) test('no query', async () => { - const $ = await getDOM('/en/search') + const { $ } = await getDOM('/en/search') const results = $('[data-testid="search-result"]') expect(results.length).toBe(0) expect($('[data-testid="search-results"]').text()).toMatch('Enter a search term') }) test('empty query', async () => { - const $ = await getDOM('/en/search?query=') + const { $ } = await getDOM('/en/search?query=') const results = $('[data-testid="search-result"]') expect(results.length).toBe(0) expect($('[data-testid="search-results"]').text()).toMatch('Enter a search term') }) test('find nothing', async () => { - const $ = await getDOM('/en/search?query=xojixjoiwejhfoiuwehjfioweufhj') + const { $ } = await getDOM('/en/search?query=xojixjoiwejhfoiuwehjfioweufhj') const results = $('[data-testid="search-result"]') expect(results.length).toBe(0) expect($('[data-testid="search-results"]').text()).toMatch('0 Search results') @@ -100,7 +100,7 @@ describeIfElasticsearchURL('search rendering page', () => { }) test('links per version in pathname', async () => { - const $ = await getDOM('/en/enterprise-cloud@latest/search?query=foo') + const { $ } = await getDOM('/en/enterprise-cloud@latest/search?query=foo') expect($('[data-testid="search-results"]').text()).toMatch('Exclusively for GHEC') // Note it testid being 'search-result', not 'search-results' const results = $('[data-testid="search-result"]') @@ -115,14 +115,14 @@ describeIfElasticsearchURL('search rendering page', () => { }) test('invalid parameters (page)', async () => { - const $ = await getDOM('/en/search?query=foo&page=999') + const { $ } = await getDOM('/en/search?query=foo&page=999') expect($('[data-testid="search-results"]').text()).toMatch('Not a valid value (999)') const results = $('[data-testid="search-result"]') expect(results.length).toBe(0) }) test('invalid parameters (size)', async () => { - const $ = await getDOM('/en/search?query=foo&size=888') + const { $ } = await getDOM('/en/search?query=foo&size=888') expect($('[data-testid="search-results"]').text()).toMatch('Not a valid value (888)') const results = $('[data-testid="search-result"]') expect(results.length).toBe(0) @@ -134,14 +134,14 @@ describeIfElasticsearchURL('search rendering page', () => { }) test('more than one search query', async () => { - const $ = await getDOM('/en/search?query=foo&query=bar') + const { $ } = await getDOM('/en/search?query=foo&query=bar') expect($('[data-testid="search-results"]').text()).toMatch('Cannot have multiple values') const results = $('[data-testid="search-result"]') expect(results.length).toBe(0) }) test("search with 'toplevel' query string", async () => { - const $ = await getDOM('/en/search?query=foo&toplevel=Baring') + const { $ } = await getDOM('/en/search?query=foo&toplevel=Baring') expect($('h1').text()).toMatch(/\d+ Search results for "foo"/) // Note it testid being 'search-result', not 'search-results' diff --git a/src/search/tests/search.ts b/src/search/tests/search.ts index 5fed615cd522..6ee506ad73e9 100644 --- a/src/search/tests/search.ts +++ b/src/search/tests/search.ts @@ -5,7 +5,7 @@ describe('search results page', () => { vi.setConfig({ testTimeout: 60 * 1000 }) test('says something if no query is provided', async (): Promise => { - const $ = await getDOM('/en/search') + const { $ } = await getDOM('/en/search') const $container = $('[data-testid="search-results"]') expect($container.text()).toMatch(/Enter a search term/) // Default is the frontmatter title of the content/search/index.md @@ -14,7 +14,7 @@ describe('search results page', () => { test('says something if query is empty', async (): Promise => { const queryParams = new URLSearchParams({ query: ' ' }).toString() - const $ = await getDOM(`/en/search?${queryParams}`) + const { $ } = await getDOM(`/en/search?${queryParams}`) const $container = $('[data-testid="search-results"]') expect($container.text()).toMatch(/Enter a search term/) }) @@ -22,7 +22,7 @@ describe('search results page', () => { test('mentions search term in h1', async (): Promise => { const searchTerm = 'peterbe' const queryParams = new URLSearchParams({ query: searchTerm }).toString() - const $ = await getDOM(`/en/search?${queryParams}`) + const { $ } = await getDOM(`/en/search?${queryParams}`) const $container = $('[data-testid="search-results"]') const h1Text: string = $container.find('h1').text() diff --git a/src/tests/helpers/e2etest-ts.ts b/src/tests/helpers/e2etest-ts.ts index 9d489cdf28d0..16b5dadde3f0 100644 --- a/src/tests/helpers/e2etest-ts.ts +++ b/src/tests/helpers/e2etest-ts.ts @@ -122,8 +122,8 @@ export async function getDOMCached( ): Promise { const key = `${route}::${JSON.stringify(options)}` if (!getDOMCache.has(key)) { - const dom = await getDOM(route, options) - getDOMCache.set(key, dom) + const { $ } = await getDOM(route, options) + getDOMCache.set(key, $) } // The non-null assertion is safe here because we've just set the key if it didn't exist return getDOMCache.get(key)! @@ -136,7 +136,10 @@ export async function getDOMCached( * @param options - Options for fetching the DOM. * @returns A promise that resolves to the loaded DOM object. */ -export async function getDOM(route: string, options: GetDOMOptions = {}): Promise { +export async function getDOM( + route: string, + options: GetDOMOptions = {}, +): Promise<{ $: cheerio.Root; res: Response }> { const { headers, allow500s = false, allow404 = false, retries = 0 } = options const res = await get(route, { followRedirects: true, headers, retries }) @@ -150,10 +153,7 @@ export async function getDOM(route: string, options: GetDOMOptions = {}): Promis const $ = cheerio.load(res.body || '', { xmlMode: true }) - // Extend the Cheerio instance with the response object - ;($ as any).res = { ...res } - - return $ + return { $, res } } /** diff --git a/src/webhooks/data/fpt/schema.json b/src/webhooks/data/fpt/schema.json index e58587bae59d..1aeb7462e55f 100644 --- a/src/webhooks/data/fpt/schema.json +++ b/src/webhooks/data/fpt/schema.json @@ -13322,6 +13322,7 @@ } ], "availability": [ + "business", "organization", "app" ], @@ -13388,6 +13389,7 @@ } ], "availability": [ + "business", "organization", "app" ], @@ -13510,6 +13512,7 @@ } ], "availability": [ + "business", "organization", "app" ], diff --git a/src/webhooks/data/ghec/schema.json b/src/webhooks/data/ghec/schema.json index ef60afd3c747..10b18e829f0b 100644 --- a/src/webhooks/data/ghec/schema.json +++ b/src/webhooks/data/ghec/schema.json @@ -15656,6 +15656,7 @@ } ], "availability": [ + "business", "organization", "app" ], @@ -15722,6 +15723,7 @@ } ], "availability": [ + "business", "organization", "app" ], @@ -15844,6 +15846,7 @@ } ], "availability": [ + "business", "organization", "app" ], diff --git a/src/webhooks/lib/config.json b/src/webhooks/lib/config.json index 86d7e59981ca..f21b7de6fe4c 100644 --- a/src/webhooks/lib/config.json +++ b/src/webhooks/lib/config.json @@ -1,3 +1,3 @@ { - "sha": "a0508cecd18ab26b525527e4ba35bd9c6d725c4f" + "sha": "d97436bb3672e8d985262803de6ab7cafe1c7ff3" } \ No newline at end of file diff --git a/src/workflows/purge-old-workflow-runs.js b/src/workflows/purge-old-workflow-runs.js index 973a96b27b24..72276b505211 100755 --- a/src/workflows/purge-old-workflow-runs.js +++ b/src/workflows/purge-old-workflow-runs.js @@ -18,7 +18,7 @@ * For every run found, it deletes its logs and its run. * * The total number of deletions is limited by the `MAX_DELETIONS` - * environment variable. The default is 100. + * environment variable. The default is 500. * */ import fs from 'fs' @@ -29,7 +29,7 @@ import { getOctokit } from '@actions/github' main() async function main() { const DRY_RUN = Boolean(JSON.parse(process.env.DRY_RUN || 'false')) - const MAX_DELETIONS = parseInt(JSON.parse(process.env.MAX_DELETIONS || '100')) + const MAX_DELETIONS = parseInt(JSON.parse(process.env.MAX_DELETIONS || '500')) const MIN_AGE_DAYS = parseInt(process.env.MIN_AGE_DAYS || '90', 10) const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/') @@ -134,11 +134,11 @@ async function deleteWorkflowRuns( owner, repo, workflow, - { dryRun = false, minAgeDays = 100, maxDeletions = 1000 }, + { dryRun = false, minAgeDays = 90, maxDeletions = 500 }, ) { // https://docs.github.com/en/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax#query-for-dates const minCreated = new Date(Date.now() - minAgeDays * 24 * 60 * 60 * 1000) - const minCreatedSearch = `<=${minCreated.toISOString().split('T')[0]}` + const minCreatedSearch = `<${minCreated.toISOString().split('T')[0]}` // Delete is 10, but max is 100. But if we're only going to delete, // 30, use 30. And if we're only going to delete 5, use the default // per_page value of 10.