diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 277265806d..4869f7377e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -49,6 +49,7 @@ jobs: 'routing', 'unit', 'linting', + 'rendering-fixtures', ]; if (context.payload.repository.full_name === 'github/docs-internal') { all.push('translations'); @@ -110,6 +111,10 @@ jobs: .github/actions-scripts/merge-early-access.sh rm -fr docs-early-access + - name: Check the test fixture data (if applicable) + if: ${{ matrix.test-group == 'rendering-fixtures' }} + run: ./script/copy-fixture-data.js --check + - name: Clone all translations if: ${{ matrix.test-group == 'translations' }} uses: ./.github/actions/clone-translations @@ -172,4 +177,5 @@ jobs: # tests run only in English. The exception is the # `tests/translations/` suite which needs all languages to be set up. ENABLED_LANGUAGES: ${{ matrix.test-group == 'translations' && 'all' || '' }} + ROOT: ${{ matrix.test-group == 'rendering-fixtures' && 'tests/fixtures' || ''}} run: npm test -- tests/${{ matrix.test-group }}/ diff --git a/components/article/ArticlePage.tsx b/components/article/ArticlePage.tsx index 904f6c9c10..5129220cfb 100644 --- a/components/article/ArticlePage.tsx +++ b/components/article/ArticlePage.tsx @@ -47,7 +47,7 @@ export const ArticlePage = () => { {router.pathname.includes('/rest/') && }
-
+
productCommunityExamples: Array<{ repo: string; description: string }> featuredArticles: Array<{ - label: string // Guides + key: string // Featured article section key (startHere, popular, etc.) + label: string // Start here, Popular, etc. viewAllHref?: string // If provided, adds a "View All ->" to the header viewAllTitleText?: string // Adds 'title' attribute text for the "View All" href articles: Array @@ -133,16 +134,17 @@ export const getProductLandingContextFromRequest = async ( featuredArticles: Object.entries(req.context.featuredLinks || []) .filter(([key]) => { - return key === 'guides' || key === 'popular' || key === 'videos' + return key === 'startHere' || key === 'popular' || key === 'videos' }) .map(([key, links]: any) => { return { + key, label: key === 'popular' || key === 'videos' ? req.context.page.featuredLinks[key + 'Heading'] || req.context.site.data.ui.toc[key] : req.context.site.data.ui.toc[key], viewAllHref: - key === 'guides' && !req.context.currentCategory && hasGuidesPage + key === 'startHere' && !req.context.currentCategory && hasGuidesPage ? `${req.context.currentPath}/guides` : '', articles: links.map((link: any) => { diff --git a/components/landing/FeaturedArticles.tsx b/components/landing/FeaturedArticles.tsx index 11f715634b..6e040f870f 100644 --- a/components/landing/FeaturedArticles.tsx +++ b/components/landing/FeaturedArticles.tsx @@ -12,6 +12,8 @@ export const FeaturedArticles = () => { return (
{featuredArticles.map((section, i) => { + const viewAllTitleText = + section.key === 'startHere' ? `All '${section.label}' content` : `All ${section.label}` return (
{
diff --git a/components/landing/ProductLanding.tsx b/components/landing/ProductLanding.tsx index d6102b0374..174caaec0a 100644 --- a/components/landing/ProductLanding.tsx +++ b/components/landing/ProductLanding.tsx @@ -34,7 +34,7 @@ export const ProductLanding = () => {
{router.query.productId === 'rest' && } -
+
diff --git a/components/landing/TocLanding.tsx b/components/landing/TocLanding.tsx index bfdfc93c5e..6d386c72ee 100644 --- a/components/landing/TocLanding.tsx +++ b/components/landing/TocLanding.tsx @@ -38,7 +38,7 @@ export const TocLanding = () => {
-
+
diff --git a/content/README.md b/content/README.md index b5e88f109a..941ff83758 100644 --- a/content/README.md +++ b/content/README.md @@ -180,7 +180,7 @@ Example: featuredLinks: gettingStarted: - /path/to/page - guides: + startHere: - /guides/example popular: - /path/to/popular/article1 diff --git a/content/account-and-profile/index.md b/content/account-and-profile/index.md index 8793d76f60..c7c1bec617 100644 --- a/content/account-and-profile/index.md +++ b/content/account-and-profile/index.md @@ -5,7 +5,7 @@ intro: 'Make {% data variables.product.product_name %} work best for you by adju introLinks: quickstart: /get-started/onboarding/getting-started-with-your-github-account featuredLinks: - guides: + startHere: - /account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-personal-account-settings/changing-your-github-username - '{% ifversion ghae %}/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-personal-account-settings/about-your-personal-dashboard{% endif %}' - /account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/managing-your-profile-readme diff --git a/content/actions/index.md b/content/actions/index.md index 9586acc96b..31aaabea62 100644 --- a/content/actions/index.md +++ b/content/actions/index.md @@ -6,7 +6,7 @@ introLinks: overview: /actions/learn-github-actions/understanding-github-actions quickstart: /actions/quickstart featuredLinks: - guides: + startHere: - /actions/learn-github-actions - /actions/examples - /actions/automating-builds-and-tests/about-continuous-integration diff --git a/content/actions/learn-github-actions/expressions.md b/content/actions/learn-github-actions/expressions.md index 78c6b8678e..6853d304f5 100644 --- a/content/actions/learn-github-actions/expressions.md +++ b/content/actions/learn-github-actions/expressions.md @@ -308,7 +308,13 @@ steps: ### always -Causes the step to always execute, and returns `true`, even when canceled. A job or step will not run when a critical failure prevents the task from running. For example, if getting sources failed. +Causes the step to always execute, and returns `true`, even when canceled. The `always` expression is best used at the step level or on tasks that you expect to run even when a job is canceled. For example, you can use `always` to send logs even when a job is canceled. + +{% note %} + +**Note:** Avoid using `always` for any task that could suffer from a critical failure, for example: getting sources, otherwise the workflow may hang until it times out. If you want to run a job or step regardless of its success or failure, use the recommended alternative:`if: success() || failure()` + +{% endnote %} #### Example of `always` diff --git a/content/actions/learn-github-actions/usage-limits-billing-and-administration.md b/content/actions/learn-github-actions/usage-limits-billing-and-administration.md index bc4ad4f8dd..42bc70a421 100644 --- a/content/actions/learn-github-actions/usage-limits-billing-and-administration.md +++ b/content/actions/learn-github-actions/usage-limits-billing-and-administration.md @@ -110,10 +110,12 @@ For more information, see: {% data reusables.actions.disabling-github-actions %} +{% ifversion actions-cache-admin-ui %}You can also manage {% data variables.product.prodname_actions %} settings for your enterprise, such as workflow permissions and cache storage.{% endif %} + For more information, see: - "[Managing {% data variables.product.prodname_actions %} settings for a repository](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository)" - "[Disabling or limiting {% data variables.product.prodname_actions %} for your organization](/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization)" -- "[Enforcing policies for {% data variables.product.prodname_actions %} in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-github-actions-policies-for-your-enterprise#enforcing-a-policy-for-artifact-and-log-retention-in-your-enterprise)" +- "[Enforcing policies for {% data variables.product.prodname_actions %} in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-github-actions-policies-for-your-enterprise)" ## Disabling and enabling workflows diff --git a/content/actions/publishing-packages/publishing-nodejs-packages.md b/content/actions/publishing-packages/publishing-nodejs-packages.md index 61332f6d51..a2e56dc72e 100644 --- a/content/actions/publishing-packages/publishing-nodejs-packages.md +++ b/content/actions/publishing-packages/publishing-nodejs-packages.md @@ -51,7 +51,7 @@ If you add steps in your workflow to configure the `publishConfig` fields in you ## Publishing packages to the npm registry -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 npm registry if CI tests pass. +You can trigger a workflow to publish your package every time you publish a new release. The process in the following example is executed when the release event of type `published` is triggered. If the CI tests pass, the process uploads the package to the npm registry. For more information, see "[Managing releases in a repository](/repositories/releasing-projects-on-github/managing-releases-in-a-repository#creating-a-release)." To perform authenticated operations against the npm registry in your workflow, you'll need to store your npm authentication token as a secret. For example, create a repository secret called `NPM_TOKEN`. For more information, see "[Creating and using encrypted secrets](/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)." @@ -65,7 +65,7 @@ This example stores the `NPM_TOKEN` secret in the `NODE_AUTH_TOKEN` environment name: Publish Package to npmjs on: release: - types: [created] + types: [published] jobs: build: runs-on: ubuntu-latest @@ -94,7 +94,7 @@ Please note that you need to set the `registry-url` to `https://registry.npmjs.o ## Publishing packages to {% data variables.product.prodname_registry %} -Each time you create a new release, you can trigger a workflow to publish your package. The workflow in the example below runs anytime the `release` event with type `created` occurs. The workflow publishes the package to {% data variables.product.prodname_registry %} if CI tests pass. +You can trigger a workflow to publish your package every time you publish a new release. The process in the following example is executed when the release event of type `published` is triggered. If the CI tests pass, the process uploads the package to {% data variables.product.prodname_registry %}. For more information, see "[Managing releases in a repository](/repositories/releasing-projects-on-github/managing-releases-in-a-repository#creating-a-release)." ### Configuring the destination repository @@ -125,7 +125,7 @@ This example stores the `GITHUB_TOKEN` secret in the `NODE_AUTH_TOKEN` environme name: Publish package to GitHub Packages on: release: - types: [created] + types: [published] jobs: build: runs-on: ubuntu-latest @@ -163,7 +163,7 @@ If you use the Yarn package manager, you can install and publish packages using name: Publish Package to npmjs on: release: - types: [created] + types: [published] jobs: build: runs-on: ubuntu-latest diff --git a/content/actions/using-workflows/caching-dependencies-to-speed-up-workflows.md b/content/actions/using-workflows/caching-dependencies-to-speed-up-workflows.md index e1cfcd7ed1..de1387c06e 100644 --- a/content/actions/using-workflows/caching-dependencies-to-speed-up-workflows.md +++ b/content/actions/using-workflows/caching-dependencies-to-speed-up-workflows.md @@ -332,7 +332,6 @@ on: pull_request: types: - closed - workflow_dispatch: jobs: cleanup: diff --git a/content/actions/using-workflows/triggering-a-workflow.md b/content/actions/using-workflows/triggering-a-workflow.md index 9f5ffccd9c..16580911f7 100644 --- a/content/actions/using-workflows/triggering-a-workflow.md +++ b/content/actions/using-workflows/triggering-a-workflow.md @@ -118,7 +118,9 @@ You can use activity types and filters to further control when your workflow wil ## Defining inputs for manually triggered workflows +{% data reusables.actions.workflow-dispatch %} {% data reusables.actions.workflow-dispatch-inputs %} +{% data reusables.actions.workflow-dispatch-inputs-example %} {% ifversion fpt or ghes or ghae > 3.3 or ghec %} ## Defining inputs, outputs, and secrets for reusable workflows diff --git a/content/actions/using-workflows/workflow-syntax-for-github-actions.md b/content/actions/using-workflows/workflow-syntax-for-github-actions.md index a1f5cd9ce0..ec0870f439 100644 --- a/content/actions/using-workflows/workflow-syntax-for-github-actions.md +++ b/content/actions/using-workflows/workflow-syntax-for-github-actions.md @@ -199,10 +199,28 @@ A boolean specifying whether the secret must be supplied. {% data reusables.actions.workflows.section-specifying-branches %} -## `on.workflow_dispatch.inputs` +## `on.workflow_dispatch` + +{% data reusables.actions.workflow-dispatch %} + +### `on.workflow_dispatch.inputs` {% data reusables.actions.workflow-dispatch-inputs %} +#### Example + +{% data reusables.actions.workflow-dispatch-inputs-example %} + +#### `on.workflow_dispatch.inputs..required` + +A boolean specifying whether the input must be supplied. + +{% ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %} +#### `on.workflow_dispatch.inputs..type` + +The value of this parameter is a string specifying the data type of the input. This must be one of: `boolean`, `choice`, `environment`, or `string`. +{% endif %} + ## `permissions` {% data reusables.actions.jobs.section-assigning-permissions-to-jobs %} diff --git a/content/admin/index.md b/content/admin/index.md index 934a69a90f..47aefa03da 100644 --- a/content/admin/index.md +++ b/content/admin/index.md @@ -69,7 +69,7 @@ introLinks: changelog: label: enterprise featuredLinks: - guides: + startHere: - '{% ifversion ghae %}/admin/user-management/managing-users-in-your-enterprise/auditing-users-across-your-enterprise{% endif %}' - /admin/identity-and-access-management/managing-iam-for-your-enterprise/about-authentication-for-your-enterprise - /admin/policies/enforcing-policies-for-your-enterprise/about-enterprise-policies diff --git a/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md b/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md index 2b6e79d378..1bf9f0d8a2 100644 --- a/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md +++ b/content/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md @@ -125,7 +125,7 @@ Before adding a new SSH key to the ssh-agent to manage your keys, you should hav * Open your `~/.ssh/config` file, then modify the file to contain the following lines. If your SSH key file has a different name or path than the example code, modify the filename or path to match your current setup. ``` - Host *.{% ifversion ghes or ghae %}HOSTNAME{% else %}github.com{% endif %} + Host {% ifversion ghes or ghae %}HOSTNAME{% else %}github.com{% endif %} AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/id_{% ifversion ghae %}ecdsa{% else %}ed25519{% endif %} @@ -140,7 +140,7 @@ Before adding a new SSH key to the ssh-agent to manage your keys, you should hav - If you see a `Bad configuration option: usekeychain` error, add an additional line to the configuration's' `Host *.{% ifversion ghes or ghae %}HOSTNAME{% else %}github.com{% endif %}` section. ``` - Host *.{% ifversion ghes or ghae %}HOSTNAME{% else %}github.com{% endif %} + Host {% ifversion ghes or ghae %}HOSTNAME{% else %}github.com{% endif %} IgnoreUnknown UseKeychain ``` {% endnote %} diff --git a/content/authentication/index.md b/content/authentication/index.md index 1bcd6b4b97..8ae9d20042 100644 --- a/content/authentication/index.md +++ b/content/authentication/index.md @@ -21,7 +21,7 @@ versions: introLinks: overview: /authentication/keeping-your-account-and-data-secure/about-authentication-to-github featuredLinks: - guides: + startHere: - /authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent - /authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token - /authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication diff --git a/content/billing/index.md b/content/billing/index.md index 98e2c6bbe8..8d8eea0eb1 100644 --- a/content/billing/index.md +++ b/content/billing/index.md @@ -8,7 +8,7 @@ redirect_from: introLinks: overview: '{% ifversion fpt or ghec %}/billing/managing-your-github-billing-settings/about-billing-on-github{% elsif ghes%}/billing/managing-billing-for-your-github-account/about-billing-for-your-enterprise{% endif %}' featuredLinks: - guides: + startHere: - '{% ifversion fpt or ghec %}/billing/managing-your-github-billing-settings/adding-or-editing-a-payment-method{% endif %}' - '{% ifversion fpt %}/billing/managing-billing-for-your-github-account/upgrading-your-github-subscription{% endif %}' - '{% ifversion ghec %}/billing/managing-billing-for-your-github-account/about-billing-for-your-enterprise{% endif %}' diff --git a/content/billing/managing-billing-for-github-advanced-security/managing-your-github-advanced-security-licensing.md b/content/billing/managing-billing-for-github-advanced-security/managing-your-github-advanced-security-licensing.md index 3062ca48b3..240d53a69d 100644 --- a/content/billing/managing-billing-for-github-advanced-security/managing-your-github-advanced-security-licensing.md +++ b/content/billing/managing-billing-for-github-advanced-security/managing-your-github-advanced-security-licensing.md @@ -31,6 +31,6 @@ Each license for {% data variables.product.prodname_GH_advanced_security %} spec {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.license-tab %} -1. To the right of "GitHub Advanced Security", click **Manage**, then click **Cancel Supscription**. +1. To the right of "GitHub Advanced Security", click **Manage**, then click **Cancel Subscription**. ![Manage drop down in the GitHub Advanced Security licensing screen](/assets/images/help/enterprises/ghas-cancel-subscription.png) 2. To confirm your cancellation, click **I understand, cancel Advanced Security**. \ No newline at end of file diff --git a/content/billing/managing-your-github-billing-settings/about-billing-on-github.md b/content/billing/managing-your-github-billing-settings/about-billing-on-github.md index 416f51f79a..2d5907cf5b 100644 --- a/content/billing/managing-your-github-billing-settings/about-billing-on-github.md +++ b/content/billing/managing-your-github-billing-settings/about-billing-on-github.md @@ -22,6 +22,8 @@ You can upgrade your personal account or organization to a paid subscription at ## Managing billing settings +{% data reusables.sponsors.paypal-deprecation %} + You must manage billing settings, payment method, and paid features and products for each of your accounts separately. You can choose to pay monthly or yearly for each account's paid products and features. Every paid feature or product associated with an account shares a billing date, payment method, and receipt. {% data reusables.dotcom_billing.payment-methods %} {% data reusables.dotcom_billing.same-payment-method %} @@ -30,7 +32,7 @@ For more information, see "[Managing your {% data variables.product.prodname_dot ## Switching between settings for your different accounts -If you're an organization or enterprise owner, you can switch between settings for your different accounts using the context switcher in your settings. +If you're an organization or enterprise owner, you can switch between settings for your different accounts using the context switcher in your settings. {% data reusables.user-settings.access_settings %} 1. At the top of the page, to the right of your username, click **Switch to another account**. diff --git a/content/code-security/index.md b/content/code-security/index.md index d0f4985e63..bf05baf548 100644 --- a/content/code-security/index.md +++ b/content/code-security/index.md @@ -5,7 +5,7 @@ intro: 'Build security into your {% data variables.product.prodname_dotcom %} wo introLinks: overview: /code-security/getting-started/github-security-features featuredLinks: - guides: + startHere: - /code-security/getting-started/securing-your-repository - /code-security/getting-started/securing-your-organization - '{% ifversion fpt or ghec %}/code-security/security-advisories/repository-security-advisories/creating-a-repository-security-advisory{% endif %}' diff --git a/content/codespaces/developing-in-codespaces/deleting-a-codespace.md b/content/codespaces/developing-in-codespaces/deleting-a-codespace.md index f7be295c9b..c39152138e 100644 --- a/content/codespaces/developing-in-codespaces/deleting-a-codespace.md +++ b/content/codespaces/developing-in-codespaces/deleting-a-codespace.md @@ -17,7 +17,7 @@ shortTitle: Delete a codespace ## Overview -{% data reusables.codespaces.automatic-deletion %} For more information, see "[Configuring automatic deletion of your codespaces](http://127.0.0.1:4000/en/codespaces/customizing-your-codespace/configuring-automatic-deletion-of-your-codespaces?tool=webui)." +{% data reusables.codespaces.automatic-deletion %} For more information, see "[Configuring automatic deletion of your codespaces](/codespaces/customizing-your-codespace/configuring-automatic-deletion-of-your-codespaces?tool=webui)." You can manually delete a codespace in a variety of ways: - In the terminal by using {% data variables.product.prodname_cli %} diff --git a/content/codespaces/developing-in-codespaces/opening-an-existing-codespace.md b/content/codespaces/developing-in-codespaces/opening-an-existing-codespace.md index fda381abec..a0cb34ff1a 100644 --- a/content/codespaces/developing-in-codespaces/opening-an-existing-codespace.md +++ b/content/codespaces/developing-in-codespaces/opening-an-existing-codespace.md @@ -102,7 +102,7 @@ You can also access the commands listed above by navigating to the Remote Explor - To open a codespace in JupyterLab, enter: ```shell{:copy} - gh codespace code --jupyter + gh codespace jupyter ``` {% note %} diff --git a/content/codespaces/index.md b/content/codespaces/index.md index d862615bfa..990777f07c 100644 --- a/content/codespaces/index.md +++ b/content/codespaces/index.md @@ -6,7 +6,7 @@ introLinks: overview: /codespaces/overview quickstart: /codespaces/getting-started/quickstart featuredLinks: - guides: + startHere: - /codespaces/managing-codespaces-for-your-organization/enabling-github-codespaces-for-your-organization - /codespaces/getting-started/the-codespace-lifecycle - /codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/introduction-to-dev-containers diff --git a/content/codespaces/prebuilding-your-codespaces/configuring-prebuilds.md b/content/codespaces/prebuilding-your-codespaces/configuring-prebuilds.md index ed576d0582..1fcd322df2 100644 --- a/content/codespaces/prebuilding-your-codespaces/configuring-prebuilds.md +++ b/content/codespaces/prebuilding-your-codespaces/configuring-prebuilds.md @@ -45,9 +45,22 @@ Prebuilds are created using {% data variables.product.prodname_actions %}. As a 1. Choose how you want to automatically trigger prebuild updates. - * **Every push** (the default setting) - With this setting, prebuilds will be updated on every push made to the given branch. This will ensure that codespaces generated from a prebuild always contain the latest codespace configuration, including any recently added or updated dependencies. - * **On configuration change** - With this setting, prebuilds will be updated every time associated configuration files for a given repo and branch are updated. This ensures that changes to the dev container configuration files for the repository are used when a codespace is generated from a prebuild. The {% data variables.product.prodname_actions %} workflow that updates the prebuilds will run less often, so this option will use fewer {% data variables.product.prodname_actions %} minutes. However, this option will not guarantee that codespaces always include recently added or updated dependencies, so these may have to be added or updated manually after a codespace has been created. - * **Scheduled** - With this setting, you can have your prebuilds updated on a custom schedule that's defined by you. This can reduce consumption of {% data variables.product.prodname_actions %} minutes, however, with this option, codespaces may be created that do not use the latest dev container configuration changes. + - **Every push** (the default setting) - With this setting, prebuilds will be updated on every push made to the given branch. This will ensure that codespaces generated from a prebuild always contain the latest codespace configuration, including any recently added or updated dependencies. + + - **On configuration change** - With this setting, prebuilds will be updated every time any of the following files is changed: + - `.devcontainer/devcontainer.json` + + {% note %} + + **Note**: Prebuild updates are not triggered by changes to `devcontainer.json` files within subdirectories of `.devcontainer`. + + {% endnote %} + + - The Dockerfile referenced in the `build.dockerfile` property of the `.devcontainer/devcontainer.json` file. + + This setting ensures that changes to the dev container configuration files for the repository are used when a codespace is generated from a prebuild. The {% data variables.product.prodname_actions %} workflow that updates the prebuilds will run less often, so this option will use fewer {% data variables.product.prodname_actions %} minutes. However, this option will not guarantee that codespaces always include recently added or updated dependencies, so these may have to be added or updated manually after a codespace has been created. + + - **Scheduled** - With this setting, you can have your prebuilds updated on a custom schedule that's defined by you. This can reduce consumption of {% data variables.product.prodname_actions %} minutes, however, with this option, codespaces may be created that do not use the latest dev container configuration changes. ![The prebuild trigger options](/assets/images/help/codespaces/prebuilds-triggers.png) diff --git a/content/codespaces/troubleshooting/troubleshooting-included-usage.md b/content/codespaces/troubleshooting/troubleshooting-included-usage.md index b5ec636b0f..82e31d05e0 100644 --- a/content/codespaces/troubleshooting/troubleshooting-included-usage.md +++ b/content/codespaces/troubleshooting/troubleshooting-included-usage.md @@ -47,7 +47,7 @@ For billing purposes, {% data variables.product.prodname_codespaces %} storage i ## Understanding your {% data variables.product.prodname_codespaces %} usage -You can check the cumulative {% data variables.product.prodname_github_codespaces %} usage for your current monthly billing cycle in your {% data variables.product.prodname_dotcom %} settings. For more information, see "[Viewing your {% data variables.product.prodname_github_codespaces %} usage](http://127.0.0.1:4000/en/billing/managing-billing-for-github-codespaces/viewing-your-github-codespaces-usage)." +You can check the cumulative {% data variables.product.prodname_github_codespaces %} usage for your current monthly billing cycle in your {% data variables.product.prodname_dotcom %} settings. For more information, see "[Viewing your {% data variables.product.prodname_github_codespaces %} usage](/billing/managing-billing-for-github-codespaces/viewing-your-github-codespaces-usage)." ![Screenshot of the initial view of personal usage](/assets/images/help/codespaces/view-personal-usage-collapsed.png) diff --git a/content/communities/index.md b/content/communities/index.md index bbeb99b602..c91992204f 100644 --- a/content/communities/index.md +++ b/content/communities/index.md @@ -8,7 +8,7 @@ redirect_from: changelog: label: wikis featuredLinks: - guides: + startHere: - /communities/setting-up-your-project-for-healthy-contributions/setting-guidelines-for-repository-contributors - /communities/setting-up-your-project-for-healthy-contributions/adding-a-code-of-conduct-to-your-project - /communities/moderating-comments-and-conversations/managing-disruptive-comments diff --git a/content/copilot/index.md b/content/copilot/index.md index 0904dea2a5..9869324fd6 100644 --- a/content/copilot/index.md +++ b/content/copilot/index.md @@ -10,7 +10,7 @@ introLinks: overview: /copilot/overview-of-github-copilot/about-github-copilot quickstart: /copilot/quickstart featuredLinks: - guides: + startHere: - /copilot/getting-started-with-github-copilot/getting-started-with-github-copilot-in-visual-studio-code - /copilot/getting-started-with-github-copilot/getting-started-with-github-copilot-in-a-jetbrains-ide - /copilot/getting-started-with-github-copilot/getting-started-with-github-copilot-in-visual-studio diff --git a/content/desktop/index.md b/content/desktop/index.md index b77c0e6ebf..add90d6abe 100644 --- a/content/desktop/index.md +++ b/content/desktop/index.md @@ -5,7 +5,7 @@ intro: 'With GitHub Desktop, you can interact with GitHub using a GUI instead of introLinks: overview: /desktop/installing-and-configuring-github-desktop/overview/getting-started-with-github-desktop featuredLinks: - guides: + startHere: - /desktop/installing-and-configuring-github-desktop/overview/creating-your-first-repository-using-github-desktop - /desktop/installing-and-configuring-github-desktop/installing-and-authenticating-to-github-desktop/installing-github-desktop - /desktop/installing-and-configuring-github-desktop/installing-and-authenticating-to-github-desktop/authenticating-to-github diff --git a/content/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps.md b/content/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps.md index f5a7589f62..84e13adb64 100644 --- a/content/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps.md +++ b/content/developers/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps.md @@ -44,7 +44,7 @@ Direct the user to the following URL in their browser: When your GitHub App specifies a `login` parameter, it prompts users with a specific account they can use for signing in and authorizing your app. -#### Parameters +#### Input parameters for `GET {% data variables.product.oauth_host_code %}/login/oauth/authorize` Name | Type | Description -----|------|------------ @@ -78,7 +78,7 @@ Make a request to the following endpoint to receive an access token: POST {% data variables.product.oauth_host_code %}/login/oauth/access_token -#### Parameters +#### Input parameters for `POST {% data variables.product.oauth_host_code %}/login/oauth/access_token` Name | Type | Description -----|------|------------ @@ -87,7 +87,7 @@ Name | Type | Description `code` | `string` | **Required.** The code you received as a response to Step 1. `redirect_uri` | `string` | The URL in your application where users will be sent after authorization. This must be an exact match to {% ifversion fpt or ghes or ghec %} one of the URLs you provided as a **Callback URL** {% else %} the URL you provided in the **User authorization callback URL** field{% endif %} when setting up your GitHub App and can't contain any additional parameters. -#### Response +#### Response from `POST {% data variables.product.oauth_host_code %}/login/oauth/access_token` By default, the response takes the following form. The response parameters `expires_in`, `refresh_token`, and `refresh_token_expires_in` are only returned when you enable expiring user-to-server access tokens. diff --git a/content/developers/apps/building-oauth-apps/authorizing-oauth-apps.md b/content/developers/apps/building-oauth-apps/authorizing-oauth-apps.md index 557287e15b..8a1978e2bc 100644 --- a/content/developers/apps/building-oauth-apps/authorizing-oauth-apps.md +++ b/content/developers/apps/building-oauth-apps/authorizing-oauth-apps.md @@ -46,7 +46,7 @@ The web application flow to authorize users for your app is: When your GitHub App specifies a `login` parameter, it prompts users with a specific account they can use for signing in and authorizing your app. -#### Parameters +#### Input parameters for `GET {% data variables.product.oauth_host_code %}/login/oauth/authorize` Name | Type | Description -----|------|-------------- @@ -65,7 +65,7 @@ Exchange this `code` for an access token: POST {% data variables.product.oauth_host_code %}/login/oauth/access_token -#### Parameters +#### Input parameters for `POST {% data variables.product.oauth_host_code %}/login/oauth/access_token` Name | Type | Description -----|------|-------------- @@ -74,7 +74,7 @@ Name | Type | Description `code` | `string` | **Required.** The code you received as a response to Step 1. `redirect_uri` | `string` | The URL in your application where users are sent after authorization. -#### Response +#### Response from `POST {% data variables.product.oauth_host_code %}/login/oauth/access_token` By default, the response takes the following form: @@ -143,14 +143,14 @@ Before you can use the device flow to authorize and identify users, you must fir Your app must request a user verification code and verification URL that the app will use to prompt the user to authenticate in the next step. This request also returns a device verification code that the app must use to receive an access token and check the status of user authentication. -#### Input Parameters +#### Input parameters for `POST {% data variables.product.oauth_host_code %}/login/device/code` Name | Type | Description -----|------|-------------- `client_id` | `string` | **Required.** The client ID you received from {% data variables.product.product_name %} for your app. `scope` | `string` | The scope that your app is requesting access to. -#### Response +#### Response from `POST {% data variables.product.oauth_host_code %}/login/device/code` By default, the response takes the following form: @@ -182,7 +182,7 @@ Accept: application/xml ``` -#### Response parameters +#### Response parameters for `POST {% data variables.product.oauth_host_code %}/login/device/code` Name | Type | Description -----|------|-------------- @@ -208,7 +208,7 @@ The user must enter a valid code within 15 minutes (or 900 seconds). After 15 mi Once the user has authorized, the app will receive an access token that can be used to make requests to the API on behalf of a user. -#### Input parameters +#### Input parameters for `POST {% data variables.product.oauth_host_code %}/login/oauth/access_token` Name | Type | Description -----|------|-------------- @@ -216,7 +216,7 @@ Name | Type | Description `device_code` | `string` | **Required.** The device verification code you received from the `POST {% data variables.product.oauth_host_code %}/login/device/code` request. `grant_type` | `string` | **Required.** The grant type must be `urn:ietf:params:oauth:grant-type:device_code`. -#### Response +#### Response from `POST {% data variables.product.oauth_host_code %}/login/oauth/access_token` By default, the response takes the following form: diff --git a/content/developers/github-marketplace/listing-an-app-on-github-marketplace/writing-a-listing-description-for-your-app.md b/content/developers/github-marketplace/listing-an-app-on-github-marketplace/writing-a-listing-description-for-your-app.md index 27a8dbf8d5..ee0e725758 100644 --- a/content/developers/github-marketplace/listing-an-app-on-github-marketplace/writing-a-listing-description-for-your-app.md +++ b/content/developers/github-marketplace/listing-an-app-on-github-marketplace/writing-a-listing-description-for-your-app.md @@ -26,17 +26,17 @@ Here are guidelines about the fields you'll need to fill out in the **Listing de Your listing's name will appear on the [{% data variables.product.prodname_marketplace %} homepage](https://github.com/marketplace). The name is limited to 255 characters and can be different from your app's name. Your listing cannot have the same name as an existing account on {% data variables.location.product_location %}, unless the name is your own user or organization name. -### Very short description +### Very short description of listing The community will see the "very short" description under your app's name on the [{% data variables.product.prodname_marketplace %} homepage](https://github.com/marketplace). ![{% data variables.product.prodname_marketplace %} app short description](/assets/images/marketplace/marketplace_short_description.png) -#### Length +#### Length of "Very short description" We recommend keeping short descriptions to 40-80 characters. Although you are allowed to use more characters, concise descriptions are easier for customers to read and understand quickly. -#### Content +#### Content of "Very short description" - Describe the app’s functionality. Don't use this space for a call to action. For example: @@ -52,7 +52,7 @@ We recommend keeping short descriptions to 40-80 characters. Although you are al **DON'T:** Skycap is a container-native continuous integration tool -#### Formatting +#### Formatting of "Very short description" - Always use sentence-case capitalization. Only capitalize the first letter and proper nouns. @@ -142,19 +142,19 @@ Clicking **Read more...**, displays the "Detailed description." Follow these guidelines for writing these descriptions. -### Length +### Length of "Introductory description" and "Detailed description" We recommend writing a 1-2 sentence high-level summary between 150-250 characters in the required "Introductory description" field when [listing your app](/marketplace/listing-on-github-marketplace/). Although you are allowed to use more characters, concise summaries are easier for customers to read and understand quickly. You can add more information in the optional "Detailed description" field. You see this description when you click **Read more...** below the introductory description on your app's landing page. A detailed description consists of 3-5 [value propositions](https://en.wikipedia.org/wiki/Value_proposition), with 1-2 sentences describing each one. You can use up to 1,000 characters for this description. -### Content +### Content of "Introductory description" and "Detailed description" - Always begin introductory descriptions with your app's name. - Always write descriptions and value propositions using the active voice. -### Formatting +### Formatting of "Introductory description" and "Detailed description" - Always use sentence-case capitalization in value proposition titles. Only capitalize the first letter and proper nouns. diff --git a/content/developers/index.md b/content/developers/index.md index ae69e34d3a..5ce3858ff2 100644 --- a/content/developers/index.md +++ b/content/developers/index.md @@ -5,7 +5,7 @@ introLinks: About apps: /developers/apps/getting-started-with-apps/about-apps layout: product-landing featuredLinks: - guides: + startHere: - /developers/apps/getting-started-with-apps/differences-between-github-apps-and-oauth-apps - /developers/apps/building-github-apps/creating-a-github-app - /developers/apps/building-github-apps/authenticating-with-github-apps diff --git a/content/developers/overview/managing-deploy-keys.md b/content/developers/overview/managing-deploy-keys.md index dc9110071b..6331e7e676 100644 --- a/content/developers/overview/managing-deploy-keys.md +++ b/content/developers/overview/managing-deploy-keys.md @@ -23,18 +23,18 @@ You can manage SSH keys on your servers when automating deployment scripts using In many cases, especially in the beginning of a project, SSH agent forwarding is the quickest and simplest method to use. Agent forwarding uses the same SSH keys that your local development computer uses. -### Pros +### Pros of SSH agent forwarding * You do not have to generate or keep track of any new keys. * There is no key management; users have the same permissions on the server that they do locally. * No keys are stored on the server, so in case the server is compromised, you don't need to hunt down and remove the compromised keys. -### Cons +### Cons of SSH agent forwarding * Users **must** SSH in to deploy; automated deploy processes can't be used. * SSH agent forwarding can be troublesome to run for Windows users. -### Setup +### Set up SSH agent forwarding 1. Turn on agent forwarding locally. See [our guide on SSH agent forwarding][ssh-agent-forwarding] for more information. 2. Set your deploy scripts to use agent forwarding. For example, on a bash script, enabling agent forwarding would look something like this: @@ -44,7 +44,7 @@ In many cases, especially in the beginning of a project, SSH agent forwarding is If you don't want to use SSH keys, you can use HTTPS with OAuth tokens. -### Pros +### Pros of HTTPS cloning with OAuth tokens * Anyone with access to the server can deploy the repository. * Users don't have to change their local SSH settings. @@ -54,12 +54,12 @@ If you don't want to use SSH keys, you can use HTTPS with OAuth tokens. * Generating new tokens can be easily scripted using [the OAuth API](/rest/reference/oauth-authorizations#create-a-new-authorization). {% endif %} -### Cons +### Cons of HTTPS cloning with OAuth tokens * You must make sure that you configure your token with the correct access scopes. * Tokens are essentially passwords, and must be protected the same way. -### Setup +### Set up HTTPS cloning with OAuth tokens See [our guide on creating a {% data variables.product.pat_generic %}](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token). @@ -69,18 +69,18 @@ See [our guide on creating a {% data variables.product.pat_generic %}](/authenti {% data reusables.repositories.deploy-keys-write-access %} -### Pros +### Pros of deploy keys * Anyone with access to the repository and server has the ability to deploy the project. * Users don't have to change their local SSH settings. * Deploy keys are read-only by default, but you can give them write access when adding them to a repository. -### Cons +### Cons of deploy keys * Deploy keys only grant access to a single repository. More complex projects may have many repositories to pull to the same server. * Deploy keys are usually not protected by a passphrase, making the key easily accessible if the server is compromised. -### Setup +### Set up deploy keys 1. [Run the `ssh-keygen` procedure][generating-ssh-keys] on your server, and remember where you save the generated public and private rsa key pair. {% data reusables.profile.navigating-to-profile %} @@ -125,19 +125,19 @@ If your server needs to access repositories across one or more organizations, yo Since GitHub Apps are a first class actor on {% data variables.product.product_name %}, the server-to-server tokens are decoupled from any GitHub user, which makes them comparable to "service tokens". Additionally, server-to-server tokens have dedicated rate limits that scale with the size of the organizations that they act upon. For more information, see [Rate limits for {% data variables.product.prodname_github_apps %}](/developers/apps/rate-limits-for-github-apps). -### Pros +### Pros of server-to-server tokens - Tightly-scoped tokens with well-defined permission sets and expiration times (1 hour, or less if revoked manually using the API). - Dedicated rate limits that grow with your organization. - Decoupled from GitHub user identities, so they do not consume any licensed seats. - Never granted a password, so cannot be directly signed in to. -### Cons +### Cons of server-to-server tokens - Additional setup is needed to create the GitHub App. - Server-to-server tokens expire after 1 hour, and so need to be re-generated, typically on-demand using code. -### Setup +### Set up server-to-server tokens 1. Determine if your GitHub App should be public or private. If your GitHub App will only act on repositories within your organization, you likely want it private. 1. Determine the permissions your GitHub App requires, such as read-only access to repository contents. @@ -167,18 +167,18 @@ This means that you cannot automate the creation of accounts. But if you want to {% endif %} -### Pros +### Pros of machine users * Anyone with access to the repository and server has the ability to deploy the project. * No (human) users need to change their local SSH settings. * Multiple keys are not needed; one per server is adequate. -### Cons +### Cons of machine users * Only organizations can restrict machine users to read-only access. Personal repositories always grant collaborators read/write access. * Machine user keys, like deploy keys, are usually not protected by a passphrase. -### Setup +### Set up machine users 1. [Run the `ssh-keygen` procedure][generating-ssh-keys] on your server and attach the public key to the machine user account. 2. Give the machine user account access to the repositories you want to automate. You can do this by adding the account as a [collaborator][collaborator], as an [outside collaborator][outside-collaborator], or to a [team][team] in an organization. diff --git a/content/developers/webhooks-and-events/events/github-event-types.md b/content/developers/webhooks-and-events/events/github-event-types.md index 93889de889..143e67c76d 100644 --- a/content/developers/webhooks-and-events/events/github-event-types.md +++ b/content/developers/webhooks-and-events/events/github-event-types.md @@ -94,7 +94,7 @@ Link: ; rel="next", {% data reusables.webhooks.events_api_payload %} -### Event `payload` object +### Event `payload` object for CommitCommentEvent {% data reusables.webhooks.commit_comment_properties %} @@ -104,7 +104,7 @@ Link: ; rel="next", {% data reusables.webhooks.events_api_payload %} -### Event `payload` object +### Event `payload` object for CreateEvent {% data reusables.webhooks.create_properties %} @@ -114,7 +114,7 @@ Link: ; rel="next", {% data reusables.webhooks.events_api_payload %} -### Event `payload` object +### Event `payload` object for DeleteEvent {% data reusables.webhooks.delete_properties %} @@ -124,7 +124,7 @@ Link: ; rel="next", {% data reusables.webhooks.events_api_payload %} -### Event `payload` object +### Event `payload` object for ForkEvent {% data reusables.webhooks.fork_properties %} @@ -134,7 +134,7 @@ Link: ; rel="next", {% data reusables.webhooks.events_api_payload %} -### Event `payload` object +### Event `payload` object for GollumEvent {% data reusables.webhooks.gollum_properties %} @@ -144,7 +144,7 @@ Link: ; rel="next", {% data reusables.webhooks.events_api_payload %} -### Event `payload` object +### Event `payload` object for IssueCommentEvent {% data reusables.webhooks.issue_comment_webhook_properties %} {% data reusables.webhooks.issue_comment_properties %} @@ -155,7 +155,7 @@ Link: ; rel="next", {% data reusables.webhooks.events_api_payload %} -### Event `payload` object +### Event `payload` object for IssuesEvent {% data reusables.webhooks.issue_event_api_properties %} {% data reusables.webhooks.issue_properties %} @@ -166,7 +166,7 @@ Link: ; rel="next", {% data reusables.webhooks.events_api_payload %} -### Event `payload` object +### Event `payload` object for MemberEvent {% data reusables.webhooks.member_event_api_properties %} {% data reusables.webhooks.member_properties %} @@ -175,7 +175,7 @@ Link: ; rel="next", ## PublicEvent {% data reusables.webhooks.public_short_desc %} -### Event `payload` object +### Event `payload` object for PublicEvent This event returns an empty `payload` object. {% endif %} @@ -185,7 +185,7 @@ This event returns an empty `payload` object. {% data reusables.webhooks.events_api_payload %} -### Event `payload` object +### Event `payload` object for PullRequestEvent {% data reusables.webhooks.pull_request_event_api_properties %} {% data reusables.webhooks.pull_request_properties %} @@ -196,7 +196,7 @@ This event returns an empty `payload` object. {% data reusables.webhooks.events_api_payload %} -### Event `payload` object +### Event `payload` object for PullRequestReviewEvent Key | Type | Description ----|------|------------- @@ -210,7 +210,7 @@ Key | Type | Description {% data reusables.webhooks.events_api_payload %} -### Event `payload` object +### Event `payload` object for PullRequestReviewCommentEvent {% data reusables.webhooks.pull_request_review_comment_event_api_properties %} {% data reusables.webhooks.pull_request_review_comment_properties %} @@ -221,7 +221,7 @@ Key | Type | Description {% data reusables.webhooks.events_api_payload %} -### Event `payload` object +### Event `payload` object for PullRequestReviewThreadEvent {% data reusables.webhooks.pull_request_thread_properties %} @@ -231,7 +231,7 @@ Key | Type | Description {% data reusables.webhooks.events_api_payload %} -### Event `payload` object +### Event `payload` object for PushEvent Key | Type | Description ----|------|------------- @@ -256,7 +256,7 @@ Key | Type | Description {% data reusables.webhooks.events_api_payload %} -### Event `payload` object +### Event `payload` object for ReleaseEvent {% data reusables.webhooks.release_event_api_properties %} {% data reusables.webhooks.release_properties %} @@ -266,7 +266,7 @@ Key | Type | Description {% data reusables.webhooks.sponsorship_short_desc %} -### Event `payload` object +### Event `payload` object for SponsorshipEvent {% data reusables.webhooks.sponsorship_event_api_properties %} {% data reusables.webhooks.sponsorship_properties %} @@ -278,6 +278,6 @@ Key | Type | Description {% data reusables.webhooks.events_api_payload %} -### Event `payload` object +### Event `payload` object for WatchEvent {% data reusables.webhooks.watch_properties %} diff --git a/content/developers/webhooks-and-events/events/issue-event-types.md b/content/developers/webhooks-and-events/events/issue-event-types.md index a382c2fbb9..c49d3550bc 100644 --- a/content/developers/webhooks-and-events/events/issue-event-types.md +++ b/content/developers/webhooks-and-events/events/issue-event-types.md @@ -18,7 +18,7 @@ GitHub's REST API considers every pull request to be an issue, but not every iss ## Issue event object common properties -Issue events all have the same object structure, except events that are only available in the Timeline Events API. Some events also include additional properties that provide more context about the event resources. Refer to the specific event to for details about any properties that differ from this object format. +Issue events all have the same object structure, except events that are only available in the Timeline Events API. Some events also include additional properties that provide more context about the event resources. Refer to the specific event for details about any properties that differ from this object format. {% data reusables.issue-events.issue-event-common-properties %} @@ -26,13 +26,13 @@ Issue events all have the same object structure, except events that are only ava The issue or pull request was added to a project board. {% data reusables.projects.disabled-projects %} -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Issues
  • Pull request
| **X** | **X** | -### Event object properties +### Properties for added_to_project {% data reusables.pre-release-program.starfox-preview %} {% data reusables.pre-release-program.api-preview-warning %} @@ -44,13 +44,13 @@ The issue or pull request was added to a project board. {% data reusables.projec The issue or pull request was assigned to a user. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Issues
  • Pull requests
| **X** | **X** | -### Event object properties +### Properties for assigned {% data reusables.issue-events.issue-event-common-properties %} {% data reusables.issue-events.assignee-properties %} @@ -59,13 +59,13 @@ The issue or pull request was assigned to a user. GitHub unsuccessfully attempted to automatically change the base branch of the pull request. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Pull requests
| **X** | | -### Event object properties +### Properties for automatic_base_change_failed {% data reusables.issue-events.issue-event-common-properties %} @@ -73,13 +73,13 @@ GitHub unsuccessfully attempted to automatically change the base branch of the p GitHub successfully attempted to automatically change the base branch of the pull request. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Pull requests
| **X** | | -### Event object properties +### Properties for automatic_base_change_succeeded {% data reusables.issue-events.issue-event-common-properties %} @@ -87,13 +87,13 @@ GitHub successfully attempted to automatically change the base branch of the pul The base reference branch of the pull request changed. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Pull requests
| **X** | | -### Event object properties +### Properties for base_ref_changed {% data reusables.issue-events.issue-event-common-properties %} @@ -101,13 +101,13 @@ The base reference branch of the pull request changed. The issue or pull request was closed. When the `commit_id` is present, it identifies the commit that closed the issue using "closes / fixes" syntax. For more information about the syntax, see "[Linking a pull request to an issue](/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword)". -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Issues
  • Pull requests
| **X** | **X** | -### Event object properties +### Properties for closed {% data reusables.issue-events.issue-event-common-properties %} @@ -115,13 +115,13 @@ The issue or pull request was closed. When the `commit_id` is present, it identi A comment was added to the issue or pull request. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Issues
  • Pull requests
| | **X** | -### Event object properties +### Properties for commented {% data reusables.issue-events.timeline_events_object_properties %} @@ -144,13 +144,13 @@ Name | Type | Description A commit was added to the pull request's `HEAD` branch. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Pull requests
| | **X** | -### Event object properties +### Properties for committed {% data reusables.issue-events.timeline_events_object_properties %} @@ -172,13 +172,13 @@ Name | Type | Description The issue or pull request was linked to another issue or pull request. For more information, see "[Linking a pull request to an issue](/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue)". -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Issues
  • Pull requests
| **X** | **X** | -### Event object properties +### Properties for connected {% data reusables.issue-events.issue-event-common-properties %} @@ -186,13 +186,13 @@ The issue or pull request was linked to another issue or pull request. For more The pull request was converted to draft mode. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Pull requests
| **X** | **X** | -### Event object properties +### Properties for convert_to_draft {% data reusables.issue-events.issue-event-common-properties %} @@ -200,13 +200,13 @@ The pull request was converted to draft mode. The issue was created by converting a note in a project board to an issue. {% data reusables.projects.disabled-projects %} -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Issues
| **X** | **X** | -### Event object properties +### Properties for converted_note_to_issue {% data reusables.pre-release-program.starfox-preview %} {% data reusables.pre-release-program.api-preview-warning %} @@ -218,13 +218,13 @@ The issue was created by converting a note in a project board to an issue. {% da The issue was closed and converted to a discussion. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |-----|-----|-----| |
  • Issues
| **X** | | -### Event Object Properties +### Properties for converted_to_discussion {% data reusables.issue-events.issue-event-common-properties %} @@ -232,13 +232,13 @@ The issue was closed and converted to a discussion. The issue or pull request was referenced from another issue or pull request. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Issues
  • Pull requests
| | **X** | -### Event object properties +### Properties for cross-referenced {% data reusables.issue-events.timeline_events_object_properties %} @@ -256,13 +256,13 @@ Name | Type | Description The issue or pull request was removed from a milestone. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Issues
  • Pull requests
| **X** | **X** | -### Event object properties +### Properties for demilestoned {% data reusables.issue-events.issue-event-common-properties %} `milestone` | `object` | The milestone object. @@ -272,13 +272,13 @@ The issue or pull request was removed from a milestone. The pull request was deployed. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Pull requests
| **X** | **X** | -### Event object properties +### Properties for deployed {% data reusables.issue-events.issue-event-common-properties %} @@ -286,13 +286,13 @@ The pull request was deployed. The pull request deployment environment was changed. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Pull requests
| **X** | | -### Event object properties +### Properties for deployment_environment_changed {% data reusables.issue-events.issue-event-common-properties %} @@ -300,13 +300,13 @@ The pull request deployment environment was changed. The issue or pull request was unlinked from another issue or pull request. For more information, see "[Linking a pull request to an issue](/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue)". -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Issues
  • Pull requests
| **X** | **X** | -### Event object properties +### Properties for disconnected {% data reusables.issue-events.issue-event-common-properties %} @@ -314,13 +314,13 @@ The issue or pull request was unlinked from another issue or pull request. For m The pull request's `HEAD` branch was deleted. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Pull requests
| **X** | **X** | -### Event object properties +### Properties for head_ref_deleted {% data reusables.issue-events.issue-event-common-properties %} @@ -328,7 +328,7 @@ The pull request's `HEAD` branch was deleted. The pull request's `HEAD` branch was restored to the last known commit. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| @@ -338,13 +338,13 @@ The pull request's `HEAD` branch was restored to the last known commit. The pull request's HEAD branch was force pushed. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Pull requests
| **X** | **X** | -### Event object properties +### Properties for head_ref_force_pushed {% data reusables.issue-events.issue-event-common-properties %} @@ -352,13 +352,13 @@ The pull request's HEAD branch was force pushed. A label was added to the issue or pull request. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Issues
  • Pull requests
| **X** | **X** | -### Event object properties +### Properties for labeled {% data reusables.issue-events.issue-event-common-properties %} {% data reusables.issue-events.label-properties %} @@ -367,13 +367,13 @@ A label was added to the issue or pull request. The issue or pull request was locked. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Issues
  • Pull requests
| **X** | **X** | -### Event object properties +### Properties for locked {% data reusables.issue-events.issue-event-common-properties %} `lock_reason` | `string` | The reason an issue or pull request conversation was locked, if one was provided. @@ -382,13 +382,13 @@ The issue or pull request was locked. The `actor` was `@mentioned` in an issue or pull request body. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Issues
  • Pull requests
| **X** | **X** | -### Event object properties +### Properties for mentioned {% data reusables.issue-events.issue-event-common-properties %} @@ -396,13 +396,13 @@ The `actor` was `@mentioned` in an issue or pull request body. A user with write permissions marked an issue as a duplicate of another issue, or a pull request as a duplicate of another pull request. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Issues
  • Pull requests
| **X** | **X** | -### Event object properties +### Properties for marked_as_duplicate {% data reusables.issue-events.issue-event-common-properties %} @@ -410,13 +410,13 @@ A user with write permissions marked an issue as a duplicate of another issue, o The pull request was merged. The `commit_id` attribute is the SHA1 of the `HEAD` commit that was merged. The `commit_repository` is always the same as the main repository. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Pull requests
| **X** | **X** | -### Event object properties +### Properties for merged {% data reusables.issue-events.issue-event-common-properties %} @@ -424,13 +424,13 @@ The pull request was merged. The `commit_id` attribute is the SHA1 of the `HEAD` The issue or pull request was added to a milestone. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Issues
  • Pull requests
| **X** | **X** | -### Event object properties +### Properties for milestoned {% data reusables.issue-events.issue-event-common-properties %} `milestone` | `object` | The milestone object. @@ -440,13 +440,13 @@ The issue or pull request was added to a milestone. The issue or pull request was moved between columns in a project board. {% data reusables.projects.disabled-projects %} -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Issues
  • Pull requests
| **X** | **X** | -### Event object properties +### Properties for moved_columns_in_project {% data reusables.pre-release-program.starfox-preview %} {% data reusables.pre-release-program.api-preview-warning %} @@ -459,13 +459,13 @@ The issue or pull request was moved between columns in a project board. {% data The issue was pinned. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Issues
| **X** | **X** | -### Event object properties +### Properties for pinned {% data reusables.issue-events.issue-event-common-properties %} @@ -473,13 +473,13 @@ The issue was pinned. A draft pull request was marked as ready for review. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Pull requests
| **X** | **X** | -### Event object properties +### Properties for ready_for_review {% data reusables.issue-events.issue-event-common-properties %} @@ -487,13 +487,13 @@ A draft pull request was marked as ready for review. The issue was referenced from a commit message. The `commit_id` attribute is the commit SHA1 of where that happened and the commit_repository is where that commit was pushed. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Issues
  • Pull requests
| **X** | **X** | -### Event object properties +### Properties for referenced {% data reusables.issue-events.issue-event-common-properties %} @@ -501,13 +501,13 @@ The issue was referenced from a commit message. The `commit_id` attribute is the The issue or pull request was removed from a project board. {% data reusables.projects.disabled-projects %} -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Issues
  • Pull requests
| **X** | **X** | -### Event object properties +### Properties for removed_from_project {% data reusables.pre-release-program.starfox-preview %} {% data reusables.pre-release-program.api-preview-warning %} @@ -519,13 +519,13 @@ The issue or pull request was removed from a project board. {% data reusables.pr The issue or pull request title was changed. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Issues
  • Pull requests
| **X** | **X** | -### Event object properties +### Properties for renamed {% data reusables.issue-events.issue-event-common-properties %} `rename` | `object` | The name details. @@ -536,13 +536,13 @@ The issue or pull request title was changed. The issue or pull request was reopened. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Issues
  • Pull requests
| **X** | **X** | -### Event object properties +### Properties for reopened {% data reusables.issue-events.issue-event-common-properties %} @@ -550,13 +550,13 @@ The issue or pull request was reopened. The pull request review was dismissed. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Pull requests
| **X** | **X** | -### Event object properties +### Properties for review_dismissed {% data reusables.issue-events.issue-event-common-properties %} {% data reusables.issue-events.review-dismissed-properties %} @@ -565,13 +565,13 @@ The pull request review was dismissed. A pull request review was requested. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Pull requests
| **X** | **X** | -### Event object properties +### Properties for review_requested {% data reusables.issue-events.issue-event-common-properties %} {% data reusables.issue-events.review-request-properties %} @@ -580,13 +580,13 @@ A pull request review was requested. A pull request review request was removed. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Pull requests
| **X** | **X** | -### Event object properties +### Properties for review_request_removed {% data reusables.issue-events.issue-event-common-properties %} {% data reusables.issue-events.review-request-properties %} @@ -595,13 +595,13 @@ A pull request review request was removed. The pull request was reviewed. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Pull requests
| | **X** | -### Event object properties +### Properties for reviewed {% data reusables.issue-events.timeline_events_object_properties %} @@ -624,13 +624,13 @@ Name | Type | Description Someone subscribed to receive notifications for an issue or pull request. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Issues
  • Pull requests
| **X** | **X** | -### Event object properties +### Properties for subscribed {% data reusables.issue-events.issue-event-common-properties %} @@ -638,13 +638,13 @@ Someone subscribed to receive notifications for an issue or pull request. The issue was transferred to another repository. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Issues
| **X** | **X** | -### Event object properties +### Properties for transferred {% data reusables.issue-events.issue-event-common-properties %} @@ -652,13 +652,13 @@ The issue was transferred to another repository. A user was unassigned from the issue. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Issues
  • Pull requests
| **X** | **X** | -### Event object properties +### Properties for unassigned {% data reusables.issue-events.issue-event-common-properties %} {% data reusables.issue-events.assignee-properties %} @@ -667,13 +667,13 @@ A user was unassigned from the issue. A label was removed from the issue. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Issues
  • Pull requests
| **X** | **X** | -### Event object properties +### Properties for unlabeled {% data reusables.issue-events.issue-event-common-properties %} {% data reusables.issue-events.label-properties %} @@ -682,13 +682,13 @@ A label was removed from the issue. The issue was unlocked. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Issues
  • Pull requests
| **X** | **X** | -### Event object properties +### Properties for unlocked {% data reusables.issue-events.issue-event-common-properties %} `lock_reason` | `string` | The reason an issue or pull request conversation was locked, if one was provided. @@ -697,13 +697,13 @@ The issue was unlocked. An issue that a user had previously marked as a duplicate of another issue is no longer considered a duplicate, or a pull request that a user had previously marked as a duplicate of another pull request is no longer considered a duplicate. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Issues
  • Pull requests
| **X** | **X** | -### Event object properties +### Properties for unmarked_as_duplicate {% data reusables.issue-events.issue-event-common-properties %} @@ -711,13 +711,13 @@ An issue that a user had previously marked as a duplicate of another issue is no The issue was unpinned. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Issues
| **X** | **X** | -### Event object properties +### Properties for unpinned {% data reusables.issue-events.issue-event-common-properties %} @@ -725,13 +725,13 @@ The issue was unpinned. Someone unsubscribed from receiving notifications for an issue or pull request. -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Issues
  • Pull requests
| | **X** | -### Event object properties +### Properties for unsubscribed {% data reusables.issue-events.issue-event-common-properties %} @@ -740,13 +740,13 @@ Someone unsubscribed from receiving notifications for an issue or pull request. An organization owner blocked a user from the organization. This was done [through one of the blocked user's comments on the issue](/communities/maintaining-your-safety-on-github/blocking-a-user-from-your-organization#blocking-a-user-in-a-comment). -### Availability +This event is available for the following issue types: |Issue type | Issue events API | Timeline events API| |:----------|:----------------:|:-----------------:| |
  • Issues
  • Pull requests
| **X** | **X** | -### Event object properties +### Properties for user_blocked {% data reusables.issue-events.issue-event-common-properties %} diff --git a/content/discussions/index.md b/content/discussions/index.md index 74bda42192..58e449560e 100644 --- a/content/discussions/index.md +++ b/content/discussions/index.md @@ -5,7 +5,7 @@ intro: '{% data variables.product.prodname_discussions %} is a collaborative com introLinks: quickstart: /discussions/quickstart featuredLinks: - guides: + startHere: - /discussions/collaborating-with-your-community-using-discussions/about-discussions - /discussions/collaborating-with-your-community-using-discussions/participating-in-a-discussion - /discussions/managing-discussions-for-your-community/moderating-discussions diff --git a/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/about-campus-experts.md b/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/about-campus-experts.md deleted file mode 100644 index a2da8c5e3e..0000000000 --- a/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/about-campus-experts.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: About Campus Experts -intro: 'As a student, learn the skills you need to build your school''s technology community and a real-world portfolio, with {% data variables.product.prodname_dotcom %} Campus Experts training.' -redirect_from: - - /education/teach-and-learn-with-github-education/about-campus-experts - - /github/teaching-and-learning-with-github-education/about-campus-experts - - /articles/about-campus-experts - - /education/explore-the-benefits-of-teaching-and-learning-with-github-education/about-campus-experts -versions: - fpt: '*' ---- -Learn public speaking skills, technical writing, community leadership, and software development skills as a {% data variables.product.prodname_dotcom %} Campus Expert. - -To learn more about training programs for student leaders, see "[{% data variables.product.prodname_dotcom %} Campus Experts](https://education.github.com/students/experts)." diff --git a/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/about-github-campus-experts.md b/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/about-github-campus-experts.md new file mode 100644 index 0000000000..06948a4475 --- /dev/null +++ b/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/about-github-campus-experts.md @@ -0,0 +1,38 @@ +--- +title: About GitHub Campus Experts +intro: 'Enrich your college’s technical community by becoming a {% data variables.product.prodname_student_leader_program_singular %}.' +redirect_from: + - /education/teach-and-learn-with-github-education/about-campus-experts + - /github/teaching-and-learning-with-github-education/about-campus-experts + - /articles/about-campus-experts + - /education/explore-the-benefits-of-teaching-and-learning-with-github-education/about-campus-experts + - /education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/about-campus-experts +versions: + fpt: '*' +shortTitle: GitHub Campus Experts Program +--- + +Learn the skills to build and grow diverse technology communities on campus with training, mentorship, and support from {% data variables.product.prodname_dotcom %} as part of the {% data variables.product.prodname_student_leader_program %} program. For more information on applying to the {% data variables.product.prodname_student_leader_program %}, see “[Applying to be a {% data variables.product.prodname_student_leader_program_singular %}](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/applying-to-be-a-github-campus-expert).” + +## About {% data variables.product.prodname_student_leader_program %} + +{% data variables.product.prodname_student_leader_program %} are student leaders that strive to build diverse and inclusive spaces to learn skills, share their experiences, and build projects together. {% data variables.product.prodname_student_leader_program %} can be found across the globe leading in-person and online conferences, meetups, and hackathons, and maintaining open-source projects. For more information on {% data variables.product.prodname_student_leader_program %}, go to [https://education.github.com/experts](https://education.github.com/experts). + +### About {% data variables.product.prodname_student_leader_program %} program training + +As local leaders, {% data variables.product.prodname_student_leader_program %} know the challenges students on their campuses face. Program training is the most significant benefit any student can get from the program. Over six weeks, you’ll analyze your community and gain leadership skills like public speaking, technical writing, and software development. At the end of your training, you’ll write a community impact proposal to serve as a guide for activities you've planned and goals you've set for your community. With the skills from your {% data variables.product.prodname_student_leader_program %} training, you can build a strong technical community, teach other students, create new opportunities for your student community, and position your institution within a global community of student leaders. + +### Contact your closest {% data variables.product.prodname_student_leader_program_singular %} + +Optionally, to learn more about the program, contact your closest {% data variables.product.prodname_student_leader_program_singular %}. + +1. Go to the “[{% data variables.product.prodname_student_leader_program %} program](https://education.github.com/students/experts)” site. +1. Click **Find a Campus Expert**. +1. In the “Contact your local Campus Expert” section, click **Contact us**. +1. Hover over the map that appears, then click {% octicon "plus" aria-label="The plus icon" %} and {% octicon "dash" aria-label="The dash icon" %} or scroll in and out to find a {% data variables.product.prodname_student_leader_program_singular %} near you. {% data variables.product.prodname_student_leader_program %} are represented on the map as flags. +1. Click a flag, then click the profile link that appears in a pop-up window. +1. On the {% data variables.product.prodname_student_leader_program_singular %}’s profile, click a social media link to contact them. + +## Further reading + +- “[Applying to be a {% data variables.product.prodname_student_leader_program_singular %}](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/applying-to-be-a-github-campus-expert)” diff --git a/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/applying-to-be-a-github-campus-expert.md b/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/applying-to-be-a-github-campus-expert.md new file mode 100644 index 0000000000..0809e2eec6 --- /dev/null +++ b/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/applying-to-be-a-github-campus-expert.md @@ -0,0 +1,63 @@ +--- +title: Applying to be a GitHub Campus Expert +intro: 'As a student, you can apply to be a {% data variables.product.prodname_student_leader_program_singular %} to gain new skills and grow your college’s technical community.' +versions: + fpt: '*' +shortTitle: Apply to Campus Experts +--- + +## Applying to the {% data variables.product.prodname_student_leader_program %} program + +To apply to the {% data variables.product.prodname_student_leader_program %} program, you must first submit an application form, then submit a video resume. Applications to the program open in February and August, and you’ll have a full month to apply. + +{% note %} + +**Note:** The application process helps us get to know the applicant. Here are some things we want to learn about you: +- Motivation: What makes you tick? What drives you? +- Interest: Why do you want to be part of the program? +- Growth and potential: What skills do you want to learn, and how will they help you grow personally and professionally? +- Contribution: What impact do you want to make on your campus? + +{% endnote %} + +### Eligibility criteria + +To become a {% data variables.product.prodname_student_leader_program_singular %}, you must: + +- Be a {% data variables.product.prodname_dotcom %} user for at least six months. +- Be at least 18 years of age. +- Be enrolled in a post-secondary formal education institution. +- Have more than one year left as a student before graduating. +- Not be enrolled in the {% data variables.product.prodname_dotcom %} Campus Advisors Program. +- Validate your student status through the [{% data variables.product.prodname_student_pack %}](https://education.github.com/pack). + +### Submitting your application form + +In the application form, we’re looking for students to tell us about the challenges their student community faces, what opportunities they want to build for their peers, and the potential they see for growth. +1. Go to [https://education.github.com/experts](https://education.github.com/experts). +1. To learn if applications are open, click **Become a Campus Expert** {% octicon "arrow-right" aria-label="The right arrow icon" %}. +1. If applications are open, a new page will appear titled “Your journey starts here”. To start your application, click **Apply Now**. + + Otherwise, if applications are closed, a message will appear with the dates of the next application cycle. +1. Following the prompts in the form, complete the application. +1. Click **Submit Application**. +1. Optionally, to confirm your application was submitted successfully, check the email address you provided for an email confirming your submission. +1. Two weeks after the program applications close, check for an email containing an update on your application status and instructions to submit your video resume. + +### Submitting your video resume + +In your video resume, we look forward to getting to know you as an individual. + +{% note %} + +**Note:** A video using your webcam and computer microphone is more than enough! We understand this process might not be accessible to all students. If you require an alternative method to make your submission, please reach out to the GitHub Education team. + +{% endnote %} + +1. Open the email you received after submitting your application form. +1. Using the guidelines included in the application status email, record your video resume. +1. Once your video is ready to be submitted, click **Upload video** at the bottom of the application status email. +1. On the video submission form, add your email address and upload your video. +1. Click **Submit** at the bottom of the form to send your video in for review. + + After your video has been submitted, we’ll take about a week to review it. If the program is the right fit, you’ll be accepted and receive invitations to start the {% data variables.product.prodname_student_leader_program %} training and join an onboarding call. diff --git a/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/index.md b/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/index.md index 206004a52a..08a345c072 100644 --- a/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/index.md +++ b/content/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/index.md @@ -9,7 +9,7 @@ versions: fpt: '*' children: - /about-github-campus-program - - /about-campus-experts + - /about-github-campus-experts + - /applying-to-be-a-github-campus-expert shortTitle: At your institution --- - diff --git a/content/education/guides.md b/content/education/guides.md index 6297d01bf7..10244d575e 100644 --- a/content/education/guides.md +++ b/content/education/guides.md @@ -46,5 +46,6 @@ Participate in the community, get training from {% data variables.product.compan - [{% data variables.product.prodname_education_community %}]({% data variables.product.prodname_education_forum_link %}) - [About {% data variables.product.prodname_global_campus %} for students](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/github-global-campus-for-students/about-github-global-campus-for-students) -- [About Campus Experts](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/about-campus-experts) +- [About {% data variables.product.prodname_student_leader_program %}](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/about-github-campus-experts) +- [Applying to be a {% data variables.product.prodname_student_leader_program_singular %}](/education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution/applying-to-be-a-github-campus-expert) - [Contribute with GitHub Community Exchange](/education/contribute-with-github-community-exchange) diff --git a/content/education/index.md b/content/education/index.md index f60de845d0..931060e0f2 100644 --- a/content/education/index.md +++ b/content/education/index.md @@ -5,7 +5,7 @@ intro: '{% data variables.product.prodname_education %} helps you teach or learn introLinks: quickstart: /education/quickstart featuredLinks: - guides: + startHere: - education/explore-the-benefits-of-teaching-and-learning-with-github-education/github-global-campus-for-students/apply-to-github-global-campus-as-a-student - /education/explore-the-benefits-of-teaching-and-learning-with-github-education/github-global-campus-for-teachers/apply-to-github-global-campus-as-a-teacher - /education/explore-the-benefits-of-teaching-and-learning-with-github-education/use-github-at-your-educational-institution diff --git a/content/get-started/index.md b/content/get-started/index.md index 52a6cc048a..65806aa63d 100644 --- a/content/get-started/index.md +++ b/content/get-started/index.md @@ -25,7 +25,7 @@ layout: product-landing introLinks: quickstart: /get-started/quickstart featuredLinks: - guides: + startHere: - /get-started/learning-about-github/githubs-products - /get-started/onboarding/getting-started-with-your-github-account - /get-started/onboarding/getting-started-with-github-team diff --git a/content/get-started/learning-about-github/about-github-advanced-security.md b/content/get-started/learning-about-github/about-github-advanced-security.md index 9e50914e40..2ee5f56951 100644 --- a/content/get-started/learning-about-github/about-github-advanced-security.md +++ b/content/get-started/learning-about-github/about-github-advanced-security.md @@ -18,7 +18,7 @@ shortTitle: GitHub Advanced Security {% data variables.product.prodname_dotcom %} has many features that help you improve and maintain the quality of your code. Some of these are included in all plans{% ifversion not ghae %}, such as dependency graph and {% data variables.product.prodname_dependabot_alerts %}{% endif %}. Other security features require a {% data variables.product.prodname_GH_advanced_security %}{% ifversion fpt or ghec %} license to run on repositories apart from public repositories on {% data variables.product.prodname_dotcom_the_website %}{% endif %}. -{% ifversion ghes %}For information about buying a license for {% data variables.product.prodname_GH_advanced_security %}, see "[About billing for {% data variables.product.prodname_GH_advanced_security %}](/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security)."{% elsif ghec %}For information about buying a license for {% data variables.product.prodname_GH_advanced_security %}, see "[Signing up for {% data variables.product.prodname_GH_advanced_security %}](/billing/managing-billing-for-github-advanced-security/signing-up-for-github-advanced-security)."{% elsif ghae %}There is no charge for {% data variables.product.prodname_GH_advanced_security %} on {% data variables.product.prodname_ghe_managed %} during the beta release.{% elsif fpt %}To purchase a {% data variables.product.prodname_GH_advanced_security %} license, you must be using {% data variables.product.prodname_enterprise %}. For information about upgrading to {% data variables.product.prodname_enterprise %} with {% data variables.product.prodname_GH_advanced_security %}, see "[GitHub's products](/get-started/learning-about-github/githubs-products)" and "[About billing for {% data variables.product.prodname_GH_advanced_security %}](/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security)."{% endif %} +{% ifversion ghes %}For information about buying a license for {% data variables.product.prodname_GH_advanced_security %}, see "[About billing for {% data variables.product.prodname_GH_advanced_security %}](/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security)."{% elsif ghec %}For information about buying a license for {% data variables.product.prodname_GH_advanced_security %}, see "[Signing up for {% data variables.product.prodname_GH_advanced_security %}](/billing/managing-billing-for-github-advanced-security/signing-up-for-github-advanced-security)."{% elsif ghae %}There is no charge for {% data variables.product.prodname_GH_advanced_security %} on {% data variables.product.prodname_ghe_managed %} during the beta release.{% elsif fpt %}To purchase a {% data variables.product.prodname_GH_advanced_security %} license, you must be using {% data variables.product.prodname_enterprise %}. For information about upgrading to {% data variables.product.prodname_enterprise %} with {% data variables.product.prodname_GH_advanced_security %}, see "[{% data variables.product.prodname_dotcom %}'s products](/get-started/learning-about-github/githubs-products)" and "[About billing for {% data variables.product.prodname_GH_advanced_security %}](/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security)."{% endif %} ## About {% data variables.product.prodname_advanced_security %} features @@ -28,7 +28,7 @@ A {% data variables.product.prodname_GH_advanced_security %} license provides th - **{% data variables.product.prodname_secret_scanning_caps %}** - Detect secrets, for example keys and tokens, that have been checked into {% ifversion fpt %} private repositories{% else %} the repository{% endif %}. {% ifversion fpt%}{% data variables.secret-scanning.user_alerts_caps %} and {% data variables.secret-scanning.partner_alerts %} are available and free of charge for public repositories on {% data variables.product.prodname_dotcom_the_website %}.{% endif %}{% ifversion secret-scanning-push-protection %} If push protection is enabled, also detects secrets when they are pushed to your repository. For more information, see "[About {% data variables.product.prodname_secret_scanning %}](/code-security/secret-scanning/about-secret-scanning)" and "[Protecting pushes with {% data variables.product.prodname_secret_scanning %}](/code-security/secret-scanning/protecting-pushes-with-secret-scanning)."{% else %} For more information, see "[About {% data variables.product.prodname_secret_scanning %}](/code-security/secret-scanning/about-secret-scanning)."{% endif %} -- **Dependency review** - Show the full impact of changes to dependencies and see details of any vulnerable versions before you merge a pull request. For more information, see "[About dependency review](/code-security/supply-chain-security/about-dependency-review)." +- **Dependency review** - Show the full impact of changes to dependencies and see details of any vulnerable versions before you merge a pull request. For more information, see "[About dependency review](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review)." {% ifversion ghes < 3.7 or ghae %} @@ -62,7 +62,7 @@ To learn about what you need to know to plan your {% data variables.product.prod ## Enabling {% data variables.product.prodname_advanced_security %} features {%- ifversion ghes %} -The site administrator must enable {% data variables.product.prodname_advanced_security %} for {% data variables.location.product_location %} before you can use these features. For more information, see "[Configuring Advanced Security features](/admin/configuration/configuring-advanced-security-features). +The site administrator must enable {% data variables.product.prodname_advanced_security %} for {% data variables.location.product_location %} before you can use these features. For more information, see "[Managing {% data variables.product.prodname_GH_advanced_security %} for your enterprise](/admin/code-security/managing-github-advanced-security-for-your-enterprise). Once your system is set up, you can enable and disable these features at the organization or repository level. @@ -74,10 +74,10 @@ For other repositories, once you have a license for your enterprise account, you {%- elsif ghae %} You can enable and disable these features at the organization or repository level. {%- endif %} -For more information, see "[Managing security and analysis settings for your organization](/organizations/keeping-your-organization-secure/managing-security-and-analysis-settings-for-your-organization)" and "[Managing security and analysis settings for your repository](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository)." +For more information, see "[Managing security and analysis settings for your organization](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-security-and-analysis-settings-for-your-organization)" and "[Managing security and analysis settings for your repository](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository)." {% ifversion ghec or ghes %} -If you have an enterprise account, license use for the entire enterprise is shown on your enterprise license page. For more information, see "[Viewing your {% data variables.product.prodname_GH_advanced_security %} usage](/billing/managing-licensing-for-github-advanced-security/viewing-your-github-advanced-security-usage)." +If you have an enterprise account, license use for the entire enterprise is shown on your enterprise license page. For more information, see "[Viewing your {% data variables.product.prodname_GH_advanced_security %} usage](/billing/managing-billing-for-github-advanced-security/viewing-your-github-advanced-security-usage)." {% endif %} {% endif %} @@ -95,7 +95,7 @@ For more information on starter workflows, see "[Configuring {% data variables.p {% ifversion ghec or ghes or ghae %} ## Further reading -- "[Enforcing policies for {% data variables.product.prodname_advanced_security %} in your enterprise account](/admin/policies/enforcing-policies-for-advanced-security-in-your-enterprise)" +- "[Enforcing policies for {% data variables.product.prodname_advanced_security %} in your enterprise account](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-code-security-and-analysis-for-your-enterprise)" {% endif %} {% endif %} diff --git a/content/get-started/learning-about-github/access-permissions-on-github.md b/content/get-started/learning-about-github/access-permissions-on-github.md index 8967160362..92c1571cc9 100644 --- a/content/get-started/learning-about-github/access-permissions-on-github.md +++ b/content/get-started/learning-about-github/access-permissions-on-github.md @@ -27,15 +27,15 @@ Roles work differently for different types of accounts. For more information abo ## Personal accounts -A repository owned by a personal account has two permission levels: the *repository owner* and *collaborators*. For more information, see "[Permission levels for a personal account repository](/articles/permission-levels-for-a-user-account-repository)." +A repository owned by a personal account has two permission levels: the *repository owner* and *collaborators*. For more information, see "[Permission levels for a personal account repository](/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-personal-account-settings/permission-levels-for-a-personal-account-repository)." ## Organization accounts Organization members can have *owner*{% ifversion fpt or ghec %}, *billing manager*,{% endif %} or *member* roles. Owners have complete administrative access to your organization{% ifversion fpt or ghec %}, while billing managers can manage billing settings{% endif %}. Member is the default role for everyone else. You can manage access permissions for multiple members at a time with teams. For more information, see: - "[Roles in an organization](/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization)" -- "[Project board permissions for an organization](/articles/project-board-permissions-for-an-organization)" -- "[Repository roles for an organization](/organizations/managing-access-to-your-organizations-repositories/repository-roles-for-an-organization)" -- "[About teams](/articles/about-teams)" +- "[Project board permissions for an organization](/organizations/managing-access-to-your-organizations-project-boards/project-board-permissions-for-an-organization)" +- "[Repository roles for an organization](/organizations/managing-user-access-to-your-organizations-repositories/repository-roles-for-an-organization)" +- "[About teams](/organizations/organizing-members-into-teams/about-teams)" ## Enterprise accounts @@ -47,10 +47,10 @@ For more information about permissions for enterprise accounts, see [the {% data *Enterprise owners* have ultimate power over the enterprise account and can take every action in the enterprise account.{% ifversion ghec or ghes %} *Billing managers* can manage your enterprise account's billing settings.{% endif %} Members and outside collaborators of organizations owned by your enterprise account are automatically members of the enterprise account, although they have no access to the enterprise account itself or its settings. For more information, see "[Roles in an enterprise](/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise)." {% ifversion ghec %} -If an enterprise uses {% data variables.product.prodname_emus %}, members are provisioned as new personal accounts on {% data variables.product.prodname_dotcom %} and are fully managed by the identity provider. The {% data variables.enterprise.prodname_managed_users %} have read-only access to repositories that are not a part of their enterprise and cannot interact with users that are not also members of the enterprise. Within the organizations owned by the enterprise, the {% data variables.enterprise.prodname_managed_users %} can be granted the same granular access levels available for regular organizations. For more information, see "[About {% data variables.product.prodname_emus %}](/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users)." +If an enterprise uses {% data variables.product.prodname_emus %}, members are provisioned as new personal accounts on {% data variables.product.prodname_dotcom %} and are fully managed by the identity provider. The {% data variables.enterprise.prodname_managed_users %} have read-only access to repositories that are not a part of their enterprise and cannot interact with users that are not also members of the enterprise. Within the organizations owned by the enterprise, the {% data variables.enterprise.prodname_managed_users %} can be granted the same granular access levels available for regular organizations. For more information, see "[About {% data variables.product.prodname_emus %}](/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users)." {% endif %} {% endif %} ## Further reading -- "[Types of {% data variables.product.prodname_dotcom %} accounts](/articles/types-of-github-accounts)" +- "[Types of {% data variables.product.prodname_dotcom %} accounts](/get-started/learning-about-github/types-of-github-accounts)" diff --git a/content/get-started/learning-about-github/faq-about-changes-to-githubs-plans.md b/content/get-started/learning-about-github/faq-about-changes-to-githubs-plans.md index eada5712c9..2a282ab684 100644 --- a/content/get-started/learning-about-github/faq-about-changes-to-githubs-plans.md +++ b/content/get-started/learning-about-github/faq-about-changes-to-githubs-plans.md @@ -63,11 +63,11 @@ Customers who are currently paying annually for Pro and Team plans and signed up ## What is the difference between GitHub Free for individual developers and GitHub Free for organizations? -For details on the differences for each GitHub Free product, see "[{% data variables.product.prodname_dotcom %}'s products](/articles/github-s-products)." +For details on the differences for each GitHub Free product, see "[{% data variables.product.prodname_dotcom %}'s products](/get-started/learning-about-github/githubs-products)." ## How can I get more Actions minutes if I need more than allocated in the GitHub Team plan? -Most small teams use fewer than 3,000 Actions minutes/month, but some teams might use more. If your team needs additional minutes for private repositories, you can increase your spending limit for GitHub Actions. Actions minutes and Packages storage are still free for your public repositories. For more information, see "[Managing your spending limit for GitHub Actions](/billing/managing-billing-for-github-actions/managing-your-spending-limit-for-github-actions)." +Most small teams use fewer than 3,000 Actions minutes/month, but some teams might use more. If your team needs additional minutes for private repositories, you can increase your spending limit for GitHub Actions. Actions minutes and Packages storage are still free for your public repositories. For more information, see "[Managing your spending limit for {% data variables.product.prodname_actions %}](/billing/managing-billing-for-github-actions/managing-your-spending-limit-for-github-actions)." ## How do the seat limit changes affect me? @@ -91,6 +91,6 @@ If you’re currently an invoice customer, email your sales representative for a ## How will this impact users and organizations in regions where U.S. government sanctions are applied? -Due to U.S. trade controls law restrictions, GitHub is unable to provide private repository services and paid services to accounts in U.S. sanctioned regions. GitHub has preserved, however, access to free public repository services. Please read about [GitHub and Trade Controls](/free-pro-team@latest/github/site-policy/github-and-trade-controls) for more information. +Due to U.S. trade controls law restrictions, GitHub is unable to provide private repository services and paid services to accounts in U.S. sanctioned regions. GitHub has preserved, however, access to free public repository services. Please read about [GitHub and Trade Controls](/free-pro-team@latest/site-policy/other-site-policies/github-and-trade-controls) for more information. GitHub will continue advocating with U.S. regulators for the greatest possible access to free code collaboration services to developers in sanctioned regions, including free private repositories. We believe that offering those free services supports U.S. foreign policy of encouraging the free flow of information and free speech in those regions. diff --git a/content/get-started/learning-about-github/github-language-support.md b/content/get-started/learning-about-github/github-language-support.md index 70d4abc463..fdb1ce8630 100644 --- a/content/get-started/learning-about-github/github-language-support.md +++ b/content/get-started/learning-about-github/github-language-support.md @@ -16,7 +16,7 @@ redirect_from: ## About supported languages -Most {% data variables.product.prodname_dotcom %} features work regardless of which languages your code is written in. You can search for code or enable syntax highlighting based on any language known to {% data variables.product.prodname_dotcom %}. For more information, see "[Searching code](/github/searching-for-information-on-github/searching-code#search-by-language)" or "[Creating and highlighting code blocks](/github/writing-on-github/creating-and-highlighting-code-blocks#syntax-highlighting)." +Most {% data variables.product.prodname_dotcom %} features work regardless of which languages your code is written in. You can search for code or enable syntax highlighting based on any language known to {% data variables.product.prodname_dotcom %}. For more information, see "[Searching code](/search-github/searching-on-github/searching-code#search-by-language)" or "[Creating and highlighting code blocks](/get-started/writing-on-github/working-with-advanced-formatting/creating-and-highlighting-code-blocks#syntax-highlighting)." Some {% data variables.product.prodname_dotcom %} products have features that are currently only supported for a subset of programming languages. diff --git a/content/get-started/learning-about-github/githubs-products.md b/content/get-started/learning-about-github/githubs-products.md index 53b7ebe918..67b8fa98e1 100644 --- a/content/get-started/learning-about-github/githubs-products.md +++ b/content/get-started/learning-about-github/githubs-products.md @@ -105,14 +105,14 @@ In addition to the features available with {% data variables.product.prodname_te - Authentication with SAML single sign-on - Access provisioning with SAML or SCIM - {% data variables.product.prodname_github_connect %} -- The option to purchase {% data variables.product.prodname_GH_advanced_security %}. For more information, see "[About {% data variables.product.prodname_GH_advanced_security %}](/github/getting-started-with-github/about-github-advanced-security)." +- The option to purchase {% data variables.product.prodname_GH_advanced_security %}. For more information, see "[About {% data variables.product.prodname_GH_advanced_security %}](/get-started/learning-about-github/about-github-advanced-security)." {% data variables.product.prodname_ghe_cloud %} specifically includes: - 50,000 {% data variables.product.prodname_actions %} minutes per month - 50 GB {% data variables.product.prodname_registry %} storage - A service level agreement for 99.9% monthly uptime - The option to centrally manage policy and billing for multiple {% data variables.product.prodname_dotcom_the_website %} organizations with an enterprise account. For more information, see "[About enterprise accounts](/enterprise-cloud@latest/admin/overview/about-enterprise-accounts)." -- The option to provision and manage the user accounts for your developers, by using {% data variables.product.prodname_emus %}. For more information, see "[About {% data variables.product.prodname_emus %}](/enterprise-cloud@latest/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users)." +- The option to provision and manage the user accounts for your developers, by using {% data variables.product.prodname_emus %}. For more information, see "[About {% data variables.product.prodname_emus %}](/enterprise-cloud@latest/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users)." You can set up trials to evaluate {% data variables.product.prodname_ghe_cloud %} and {% data variables.product.prodname_ghe_server %}. For more information, see "[Setting up a trial of {% data variables.product.prodname_ghe_cloud %}](/enterprise-cloud@latest/get-started/signing-up-for-github/setting-up-a-trial-of-github-enterprise-cloud)" and "[Setting up a trial of {% data variables.product.prodname_ghe_server %}](/enterprise-server@latest/get-started/signing-up-for-github/setting-up-a-trial-of-github-enterprise-server)." diff --git a/content/get-started/learning-about-github/types-of-github-accounts.md b/content/get-started/learning-about-github/types-of-github-accounts.md index 70b4afd8f5..63ee918b28 100644 --- a/content/get-started/learning-about-github/types-of-github-accounts.md +++ b/content/get-started/learning-about-github/types-of-github-accounts.md @@ -37,7 +37,7 @@ Every person who uses {% data variables.location.product_location %} signs into Your personal account can own resources such as repositories, packages, and projects. Any time you take any action on {% data variables.location.product_location %}, such as creating an issue or reviewing a pull request, the action is attributed to your personal account. -{% ifversion fpt or ghec %}Each personal account uses either {% data variables.product.prodname_free_user %} or {% data variables.product.prodname_pro %}. All personal accounts can own an unlimited number of public and private repositories, with an unlimited number of collaborators on those repositories. If you use {% data variables.product.prodname_free_user %}, private repositories owned by your personal account have a limited feature set. You can upgrade to {% data variables.product.prodname_pro %} to get a full feature set for private repositories. For more information, see "[{% data variables.product.prodname_dotcom %}'s products](/articles/githubs-products)." {% else %}You can create an unlimited number of repositories owned by your personal account, with an unlimited number of collaborators on those repositories.{% endif %} +{% ifversion fpt or ghec %}Each personal account uses either {% data variables.product.prodname_free_user %} or {% data variables.product.prodname_pro %}. All personal accounts can own an unlimited number of public and private repositories, with an unlimited number of collaborators on those repositories. If you use {% data variables.product.prodname_free_user %}, private repositories owned by your personal account have a limited feature set. You can upgrade to {% data variables.product.prodname_pro %} to get a full feature set for private repositories. For more information, see "[{% data variables.product.prodname_dotcom %}'s products](/get-started/learning-about-github/githubs-products)." {% else %}You can create an unlimited number of repositories owned by your personal account, with an unlimited number of collaborators on those repositories.{% endif %} {% tip %} @@ -46,7 +46,7 @@ Your personal account can own resources such as repositories, packages, and proj {% endtip %} {% ifversion fpt or ghec %} -Most people will use one personal account for all their work on {% data variables.product.prodname_dotcom_the_website %}, including both open source projects and paid employment. If you're currently using more than one personal account that you created for yourself, we suggest combining the accounts. For more information, see "[Merging multiple personal accounts](/articles/merging-multiple-user-accounts)." +Most people will use one personal account for all their work on {% data variables.product.prodname_dotcom_the_website %}, including both open source projects and paid employment. If you're currently using more than one personal account that you created for yourself, we suggest combining the accounts. For more information, see "[Merging multiple personal accounts](/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/merging-multiple-personal-accounts)." {% endif %} ## Organization accounts @@ -62,7 +62,7 @@ The personal accounts within an organization can be given different roles in the {% ifversion fpt or ghec %} Even if you're a member of an organization that uses SAML single sign-on, you will still sign into your own personal account on {% data variables.product.prodname_dotcom_the_website %}, and that personal account will be linked to your identity in your organization's identity provider (IdP). For more information, see "[About authentication with SAML single sign-on](/enterprise-cloud@latest/authentication/authenticating-with-saml-single-sign-on/about-authentication-with-saml-single-sign-on){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation{% else %}."{% endif %} -However, if you're a member of an enterprise that uses {% data variables.product.prodname_emus %}, instead of using a personal account that you created, a new account will be provisioned for you by the enterprise's IdP. To access any organizations owned by that enterprise, you must authenticate using their IdP instead of a {% data variables.product.prodname_dotcom_the_website %} username and password. For more information, see "[About {% data variables.product.prodname_emus %}](/enterprise-cloud@latest/admin/authentication/managing-your-enterprise-users-with-your-identity-provider/about-enterprise-managed-users){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %} +However, if you're a member of an enterprise that uses {% data variables.product.prodname_emus %}, instead of using a personal account that you created, a new account will be provisioned for you by the enterprise's IdP. To access any organizations owned by that enterprise, you must authenticate using their IdP instead of a {% data variables.product.prodname_dotcom_the_website %} username and password. For more information, see "[About {% data variables.product.prodname_emus %}](/enterprise-cloud@latest/admin/identity-and-access-management/using-enterprise-managed-users-for-iam/about-enterprise-managed-users){% ifversion fpt %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %} {% endif %} You can also create nested sub-groups of organization members called teams, to reflect your group's structure and simplify access management. For more information, see "[About teams](/organizations/organizing-members-into-teams/about-teams)." @@ -84,6 +84,6 @@ Your enterprise account is a collection of all the organizations {% ifversion gh ## Further reading {% ifversion fpt or ghec %} -- "[Signing up for a new {% data variables.product.prodname_dotcom %} account](/articles/signing-up-for-a-new-github-account)"{% endif %} -- "[Creating a new organization account](/articles/creating-a-new-organization-account)" +- "[Signing up for a new {% data variables.product.prodname_dotcom %} account](/get-started/signing-up-for-github/signing-up-for-a-new-github-account)"{% endif %} +- "[Creating a new organization from scratch](/organizations/collaborating-with-groups-in-organizations/creating-a-new-organization-from-scratch)" - [Organizing people for successful collaboration](https://vimeo.com/333786093) video in {% data variables.product.company_short %} Resources 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 27fffa2f10..a02a2a3e5e 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 @@ -44,7 +44,7 @@ If you create a new clone of the repository, you won't lose any of your Git hist {% endwindows %} ```shell - $ git filter-repo --path FOLDER-NAME1/ --path FOLDER-NAME2/ + $ git filter-repo --path FOLDER-NAME/ # Filter the specified branch in your directory and remove empty commits > Rewrite 48dc599c80e20527ed902928085e7861e6b3cbe6 (89/89) > Ref 'refs/heads/BRANCH-NAME' was rewritten diff --git a/content/get-started/using-github/github-command-palette.md b/content/get-started/using-github/github-command-palette.md index a634ee7f40..bd5c18c0db 100644 --- a/content/get-started/using-github/github-command-palette.md +++ b/content/get-started/using-github/github-command-palette.md @@ -40,7 +40,7 @@ When you open the command palette, it shows your location at the top left and us **Notes:** - If you are editing Markdown text, open the command palette with Ctrl+Alt+K (Windows and Linux) or Command+Option+K (Mac).{% ifversion projects-v2 %} -- If you are working on a {% data variables.projects.project_v2 %}, a project-specific command palette is displayed instead. For more information, see "[Customizing a view](/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/customizing-a-view)."{% endif %} +- If you are working on a {% data variables.projects.project_v2 %}, a project-specific command palette is displayed instead. For more information, see "[Customizing a view](/issues/planning-and-tracking-with-projects/customizing-views-in-your-project/changing-the-layout-of-a-view)."{% endif %} {% endnote %} @@ -219,11 +219,11 @@ These commands are available only when you open the command palette from a pull | Command | Behavior| | :- | :- | -|`Close`/`reopen pull request`|Close or reopen the current pull request. For more information, see "[About pull requests](/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)."| -|`Convert to draft`/`Mark pull request as ready for review`|Change the state of the pull request to show it as ready, or not ready, for review. For more information, see "[Changing the state of a pull request](/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request)."| +|`Close`/`reopen pull request`|Close or reopen the current pull request. For more information, see "[About pull requests](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)."| +|`Convert to draft`/`Mark pull request as ready for review`|Change the state of the pull request to show it as ready, or not ready, for review. For more information, see "[Changing the state of a pull request](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request)."| |`Copy current branch name`| Add the name of the head branch for the pull request to the clipboard. |`Edit pull request body`|Open the main body of the pull request ready for editing. |`Edit pull request title`|Open the title of the pull request ready for editing. |`Open in new codespace`|Create and open a codespace for the head branch of the pull request. For more information, see "[Creating a codespace for a repository](/codespaces/developing-in-codespaces/creating-a-codespace-for-a-repository)." |`Subscribe`/`unsubscribe`|Opt in or out of notifications for changes to this pull request. For more information, see "[About notifications](/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/about-notifications)." -|`Update current branch`|Update the head branch of the pull request with changes from the base branch. This is available only for pull requests that target the default branch of the repository. For more information, see "[About branches](/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-branches)."| +|`Update current branch`|Update the head branch of the pull request with changes from the base branch. This is available only for pull requests that target the default branch of the repository. For more information, see "[About branches](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-branches)."| diff --git a/content/get-started/using-github/github-mobile.md b/content/get-started/using-github/github-mobile.md index 74cd8e8b2a..34d4634022 100644 --- a/content/get-started/using-github/github-mobile.md +++ b/content/get-started/using-github/github-mobile.md @@ -29,9 +29,9 @@ With {% data variables.product.prodname_mobile %} you can: {% ifversion fpt or ghec %}- Secure your GitHub.com account with two-factor authentication - Verify your sign in attempts on unrecognized devices{% endif %} -For more information about notifications for {% data variables.product.prodname_mobile %}, see "[Configuring notifications](/github/managing-subscriptions-and-notifications-on-github/configuring-notifications#enabling-push-notifications-with-github-mobile)." +For more information about notifications for {% data variables.product.prodname_mobile %}, see "[Configuring notifications](/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications#enabling-push-notifications-with-github-mobile)." -{% ifversion fpt or ghec %}- For more information on two-factor authentication using {% data variables.product.prodname_mobile %}, see "[Configuring {% data variables.product.prodname_mobile %}](/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication#configuring-two-factor-authentication-using-github-mobile) and [Authenticating using {% data variables.product.prodname_mobile %}](/authentication/securing-your-account-with-two-factor-authentication-2fa/accessing-github-using-two-factor-authentication##verifying-with-github-mobile)." {% endif %} +{% ifversion fpt or ghec %}- For more information on two-factor authentication using {% data variables.product.prodname_mobile %}, see "[Configuring {% data variables.product.prodname_mobile %}](/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication#configuring-two-factor-authentication-using-github-mobile) and [Authenticating using {% data variables.product.prodname_mobile %}](/authentication/securing-your-account-with-two-factor-authentication-2fa/accessing-github-using-two-factor-authentication#verifying-with-github-mobile)." {% endif %} ## Installing {% data variables.product.prodname_mobile %} @@ -49,7 +49,7 @@ You can be simultaneously signed into mobile with one personal account on {% dat You must install {% data variables.product.prodname_mobile %} 1.4 or later on your device to use {% data variables.product.prodname_mobile %} with {% data variables.product.prodname_ghe_server %}. -To use {% data variables.product.prodname_mobile %} with {% data variables.product.prodname_ghe_server %}, {% data variables.location.product_location %} must be version 3.0 or greater, and your enterprise owner must enable mobile support for your enterprise. For more information, see {% ifversion ghes %}"[Release notes](/enterprise-server/admin/release-notes)" and {% endif %}"[Managing {% data variables.product.prodname_mobile %} for your enterprise]({% ifversion not ghes %}/enterprise-server@latest{% endif %}/admin/configuration/configuring-your-enterprise/managing-github-mobile-for-your-enterprise){% ifversion not ghes %}" in the {% data variables.product.prodname_ghe_server %} documentation.{% else %}."{% endif %} +To use {% data variables.product.prodname_mobile %} with {% data variables.product.prodname_ghe_server %}, {% data variables.location.product_location %} must be version 3.0 or greater, and your enterprise owner must enable mobile support for your enterprise. For more information, see {% ifversion ghes %}"[Release notes](/admin/release-notes)" and {% endif %}"[Managing {% data variables.product.prodname_mobile %} for your enterprise]({% ifversion not ghes %}/enterprise-server@latest{% endif %}/admin/configuration/configuring-your-enterprise/managing-github-mobile-for-your-enterprise){% ifversion not ghes %}" in the {% data variables.product.prodname_ghe_server %} documentation.{% else %}."{% endif %} During the beta for {% data variables.product.prodname_mobile %} with {% data variables.product.prodname_ghe_server %}, you must be signed in with a personal account on {% data variables.product.prodname_dotcom_the_website %}. diff --git a/content/get-started/using-github/keyboard-shortcuts.md b/content/get-started/using-github/keyboard-shortcuts.md index e8960f8a57..de716b7b32 100644 --- a/content/get-started/using-github/keyboard-shortcuts.md +++ b/content/get-started/using-github/keyboard-shortcuts.md @@ -31,7 +31,7 @@ The following sections list some of the available keyboard shortcuts, organized | Keyboard shortcut | Description |-----------|------------ |S or / | Focus the search bar. For more information, see "[About searching on {% data variables.product.company_short %}](/search-github/getting-started-with-searching-on-github/about-searching-on-github)." -|G N | Go to your notifications. For more information, see "[About notifications](/github/managing-subscriptions-and-notifications-on-github/about-notifications)." +|G N | Go to your notifications. For more information, see "[About notifications](/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/about-notifications)." |Esc | When focused on a user, issue, or pull request hovercard, closes the hovercard and refocuses on the element the hovercard is in {% ifversion command-palette %}|Command+K (Mac) or
Ctrl+K (Windows/Linux) | Opens the {% data variables.product.prodname_command_palette %}. If you are editing Markdown text, open the command palette with Command+Option+K or Ctrl+Alt+K. For more information, see "[{% data variables.product.prodname_command_palette %}](/get-started/using-github/github-command-palette)."{% endif %} @@ -40,10 +40,10 @@ The following sections list some of the available keyboard shortcuts, organized | Keyboard shortcut | Description |-----------|------------ |G C | Go to the **Code** tab -|G I | Go to the **Issues** tab. For more information, see "[About issues](/articles/about-issues)." +|G I | Go to the **Issues** tab. For more information, see "[About issues](/issues/tracking-your-work-with-issues/about-issues)." |G P | Go to the **Pull requests** tab. For more information, see "[About pull requests](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)."{% ifversion fpt or ghes or ghec %} -|G A | Go to the **Actions** tab. For more information, see "[About Actions](/actions/getting-started-with-github-actions/about-github-actions)."{% endif %} -|G B | Go to the **Projects** tab. For more information, see "[About project boards](/articles/about-project-boards)." +|G A | Go to the **Actions** tab. For more information, see "[About Actions](/actions/learn-github-actions)."{% endif %} +|G B | Go to the **Projects** tab. For more information, see "[About project boards](/issues/organizing-your-work-with-project-boards/managing-project-boards/about-project-boards)." |G W | Go to the **Wiki** tab. For more information, see "[About wikis](/communities/documenting-your-project-with-wikis/about-wikis)."{% ifversion discussions %} |G G | Go to the **Discussions** tab. For more information, see "[About discussions](/discussions/collaborating-with-your-community-using-discussions/about-discussions)."{% endif %} @@ -80,10 +80,10 @@ For more keyboard shortcuts, see the [CodeMirror documentation](https://codemirr |T | Activates the file finder |L | Jump to a line in your code |W | Switch to a new branch or tag -|Y | Expand a URL to its canonical form. For more information, see "[Getting permanent links to files](/articles/getting-permanent-links-to-files)." -|I | Show or hide comments on diffs. For more information, see "[Commenting on the diff of a pull request](/articles/commenting-on-the-diff-of-a-pull-request)." +|Y | Expand a URL to its canonical form. For more information, see "[Getting permanent links to files](/repositories/working-with-files/using-files/getting-permanent-links-to-files)." +|I | Show or hide comments on diffs. For more information, see "[Commenting on a pull request](/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/commenting-on-a-pull-request)." |A | Show or hide annotations on diffs -|B | Open blame view. For more information, see "[Tracing changes in a file](/articles/tracing-changes-in-a-file)." +|B | Open blame view. For more information, see "[Viewing a file](/repositories/working-with-files/using-files/viewing-a-file)." ## Comments @@ -100,10 +100,10 @@ For more keyboard shortcuts, see the [CodeMirror documentation](https://codemirr |Command+Shift+7 (Mac) or
Ctrl+Shift+7 (Windows/Linux) | Inserts Markdown formatting for an ordered list |Command+Shift+8 (Mac) or
Ctrl+Shift+8 (Windows/Linux) | Inserts Markdown formatting for an unordered list |Command+Enter (Mac) or
Ctrl+Enter (Windows/Linux) | Submits a comment -|Ctrl+. and then Ctrl+[saved reply number] | Opens saved replies menu and then autofills comment field with a saved reply. For more information, see "[About saved replies](/articles/about-saved-replies)." +|Ctrl+. and then Ctrl+[saved reply number] | Opens saved replies menu and then autofills comment field with a saved reply. For more information, see "[About saved replies](/get-started/writing-on-github/working-with-saved-replies/about-saved-replies)." |Command+Shift+. (Mac) or
Ctrl+Shift+. (Windows/Linux) | Inserts Markdown formatting for a quote{% ifversion fpt or ghec %} |Command+G (Mac) or
Ctrl+G (Windows/Linux) | Insert a suggestion. For more information, see "[Reviewing proposed changes in a pull request](/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request)." |{% endif %} -|R | Quote the selected text in your reply. For more information, see "[Basic writing and formatting syntax](/articles/basic-writing-and-formatting-syntax#quoting-text)." | +|R | Quote the selected text in your reply. For more information, see "[Basic writing and formatting syntax](/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#quoting-text)." | ## Issue and pull request lists @@ -112,24 +112,24 @@ For more keyboard shortcuts, see the [CodeMirror documentation](https://codemirr |C | Create an issue |Command+/ (Mac) or
Ctrl+/ (Windows/Linux) | Focus your cursor on the issues or pull requests search bar. For more information, see "[Filtering and searching issues and pull requests](/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests)."|| |U | Filter by author -|L | Filter by or edit labels. For more information, see "[Filtering issues and pull requests by labels](/articles/filtering-issues-and-pull-requests-by-labels)." -|Alt and click | While filtering by labels, exclude labels. For more information, see "[Filtering issues and pull requests by labels](/articles/filtering-issues-and-pull-requests-by-labels)." -|M | Filter by or edit milestones. For more information, see "[Filtering issues and pull requests by milestone](/articles/filtering-issues-and-pull-requests-by-milestone)." -|A | Filter by or edit assignee. For more information, see "[Filtering issues and pull requests by assignees](/articles/filtering-issues-and-pull-requests-by-assignees)." +|L | Filter by or edit labels. For more information, see "[Filtering and searching issues and pull requests](/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests)." +|Alt and click | While filtering by labels, exclude labels. For more information, see "[Filtering and searching issues and pull requests](/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests)." +|M | Filter by or edit milestones. For more information, see "[Filtering issues and pull requests by milestone](/issues/using-labels-and-milestones-to-track-work/filtering-issues-and-pull-requests-by-milestone)." +|A | Filter by or edit assignee. For more information, see "[Filtering and searching issues and pull requests](/issues/tracking-your-work-with-issues/filtering-and-searching-issues-and-pull-requests)." |O or Enter | Open issue ## Issues and pull requests | Keyboard shortcut | Description |-----------|------------ -|Q | Request a reviewer. For more information, see "[Requesting a pull request review](/articles/requesting-a-pull-request-review/)." -|M | Set a milestone. For more information, see "[Associating milestones with issues and pull requests](/articles/associating-milestones-with-issues-and-pull-requests/)." -|L | Apply a label. For more information, see "[Applying labels to issues and pull requests](/articles/applying-labels-to-issues-and-pull-requests/)." -|A | Set an assignee. For more information, see "[Assigning issues and pull requests to other {% data variables.product.company_short %} users](/articles/assigning-issues-and-pull-requests-to-other-github-users/)." -|X | Link an issue or pull request from the same repository. For more information, see "[Linking a pull request to an issue](/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue/)." +|Q | Request a reviewer. For more information, see "[Requesting a pull request review](/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/requesting-a-pull-request-review)." +|M | Set a milestone. For more information, see "[Associating milestones with issues and pull requests](/issues/using-labels-and-milestones-to-track-work/associating-milestones-with-issues-and-pull-requests)." +|L | Apply a label. For more information, see "[Managing labels](/issues/using-labels-and-milestones-to-track-work/managing-labels#applying-a-label)." +|A | Set an assignee. For more information, see "[Assigning issues and pull requests to other {% data variables.product.company_short %} users](/issues/tracking-your-work-with-issues/assigning-issues-and-pull-requests-to-other-github-users)." +|X | Link an issue or pull request from the same repository. For more information, see "[Linking a pull request to an issue](/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)." |Command+Shift+P (Mac) or
Ctrl+Shift+P (Windows/Linux) | Toggles between the **Write** and **Preview** tabs{% ifversion fpt or ghec %} -|Alt and click | When creating an issue from a task list, open the new issue form in the current tab by holding Alt and clicking the {% octicon "issue-opened" aria-label="The issue opened icon" %} in the upper-right corner of the task. For more information, see "[About task lists](/issues/tracking-your-work-with-issues/creating-issues/about-task-lists)." -|Shift and click | When creating an issue from a task list, open the new issue form in a new tab by holding Shift and clicking the {% octicon "issue-opened" aria-label="The issue opened icon" %} in the upper-right corner of the task. For more information, see "[About task lists](/issues/tracking-your-work-with-issues/creating-issues/about-task-lists)." -|Command and click (Mac) or
Ctrl+Shift and click (Windows/Linux) | When creating an issue from a task list, open the new issue form in the new window by holding Command or Ctrl+Shift and clicking the {% octicon "issue-opened" aria-label="The issue opened icon" %} in the upper-right corner of the task. For more information, see "[About task lists](/issues/tracking-your-work-with-issues/creating-issues/about-task-lists)."{% endif %} +|Alt and click | When creating an issue from a task list, open the new issue form in the current tab by holding Alt and clicking the {% octicon "issue-opened" aria-label="The issue opened icon" %} in the upper-right corner of the task. For more information, see "[About task lists](/get-started/writing-on-github/working-with-advanced-formatting/about-task-lists)." +|Shift and click | When creating an issue from a task list, open the new issue form in a new tab by holding Shift and clicking the {% octicon "issue-opened" aria-label="The issue opened icon" %} in the upper-right corner of the task. For more information, see "[About task lists](/get-started/writing-on-github/working-with-advanced-formatting/about-task-lists)." +|Command and click (Mac) or
Ctrl+Shift and click (Windows/Linux) | When creating an issue from a task list, open the new issue form in the new window by holding Command or Ctrl+Shift and clicking the {% octicon "issue-opened" aria-label="The issue opened icon" %} in the upper-right corner of the task. For more information, see "[About task lists](/get-started/writing-on-github/working-with-advanced-formatting/about-task-lists)."{% endif %} ## "Files changed" tab in pull requests @@ -139,7 +139,7 @@ For more keyboard shortcuts, see the [CodeMirror documentation](https://codemirr |T | Move your cursor to the "Filter changed files" field |Command+Shift+Enter (Mac) or Ctrl+Shift+Enter (Windows/Linux) | Submit a review comment | |Option and click (Mac) or Alt and click (Windows/Linux) | Toggle between collapsing and expanding all outdated or resolved review comments in a pull request (for example, by holding down Alt and clicking **Show outdated** or **Hide outdated**) | -|Click, then Shift and click | Comment on multiple lines of a pull request by clicking a line number, holding Shift, then clicking another line number. For more information, see "[Commenting on a pull request](/github/collaborating-with-issues-and-pull-requests/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)."| +|Click, then Shift and click | Comment on multiple lines of a pull request by clicking a line number, holding Shift, then clicking another line number. For more information, see "[Commenting on a pull request](/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/commenting-on-a-pull-request#adding-line-comments-to-a-pull-request)."| {% ifversion projects-v2 %} diff --git a/content/get-started/using-github/troubleshooting-connectivity-problems.md b/content/get-started/using-github/troubleshooting-connectivity-problems.md index bdd31c3320..0034cf1c9b 100644 --- a/content/get-started/using-github/troubleshooting-connectivity-problems.md +++ b/content/get-started/using-github/troubleshooting-connectivity-problems.md @@ -14,7 +14,7 @@ Most often, connection problems occur because a firewall, proxy server, corporat ## Allowing {% data variables.product.prodname_dotcom %}'s IP addresses -Make sure your network is configured to allow {% data variables.product.prodname_dotcom %}'s IP addresses. For more information, see "[About {% data variables.product.prodname_dotcom %}'s IP addresses](/articles/about-github-s-ip-addresses)." +Make sure your network is configured to allow {% data variables.product.prodname_dotcom %}'s IP addresses. For more information, see "[About {% data variables.product.prodname_dotcom %}'s IP addresses](/authentication/keeping-your-account-and-data-secure/about-githubs-ip-addresses)." ## Using a company or organization's network @@ -24,7 +24,7 @@ If you're having connectivity problems on your company or organization's network If you're unable to verify with the captcha: - Ensure JavaScript is enabled on your browser. -- Ensure your browser is supported. If your browser isn't supported, upgrade your browser or install a supported browser. For a list of supported browsers, see "[Supported browsers](/articles/supported-browsers)." +- Ensure your browser is supported. If your browser isn't supported, upgrade your browser or install a supported browser. For a list of supported browsers, see "[Supported browsers](/get-started/using-github/supported-browsers)." - Ensure your network configuration is not blocking https://octocaptcha.com/ or https://arkoselabs.com/. If you're behind a corporate firewall, contact your IT administrator to allow those domains. To verify access to these domains, visit https://octocaptcha.com/test and ensure the text "Connection successfully made!" is displayed, then visit https://client-demo.arkoselabs.com/github and ensure you are able to load the captcha. - Ensure your browser does not have plug-ins or extensions that may be interfering with GitHub. If so, temporarily disable the plug-ins or extensions during captcha verification. @@ -34,7 +34,7 @@ Switching from cloning via SSH to cloning via HTTPS, or vice versa may improve c If you prefer to use SSH but the port is blocked, you can use an alternative port. For more information, see "[Using SSH over the HTTPS port](/authentication/troubleshooting-ssh/using-ssh-over-the-https-port)". -If you're encountering timeouts with SSH, see "[Error: Bad file number](/articles/error-bad-file-number)." +If you're encountering timeouts with SSH, see "[Error: Bad file number](/authentication/troubleshooting-ssh/error-bad-file-number)." ## Troubleshooting slow downloads and intermittent slow connections diff --git a/content/github-cli/index.md b/content/github-cli/index.md index 31e6a7c123..936c8c5b38 100644 --- a/content/github-cli/index.md +++ b/content/github-cli/index.md @@ -14,7 +14,7 @@ introLinks: quickstart: /github-cli/github-cli/quickstart reference: /github-cli/github-cli/github-cli-reference featuredLinks: - guides: + startHere: - /github-cli/github-cli/creating-github-cli-extensions - /github-cli/github-cli/using-github-cli-extensions - /actions/using-workflows/using-github-cli-in-workflows diff --git a/content/graphql/index.md b/content/graphql/index.md index dd53bd6357..c4403abd60 100644 --- a/content/graphql/index.md +++ b/content/graphql/index.md @@ -5,7 +5,7 @@ shortTitle: GraphQL API introLinks: overview: /graphql/overview/about-the-graphql-api featuredLinks: - guides: + startHere: - /graphql/guides/forming-calls-with-graphql - /graphql/guides/introduction-to-graphql - /graphql/guides/using-the-explorer diff --git a/content/issues/index.md b/content/issues/index.md index f2d6365fbb..8cbbcd0723 100644 --- a/content/issues/index.md +++ b/content/issues/index.md @@ -6,7 +6,7 @@ introLinks: overview: /issues/tracking-your-work-with-issues/about-issues quickstart: /issues/tracking-your-work-with-issues/quickstart featuredLinks: - guides: + startHere: - /issues/tracking-your-work-with-issues/creating-an-issue - /issues/planning-and-tracking-with-projects/learning-about-projects/quickstart-for-projects - /issues/planning-and-tracking-with-projects/learning-about-projects/best-practices-for-projects diff --git a/content/organizations/index.md b/content/organizations/index.md index 652c907aca..98ed7fe1a3 100644 --- a/content/organizations/index.md +++ b/content/organizations/index.md @@ -9,7 +9,7 @@ redirect_from: introLinks: overview: /organizations/collaborating-with-groups-in-organizations/about-organizations featuredLinks: - guides: + startHere: - /get-started/learning-about-github/types-of-github-accounts - /organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization - /organizations/organizing-members-into-teams/about-teams diff --git a/content/packages/index.md b/content/packages/index.md index 135fbcf6bc..b3a0a13866 100644 --- a/content/packages/index.md +++ b/content/packages/index.md @@ -6,7 +6,7 @@ introLinks: quickstart: /packages/quickstart reference: /packages/manage-packages featuredLinks: - guides: + startHere: - /packages/learn-github-packages - /packages/managing-github-packages-using-github-actions-workflows - /packages/learn-github-packages/installing-a-package diff --git a/content/packages/working-with-a-github-packages-registry/working-with-the-npm-registry.md b/content/packages/working-with-a-github-packages-registry/working-with-the-npm-registry.md index 51e552ba91..c4a3042480 100644 --- a/content/packages/working-with-a-github-packages-registry/working-with-the-npm-registry.md +++ b/content/packages/working-with-a-github-packages-registry/working-with-the-npm-registry.md @@ -97,12 +97,24 @@ $ npm login --scope=@OWNER --auth-type=legacy --registry=https://HOSTNAME/_regis ## Publishing a package +{% ifversion packages-npm-v2 %} +{% note %} + +**Note:** + +- Package names and scopes must only use lowercase letters. +- The tarball for an npm version must be smaller than 256MB in size. + +{% endnote %} +{% else %} {% note %} **Note:** Package names and scopes must only use lowercase letters. {% endnote %} +{% endif %} + {% ifversion packages-npm-v2 %} The {% data variables.product.prodname_registry %} registry stores npm packages within your organization or personal account, and allows you to associate a package with a repository. You can choose whether to inherit permissions from a repository, or set granular permissions independently of a repository. diff --git a/content/pages/index.md b/content/pages/index.md index 19adbee123..0015c38cb2 100644 --- a/content/pages/index.md +++ b/content/pages/index.md @@ -6,7 +6,7 @@ introLinks: quickstart: /pages/quickstart overview: /pages/getting-started-with-github-pages/about-github-pages featuredLinks: - guides: + startHere: - /pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site - /pages/getting-started-with-github-pages/creating-a-github-pages-site - '{% ifversion fpt or ghec %}/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site{% endif %}' diff --git a/content/pull-requests/index.md b/content/pull-requests/index.md index 8d7d2bc412..7e3908af44 100644 --- a/content/pull-requests/index.md +++ b/content/pull-requests/index.md @@ -4,7 +4,7 @@ intro: 'Learn how to use pull requests to suggest changes to a project, receive introLinks: overview: /pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests featuredLinks: - guides: + startHere: - /pull-requests/committing-changes-to-your-project/creating-and-editing-commits/changing-a-commit-message - /pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line - /pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository diff --git a/content/repositories/index.md b/content/repositories/index.md index 21d934c624..ecd3f0dedc 100644 --- a/content/repositories/index.md +++ b/content/repositories/index.md @@ -5,7 +5,7 @@ introLinks: quickstart: /get-started/quickstart/create-a-repo overview: /repositories/creating-and-managing-repositories/about-repositories featuredLinks: - guides: + startHere: - /repositories/creating-and-managing-repositories/cloning-a-repository - /repositories/creating-and-managing-repositories/restoring-a-deleted-repository - /repositories/working-with-files/managing-files/adding-a-file-to-a-repository diff --git a/content/rest/actions/self-hosted-runners.md b/content/rest/actions/self-hosted-runners.md index 7df45d9eee..8a9e027ee7 100644 --- a/content/rest/actions/self-hosted-runners.md +++ b/content/rest/actions/self-hosted-runners.md @@ -14,4 +14,4 @@ versions: You can use the REST API to register, view, and delete self-hosted runners in {% data variables.product.prodname_actions %}. {% data reusables.actions.about-self-hosted-runners %} For more information, see "[Hosting your own runners](/actions/hosting-your-own-runners)." -{% data reusables.actions.actions-authentication %} {% data variables.product.prodname_github_apps %} must have the `administration` permission for repositories the `organization_self_hosted_runners` permission for organizations. Authenticated users must have admin access to repositories or organizations, or the `manage_runners:enterprise` scope for enterprises to use these endpoints. +{% data reusables.actions.actions-authentication %} {% data variables.product.prodname_github_apps %} must have the `administration` permission for repositories and the `organization_self_hosted_runners` permission for organizations. Authenticated users must have admin access to repositories or organizations, or the `manage_runners:enterprise` scope for enterprises to use these endpoints. diff --git a/content/rest/index.md b/content/rest/index.md index aa1f4b6c48..552d5fe041 100644 --- a/content/rest/index.md +++ b/content/rest/index.md @@ -6,7 +6,7 @@ introLinks: quickstart: /rest/quickstart overview: /rest/guides/getting-started-with-the-rest-api featuredLinks: - guides: + startHere: - /rest/guides/getting-started-with-the-rest-api - /rest/guides/basics-of-authentication - /rest/guides/best-practices-for-integrators diff --git a/content/rest/overview/media-types.md b/content/rest/overview/media-types.md index 8bdb3aff9c..d6eb3d162d 100644 --- a/content/rest/overview/media-types.md +++ b/content/rest/overview/media-types.md @@ -43,28 +43,28 @@ put it after `github`: The body of a comment can be written in [{% data variables.product.prodname_dotcom %} Flavored Markdown][gfm]. The APIs to manage [issues](/rest/reference/issues), [issue comments](/rest/reference/issues#comments), [pull request comments](/rest/reference/pulls#comments), and [gist comments](/rest/reference/gists#comments) all accept these same media types: -### Raw +### Raw media type for comment body properties application/vnd.github.raw+json Return the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type. -### Text +### Text media type for comment body properties application/vnd.github.text+json Return a text only representation of the markdown body. Response will include `body_text`. -### HTML +### HTML media type for comment body properties application/vnd.github.html+json Return HTML rendered from the body's markdown. Response will include `body_html`. -### Full +### Full media type for comment body properties application/vnd.github.full+json @@ -75,7 +75,7 @@ Return raw, text and HTML representations. Response will include `body`, The following media types are allowed when [getting a blob](/rest/reference/git#get-a-blob): -### JSON +### JSON media type for Git blob properties application/vnd.github+json application/json @@ -83,7 +83,7 @@ The following media types are allowed when [getting a blob](/rest/reference/git# Return JSON representation of the blob with `content` as a base64 encoded string. This is the default if nothing is passed. -### Raw +### Raw media type for Git blob properties application/vnd.github.raw @@ -93,27 +93,27 @@ Return the raw blob data. The REST API to manage [commits](/rest/reference/repos#commits) and [pull requests](/rest/reference/pulls) support [diff][git-diff] and [patch][git-patch] formats: -### diff +### diff media type for commits, commit comparison, and pull requests application/vnd.github.diff -### patch +### patch media type for commits, commit comparison, and pull requests application/vnd.github.patch -### sha +### sha media type for commits, commit comparison, and pull requests application/vnd.github.sha ## Repository contents -### Raw +### Raw media type for repository contents application/vnd.github.raw Return the raw contents of a file. This is the default if you do not pass any specific media type. -### HTML +### HTML media type for repository contents application/vnd.github.html @@ -121,13 +121,13 @@ For markup files such as Markdown or AsciiDoc, you can retrieve the rendered HTM ## Gists -### Raw +### Raw media type for gists application/vnd.github.raw Return the raw contents of a gist. This is the default if you do not pass any specific media type. -### base64 +### base64 media type for gists application/vnd.github.base64 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 0174fae54a..9304c84b09 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 @@ -49,7 +49,7 @@ Query | Example ------------- | ------------- >YYYY-MM-DD | **[cats created:>2016-04-29](https://github.com/search?utf8=%E2%9C%93&q=cats+created%3A%3E2016-04-29&type=Issues)** matches issues with the word "cats" that were created after April 29, 2016. >=YYYY-MM-DD | **[cats created:>=2017-04-01](https://github.com/search?utf8=%E2%9C%93&q=cats+created%3A%3E%3D2017-04-01&type=Issues)** matches issues with the word "cats" that were created on or after April 1, 2017. -<YYYY-MM-DD | **[cats pushed:<2012-07-05](https://github.com/search?q=cats+pushed%3A%3C2012-07-05&type=Code&utf8=%E2%9C%93)** matches code with the word "cats" in repositories that were pushed to before July 5, 2012. +<YYYY-MM-DD | **[cats pushed:<2012-07-05](https://github.com/search?q=cats+pushed%3A%3C2012-07-05&type=Repositories&utf8=%E2%9C%93)** matches repositories with the word "cats" that were pushed to before July 5, 2012. <=YYYY-MM-DD | **[cats created:<=2012-07-04](https://github.com/search?utf8=%E2%9C%93&q=cats+created%3A%3C%3D2012-07-04&type=Issues)** matches issues with the word "cats" that were created on or before July 4, 2012. YYYY-MM-DD..YYYY-MM-DD | **[cats pushed:2016-04-30..2016-07-04](https://github.com/search?utf8=%E2%9C%93&q=cats+pushed%3A2016-04-30..2016-07-04&type=Repositories)** matches repositories with the word "cats" that were pushed to between the end of April and July of 2016. YYYY-MM-DD..* | **[cats created:2012-04-30..*](https://github.com/search?utf8=%E2%9C%93&q=cats+created%3A2012-04-30..*&type=Issues)** matches issues created after April 30th, 2012 containing the word "cats." diff --git a/content/search-github/index.md b/content/search-github/index.md index 83660a584d..18250aa52c 100644 --- a/content/search-github/index.md +++ b/content/search-github/index.md @@ -4,7 +4,7 @@ intro: 'Learn how to use the search functions available on GitHub to find differ introLinks: overview: /search-github/getting-started-with-searching-on-github/about-searching-on-github featuredLinks: - guides: + startHere: - /search-github/searching-on-github/searching-issues-and-pull-requests - /search-github/searching-on-github/searching-code - /search-github/searching-on-github/searching-for-repositories diff --git a/content/sponsors/getting-started-with-github-sponsors/about-github-sponsors.md b/content/sponsors/getting-started-with-github-sponsors/about-github-sponsors.md index 1e44b4bbff..e58fc9c6c3 100644 --- a/content/sponsors/getting-started-with-github-sponsors/about-github-sponsors.md +++ b/content/sponsors/getting-started-with-github-sponsors/about-github-sponsors.md @@ -15,6 +15,8 @@ topics: ## About {% data variables.product.prodname_sponsors %} +{% data reusables.sponsors.paypal-deprecation %} + {% data reusables.sponsors.sponsorship-details %} {% data reusables.sponsors.no-fees %} For more information, see "[About billing for {% data variables.product.prodname_sponsors %}](/articles/about-billing-for-github-sponsors)." diff --git a/content/sponsors/index.md b/content/sponsors/index.md index 6954595c03..ffd1c53593 100644 --- a/content/sponsors/index.md +++ b/content/sponsors/index.md @@ -11,7 +11,7 @@ changelog: label: sponsors examples_source: data/product-examples/sponsors/user-examples.yml featuredLinks: - guides: + startHere: - /sponsors/sponsoring-open-source-contributors/managing-your-sponsorship - /sponsors/sponsoring-open-source-contributors/attributing-sponsorships-to-your-organization - /sponsors/receiving-sponsorships-through-github-sponsors/managing-your-payouts-from-github-sponsors diff --git a/content/sponsors/sponsoring-open-source-contributors/sponsoring-an-open-source-contributor.md b/content/sponsors/sponsoring-open-source-contributors/sponsoring-an-open-source-contributor.md index bb966aba1b..c9f4074a7f 100644 --- a/content/sponsors/sponsoring-open-source-contributors/sponsoring-an-open-source-contributor.md +++ b/content/sponsors/sponsoring-open-source-contributors/sponsoring-an-open-source-contributor.md @@ -17,6 +17,8 @@ topics: shortTitle: Sponsor a contributor --- +{% data reusables.sponsors.paypal-deprecation %} + {% data reusables.sponsors.org-sponsors-release-phase %} ## About sponsorships @@ -39,7 +41,7 @@ We may share certain limited tax information with sponsored accounts. For more i {% data reusables.sponsors.manage-updates-for-orgs %} -You can choose whether to display your sponsorship publicly. One-time sponsorships remain visible for one month. +You can choose whether to display your sponsorship publicly. One-time sponsorships remain visible for one month. If the sponsored account retires your tier, the tier will remain in place for you until you choose a different tier or cancel your subscription. For more information, see "[Upgrading a sponsorship](/articles/upgrading-a-sponsorship)" and "[Downgrading a sponsorship](/articles/downgrading-a-sponsorship)." diff --git a/content/support/index.md b/content/support/index.md index 98fa54b58b..819488c610 100644 --- a/content/support/index.md +++ b/content/support/index.md @@ -22,7 +22,7 @@ topics: introLinks: overview: /support/learning-about-github-support/about-github-support featuredLinks: - guides: + startHere: - /support/contacting-github-support/creating-a-support-ticket - /support/contacting-github-support/viewing-and-updating-support-tickets - '{% ifversion ghes or ghec %}/support/learning-about-github-support/about-ticket-priority{% endif %}' diff --git a/data/graphql/ghae/graphql_upcoming_changes.public-ghae.yml b/data/graphql/ghae/graphql_upcoming_changes.public-ghae.yml index 5832b267da..3cd779c189 100644 --- a/data/graphql/ghae/graphql_upcoming_changes.public-ghae.yml +++ b/data/graphql/ghae/graphql_upcoming_changes.public-ghae.yml @@ -172,6 +172,54 @@ upcoming_changes: date: '2023-04-01T00:00:00+00:00' criticality: breaking owner: jamestran201 + - location: MergeQueue.headOid + description: '`headOid` will be removed. Use `entry.headOid` instead.' + reason: '`headOid` will be removed.' + date: '2023-07-01T00:00:00+00:00' + criticality: breaking + owner: github/merge_queue + - location: MergeQueue.mergeMethod + description: '`mergeMethod` will be removed. Use `configuration.merge_method` instead.' + reason: '`mergeMethod` will be removed.' + date: '2023-07-01T00:00:00+00:00' + criticality: breaking + owner: github/merge_queue + - location: MergeQueue.mergingEntries + description: '`mergingEntries` will be removed.' + reason: '`mergingEntries` will be removed.' + date: '2023-07-01T00:00:00+00:00' + criticality: breaking + owner: github/merge_queue + - location: MergeQueue.pendingRemovalEntries + description: '`pendingRemovalEntries` will be removed.' + reason: '`pendingRemovalEntries` will be removed.' + date: '2023-07-01T00:00:00+00:00' + criticality: breaking + owner: github/merge_queue + - location: MergeQueueEntry.blockedByMergeConflicts + description: '`blockedByMergeConflicts` will be removed. Use `state` instead.' + reason: '`blockedByMergeConflicts` will be removed.' + date: '2023-07-01T00:00:00+00:00' + criticality: breaking + owner: github/merge_queue + - location: MergeQueueEntry.checkStatus + description: '`checkStatus` will be removed. Use `state` instead.' + reason: '`checkStatus` will be removed.' + date: '2023-07-01T00:00:00+00:00' + criticality: breaking + owner: github/merge_queue + - location: MergeQueueEntry.hasJumpedQueue + description: '`hasJumpedQueue` will be removed. Use `jump` instead.' + reason: '`hasJumpedQueue` will be removed.' + date: '2023-07-01T00:00:00+00:00' + criticality: breaking + owner: github/merge_queue + - location: MergeQueueEntry.isSolo + description: '`isSolo` will be removed. Use `solo` instead.' + reason: '`isSolo` will be removed.' + date: '2023-07-01T00:00:00+00:00' + criticality: breaking + owner: github/merge_queue - location: ProjectV2ItemFieldGroup.field description: '`field` will be removed. Check out the `ProjectV2ItemFieldGroup#groupByField` diff --git a/data/graphql/ghec/graphql_upcoming_changes.public.yml b/data/graphql/ghec/graphql_upcoming_changes.public.yml index 17b213e367..a654de7fc9 100644 --- a/data/graphql/ghec/graphql_upcoming_changes.public.yml +++ b/data/graphql/ghec/graphql_upcoming_changes.public.yml @@ -192,6 +192,54 @@ upcoming_changes: date: '2023-04-01T00:00:00+00:00' criticality: breaking owner: jamestran201 + - location: MergeQueue.headOid + description: '`headOid` will be removed. Use `entry.headOid` instead.' + reason: '`headOid` will be removed.' + date: '2023-07-01T00:00:00+00:00' + criticality: breaking + owner: github/merge_queue + - location: MergeQueue.mergeMethod + description: '`mergeMethod` will be removed. Use `configuration.merge_method` instead.' + reason: '`mergeMethod` will be removed.' + date: '2023-07-01T00:00:00+00:00' + criticality: breaking + owner: github/merge_queue + - location: MergeQueue.mergingEntries + description: '`mergingEntries` will be removed.' + reason: '`mergingEntries` will be removed.' + date: '2023-07-01T00:00:00+00:00' + criticality: breaking + owner: github/merge_queue + - location: MergeQueue.pendingRemovalEntries + description: '`pendingRemovalEntries` will be removed.' + reason: '`pendingRemovalEntries` will be removed.' + date: '2023-07-01T00:00:00+00:00' + criticality: breaking + owner: github/merge_queue + - location: MergeQueueEntry.blockedByMergeConflicts + description: '`blockedByMergeConflicts` will be removed. Use `state` instead.' + reason: '`blockedByMergeConflicts` will be removed.' + date: '2023-07-01T00:00:00+00:00' + criticality: breaking + owner: github/merge_queue + - location: MergeQueueEntry.checkStatus + description: '`checkStatus` will be removed. Use `state` instead.' + reason: '`checkStatus` will be removed.' + date: '2023-07-01T00:00:00+00:00' + criticality: breaking + owner: github/merge_queue + - location: MergeQueueEntry.hasJumpedQueue + description: '`hasJumpedQueue` will be removed. Use `jump` instead.' + reason: '`hasJumpedQueue` will be removed.' + date: '2023-07-01T00:00:00+00:00' + criticality: breaking + owner: github/merge_queue + - location: MergeQueueEntry.isSolo + description: '`isSolo` will be removed. Use `solo` instead.' + reason: '`isSolo` will be removed.' + date: '2023-07-01T00:00:00+00:00' + criticality: breaking + owner: github/merge_queue - location: ProjectV2ItemFieldGroup.field description: '`field` will be removed. Check out the `ProjectV2ItemFieldGroup#groupByField` diff --git a/data/graphql/graphql_upcoming_changes.public.yml b/data/graphql/graphql_upcoming_changes.public.yml index 17b213e367..a654de7fc9 100644 --- a/data/graphql/graphql_upcoming_changes.public.yml +++ b/data/graphql/graphql_upcoming_changes.public.yml @@ -192,6 +192,54 @@ upcoming_changes: date: '2023-04-01T00:00:00+00:00' criticality: breaking owner: jamestran201 + - location: MergeQueue.headOid + description: '`headOid` will be removed. Use `entry.headOid` instead.' + reason: '`headOid` will be removed.' + date: '2023-07-01T00:00:00+00:00' + criticality: breaking + owner: github/merge_queue + - location: MergeQueue.mergeMethod + description: '`mergeMethod` will be removed. Use `configuration.merge_method` instead.' + reason: '`mergeMethod` will be removed.' + date: '2023-07-01T00:00:00+00:00' + criticality: breaking + owner: github/merge_queue + - location: MergeQueue.mergingEntries + description: '`mergingEntries` will be removed.' + reason: '`mergingEntries` will be removed.' + date: '2023-07-01T00:00:00+00:00' + criticality: breaking + owner: github/merge_queue + - location: MergeQueue.pendingRemovalEntries + description: '`pendingRemovalEntries` will be removed.' + reason: '`pendingRemovalEntries` will be removed.' + date: '2023-07-01T00:00:00+00:00' + criticality: breaking + owner: github/merge_queue + - location: MergeQueueEntry.blockedByMergeConflicts + description: '`blockedByMergeConflicts` will be removed. Use `state` instead.' + reason: '`blockedByMergeConflicts` will be removed.' + date: '2023-07-01T00:00:00+00:00' + criticality: breaking + owner: github/merge_queue + - location: MergeQueueEntry.checkStatus + description: '`checkStatus` will be removed. Use `state` instead.' + reason: '`checkStatus` will be removed.' + date: '2023-07-01T00:00:00+00:00' + criticality: breaking + owner: github/merge_queue + - location: MergeQueueEntry.hasJumpedQueue + description: '`hasJumpedQueue` will be removed. Use `jump` instead.' + reason: '`hasJumpedQueue` will be removed.' + date: '2023-07-01T00:00:00+00:00' + criticality: breaking + owner: github/merge_queue + - location: MergeQueueEntry.isSolo + description: '`isSolo` will be removed. Use `solo` instead.' + reason: '`isSolo` will be removed.' + date: '2023-07-01T00:00:00+00:00' + criticality: breaking + owner: github/merge_queue - location: ProjectV2ItemFieldGroup.field description: '`field` will be removed. Check out the `ProjectV2ItemFieldGroup#groupByField` diff --git a/data/release-notes/enterprise-server/3-6/0.yml b/data/release-notes/enterprise-server/3-6/0.yml index 9286815981..2b1423ae06 100644 --- a/data/release-notes/enterprise-server/3-6/0.yml +++ b/data/release-notes/enterprise-server/3-6/0.yml @@ -20,11 +20,11 @@ sections: notes: # https://github.com/github/releases/issues/1569 - | - GitHub has changed the supported algorithms and hash functions for all SSH connections to GitHub Enterprise Server, disabled the unencrypted and unauthenticated Git protocol, and optionally allowed the advertisement of an Ed25519 host key. For more information, see the [GitHub Blog](https://github.blog/2022-06-28-improving-git-protocol-security-on-github-enterprise-server/) and the following articles. + Site administrators can configure a cutoff date for allowing Git operations over SSH that use an RSA key and are signed by the SHA-1 hash function. By default, these connections will fail for RSA keys added to user accounts after the cutoff date of midnight UTC on August 1, 2022. For more information, see [Deprecations](#changes-to-supported-ssh-algorithms). [Updated: 2023-01-31] - - "[Configuring SSH connections to your instance](/admin/configuration/configuring-your-enterprise/configuring-ssh-connections-to-your-instance)" - - "[Enforcing repository management policies in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#configuring-anonymous-git-read-access)" - - "[Configuring host keys for your instance](/admin/configuration/configuring-your-enterprise/configuring-host-keys-for-your-instance)" + # https://github.com/github/releases/issues/1569 + - | + GitHub Enterprise Server optionally allows the advertisement of an Ed25519 host key. For more information, see "[Configuring host keys for your instance](/admin/configuration/configuring-your-enterprise/configuring-host-keys-for-your-instance)." # https://github.com/github/releases/issues/2341 - | @@ -280,6 +280,15 @@ sections: When editing a Markdown file in the web interface, clicking the **Preview** tab will automatically scroll to the place in the preview that you were editing. The scroll location is based on the position of your cursor before you clicked the **Preview** tab. changes: + # https://github.com/github/releases/issues/1569 + - | + The unencrypted and unauthenticated Git protocol is now disabled by default. If you do not re-enable the protocol after you upgrade to GitHub Enterprise Server 3.6 or later, `git://` connections on port 9418 will return the following error. + + ``` + The unauthenticated git protocol on port 9418 is no longer supported. + ``` + + If you wish to support the protocol in your environment, you must manually re-enable the feature. For more information, see "[Enforcing repository management policies in your enterprise](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#configuring-anonymous-git-read-access)" and the [GitHub Blog](https://github.blog/2022-06-28-improving-git-protocol-security-on-github-enterprise-server/). [Updated: 2023-01-31] - Interactive elements in the web interface such as links and buttons show a visible outline when focused with a keyboard, to help users find the current position on a page. In addition, when focused, form fields have a higher contrast outline. - If a user refreshes the page while creating a new issue or pull request, the assignees, reviewers, labels and projects will all be preserved. - | @@ -302,4 +311,15 @@ sections: After upgrading a replica node to GitHub Enterprise Server 3.6.0 or later and restarting replication, Git replication may stop progressing and continue to show `WARNING: git replication is behind the primary …`. If you encounter this known issue, [contact {% data variables.contact.enterprise_support %}](https://docs.github.com/en/enterprise-server@3.6/support/contacting-github-support/creating-a-support-ticket). [Updated: 2022-10-03] - | GitHub Pages builds may time out on instances in AWS that are configured for high availability. [Updated: 2022-11-28] - - '{% data reusables.release-notes.babeld-max-threads-performance-issue %}' \ No newline at end of file + - '{% data reusables.release-notes.babeld-max-threads-performance-issue %}' + + deprecations: + - heading: Changes to supported SSH algorithms + notes: + # https://github.com/github/releases/issues/1569 + - | + In GitHub Enterprise Server 3.6 and later, GitHub is changing the supported algorithms and hash functions for Git operations over SSH. By default, SSH connections that satisfy **both** of the following conditions will fail. + + {% data reusables.ssh.rsa-sha-1-connection-failure-criteria %} + + You can adjust the cutoff date. For more information, see "[Configuring SSH connections to your instance](/admin/configuration/configuring-your-enterprise/configuring-ssh-connections-to-your-instance)." [Updated: 2023-01-31] diff --git a/data/reusables/actions/change-retention-period-for-artifacts-logs.md b/data/reusables/actions/change-retention-period-for-artifacts-logs.md index 42ee3bc464..77c70f2d1a 100644 --- a/data/reusables/actions/change-retention-period-for-artifacts-logs.md +++ b/data/reusables/actions/change-retention-period-for-artifacts-logs.md @@ -1,2 +1,2 @@ -1. Under **Artifact and log retention**, enter a new value. +1. {% ifversion actions-cache-admin-ui %}In the "Artifact, log, and cache settings" section, u{% else %}U{% endif %}nder **Artifact and log retention**, enter a new value. 1. Click **Save** to apply the change. diff --git a/data/reusables/actions/workflow-dispatch-inputs-example.md b/data/reusables/actions/workflow-dispatch-inputs-example.md new file mode 100644 index 0000000000..552042ea3d --- /dev/null +++ b/data/reusables/actions/workflow-dispatch-inputs-example.md @@ -0,0 +1,34 @@ +```yaml +on: + workflow_dispatch: + inputs: + logLevel: + description: 'Log level' + required: true + default: 'warning' {% ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %} + type: choice + options: + - info + - warning + - debug {% endif %} + print_tags: + description: 'True to print to STDOUT' + required: true {% ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %} + type: boolean {% endif %} + tags: + description: 'Test scenario tags' + required: true {% ifversion fpt or ghec or ghes > 3.3 or ghae > 3.3 %} + type: string + environment: + description: 'Environment to run tests against' + type: environment + required: true {% endif %} + +jobs: + print-tag: + runs-on: ubuntu-latest + if: {% ifversion actions-unified-inputs %}{% raw %} ${{ inputs.print_tags }} {% endraw %}{% else %}{% raw %} ${{ github.event.inputs.print_tags == 'true' }} {% endraw %}{% endif %} + steps: + - name: Print the input tag to STDOUT + run: {% ifversion actions-unified-inputs %}echo {% raw %} The tags are ${{ inputs.tags }} {% endraw %}{% else %}echo {% raw %} The tags are ${{ github.event.inputs.tags }} {% endraw %}{% endif %} +``` diff --git a/data/reusables/actions/workflow-dispatch-inputs.md b/data/reusables/actions/workflow-dispatch-inputs.md index ffb4fa151d..0096580d42 100644 --- a/data/reusables/actions/workflow-dispatch-inputs.md +++ b/data/reusables/actions/workflow-dispatch-inputs.md @@ -1,5 +1,3 @@ -When using the `workflow_dispatch` event, you can optionally specify inputs that are passed to the workflow. - The triggered workflow receives the inputs in the {% ifversion actions-unified-inputs %}`inputs`{% else %}`github.event.inputs`{% endif %} context. For more information, see "[Contexts]({% ifversion actions-unified-inputs %}/actions/learn-github-actions/contexts#inputs-context{% else %}/actions/learn-github-actions/contexts#github-context{% endif %})." {% data reusables.actions.inputs-vs-github-event-inputs %} diff --git a/data/reusables/actions/workflow-dispatch.md b/data/reusables/actions/workflow-dispatch.md new file mode 100644 index 0000000000..96b746c427 --- /dev/null +++ b/data/reusables/actions/workflow-dispatch.md @@ -0,0 +1 @@ +When using the `workflow_dispatch` event, you can optionally specify inputs that are passed to the workflow. \ No newline at end of file diff --git a/data/reusables/form-schema/required-key.md b/data/reusables/form-schema/required-key.md index ac51643433..80aedc05f8 100644 --- a/data/reusables/form-schema/required-key.md +++ b/data/reusables/form-schema/required-key.md @@ -1 +1 @@ -| `required` | Prevents form submission until element is completed. | Optional | Boolean | false | {% octicon "dash" aria-label="The dash icon" %} | +| `required` | Prevents form submission until element is completed. Only for public repositories. | Optional | Boolean | false | {% octicon "dash" aria-label="The dash icon" %} | diff --git a/data/reusables/gpg/copy-ssh-public-key.md b/data/reusables/gpg/copy-ssh-public-key.md index 3306792aba..9811ec0c81 100644 --- a/data/reusables/gpg/copy-ssh-public-key.md +++ b/data/reusables/gpg/copy-ssh-public-key.md @@ -23,7 +23,7 @@ {% tip %} - **Tip:** If `clip` isn't working, you can locate the hidden `.ssh` folder, open the file in your favorite text editor, and copy it to your clipboard. + **Tip:** With Windows Subsystem for Linux (WSL), you can use `clip.exe`. Otherwise if `clip` isn't working, you can locate the hidden `.ssh` folder, open the file in your favorite text editor, and copy it to your clipboard. {% endtip %} {% endwindows %} diff --git a/data/reusables/sponsors/paypal-deprecation.md b/data/reusables/sponsors/paypal-deprecation.md new file mode 100644 index 0000000000..5551fe5e58 --- /dev/null +++ b/data/reusables/sponsors/paypal-deprecation.md @@ -0,0 +1,9 @@ +{% note %} + +**Note**: Starting on **February 23rd, 2023**, {% data variables.product.prodname_sponsors %} will no longer support PayPal as a payment processor. Sponsors that currently use PayPal will be required to update their payment method to pay by credit or debit card. + +If your sponsorship is still using PayPal as a payment method, it will be cancelled on your next billing date. For example: if you have a recurring sponsorship and paid on February 22nd using PayPal, your sponsorship will be cancelled on your next billing date on March 22nd. + +For more information about updating your payment method, see "[Adding or editing a payment method](/billing/managing-your-github-billing-settings/adding-or-editing-a-payment-method)." + +{% endnote %} \ No newline at end of file diff --git a/data/ui.yml b/data/ui.yml index 879ad7b7ff..ea68ef2cc6 100644 --- a/data/ui.yml +++ b/data/ui.yml @@ -46,7 +46,7 @@ homepage: toc: getting_started: Getting started popular: Popular - guides: Guides + startHere: Start here whats_new: What's new videos: Videos all_changelogs: All changelog posts diff --git a/data/variables/product.yml b/data/variables/product.yml index cd2e02fa53..74e812e578 100644 --- a/data/variables/product.yml +++ b/data/variables/product.yml @@ -47,6 +47,8 @@ prodname_campus_program: 'GitHub Campus Program' prodname_student_pack: 'GitHub Student Developer Pack' prodname_global_campus: 'GitHub Global Campus' prodname_community_exchange: 'GitHub Community Exchange' +prodname_student_leader_program: 'GitHub Campus Experts' +prodname_student_leader_program_singular: 'GitHub Campus Expert' # GitHub CLI prodname_cli: 'GitHub CLI' diff --git a/lib/all-products.js b/lib/all-products.js index 1593436582..0c71575607 100644 --- a/lib/all-products.js +++ b/lib/all-products.js @@ -3,9 +3,10 @@ import path from 'path' import frontmatter from './read-frontmatter.js' import getApplicableVersions from './get-applicable-versions.js' import removeFPTFromPath from './remove-fpt-from-path.js' +import { ROOT } from './constants.js' // Both internal and external products are specified in content/index.md -const homepage = path.posix.join(process.cwd(), 'content/index.md') +const homepage = path.posix.join(ROOT, 'content/index.md') const { data } = frontmatter(await fs.readFile(homepage, 'utf8')) export const productIds = data.children @@ -15,7 +16,7 @@ const internalProducts = {} for (const productId of productIds) { const relPath = productId - const dir = path.posix.join('content', relPath) + const dir = path.join(ROOT, 'content', relPath) // Early Access may not exist in the current checkout try { diff --git a/lib/constants.js b/lib/constants.js index 370bbc99a1..8a98f93edf 100644 --- a/lib/constants.js +++ b/lib/constants.js @@ -1,2 +1,3 @@ +export const ROOT = process.env.ROOT || '.' export const USER_LANGUAGE_COOKIE_NAME = 'user_language' export const TRANSLATIONS_ROOT = process.env.TRANSLATIONS_ROOT || 'translations' diff --git a/lib/find-page.js b/lib/find-page.js index d461a965bb..14f51a0306 100644 --- a/lib/find-page.js +++ b/lib/find-page.js @@ -3,7 +3,7 @@ import getRedirect from './get-redirect.js' export default function findPage(href, pages, redirects) { // remove any fragments - href = href.replace(/#.*$/, '') + href = new URL(href, 'http://example.com').pathname const redirectsContext = { redirects, pages } diff --git a/lib/frontmatter.js b/lib/frontmatter.js index d61fd003f5..a61bbb51c0 100644 --- a/lib/frontmatter.js +++ b/lib/frontmatter.js @@ -97,7 +97,7 @@ export const schema = { type: 'array', items: { type: 'string' }, }, - guides: { + startHere: { type: 'array', items: { type: 'string' }, }, diff --git a/lib/graphql/static/changelog.json b/lib/graphql/static/changelog.json index bc164e1486..cf1bb63bc0 100644 --- a/lib/graphql/static/changelog.json +++ b/lib/graphql/static/changelog.json @@ -1,4 +1,29 @@ [ + { + "schemaChanges": [ + { + "title": "The GraphQL schema includes these changes:", + "changes": [] + } + ], + "previewChanges": [], + "upcomingChanges": [ + { + "title": "The following changes will be made to the schema:", + "changes": [ + "

On member MergeQueue.headOid:headOid will be removed. Use entry.headOid instead. Effective 2023-07-01.

", + "

On member MergeQueue.mergeMethod:mergeMethod will be removed. Use configuration.merge_method instead. Effective 2023-07-01.

", + "

On member MergeQueue.mergingEntries:mergingEntries will be removed. Effective 2023-07-01.

", + "

On member MergeQueue.pendingRemovalEntries:pendingRemovalEntries will be removed. Effective 2023-07-01.

", + "

On member MergeQueueEntry.blockedByMergeConflicts:blockedByMergeConflicts will be removed. Use state instead. Effective 2023-07-01.

", + "

On member MergeQueueEntry.checkStatus:checkStatus will be removed. Use state instead. Effective 2023-07-01.

", + "

On member MergeQueueEntry.hasJumpedQueue:hasJumpedQueue will be removed. Use jump instead. Effective 2023-07-01.

", + "

On member MergeQueueEntry.isSolo:isSolo will be removed. Use solo instead. Effective 2023-07-01.

" + ] + } + ], + "date": "2023-02-07" + }, { "schemaChanges": [ { diff --git a/lib/graphql/static/upcoming-changes.json b/lib/graphql/static/upcoming-changes.json index 3a5b612f0d..e597184862 100644 --- a/lib/graphql/static/upcoming-changes.json +++ b/lib/graphql/static/upcoming-changes.json @@ -8,6 +8,70 @@ "date": "2023-07-01", "criticality": "breaking", "owner": "stevepopovich" + }, + { + "location": "MergeQueueEntry.isSolo", + "description": "

isSolo will be removed. Use solo instead.

", + "reason": "

isSolo will be removed.

", + "date": "2023-07-01", + "criticality": "breaking", + "owner": "github/merge_queue" + }, + { + "location": "MergeQueueEntry.hasJumpedQueue", + "description": "

hasJumpedQueue will be removed. Use jump instead.

", + "reason": "

hasJumpedQueue will be removed.

", + "date": "2023-07-01", + "criticality": "breaking", + "owner": "github/merge_queue" + }, + { + "location": "MergeQueueEntry.checkStatus", + "description": "

checkStatus will be removed. Use state instead.

", + "reason": "

checkStatus will be removed.

", + "date": "2023-07-01", + "criticality": "breaking", + "owner": "github/merge_queue" + }, + { + "location": "MergeQueueEntry.blockedByMergeConflicts", + "description": "

blockedByMergeConflicts will be removed. Use state instead.

", + "reason": "

blockedByMergeConflicts will be removed.

", + "date": "2023-07-01", + "criticality": "breaking", + "owner": "github/merge_queue" + }, + { + "location": "MergeQueue.pendingRemovalEntries", + "description": "

pendingRemovalEntries will be removed.

", + "reason": "

pendingRemovalEntries will be removed.

", + "date": "2023-07-01", + "criticality": "breaking", + "owner": "github/merge_queue" + }, + { + "location": "MergeQueue.mergingEntries", + "description": "

mergingEntries will be removed.

", + "reason": "

mergingEntries will be removed.

", + "date": "2023-07-01", + "criticality": "breaking", + "owner": "github/merge_queue" + }, + { + "location": "MergeQueue.mergeMethod", + "description": "

mergeMethod will be removed. Use configuration.merge_method instead.

", + "reason": "

mergeMethod will be removed.

", + "date": "2023-07-01", + "criticality": "breaking", + "owner": "github/merge_queue" + }, + { + "location": "MergeQueue.headOid", + "description": "

headOid will be removed. Use entry.headOid instead.

", + "reason": "

headOid will be removed.

", + "date": "2023-07-01", + "criticality": "breaking", + "owner": "github/merge_queue" } ], "2023-04-01": [ @@ -248,6 +312,70 @@ "date": "2023-07-01", "criticality": "breaking", "owner": "stevepopovich" + }, + { + "location": "MergeQueueEntry.isSolo", + "description": "

isSolo will be removed. Use solo instead.

", + "reason": "

isSolo will be removed.

", + "date": "2023-07-01", + "criticality": "breaking", + "owner": "github/merge_queue" + }, + { + "location": "MergeQueueEntry.hasJumpedQueue", + "description": "

hasJumpedQueue will be removed. Use jump instead.

", + "reason": "

hasJumpedQueue will be removed.

", + "date": "2023-07-01", + "criticality": "breaking", + "owner": "github/merge_queue" + }, + { + "location": "MergeQueueEntry.checkStatus", + "description": "

checkStatus will be removed. Use state instead.

", + "reason": "

checkStatus will be removed.

", + "date": "2023-07-01", + "criticality": "breaking", + "owner": "github/merge_queue" + }, + { + "location": "MergeQueueEntry.blockedByMergeConflicts", + "description": "

blockedByMergeConflicts will be removed. Use state instead.

", + "reason": "

blockedByMergeConflicts will be removed.

", + "date": "2023-07-01", + "criticality": "breaking", + "owner": "github/merge_queue" + }, + { + "location": "MergeQueue.pendingRemovalEntries", + "description": "

pendingRemovalEntries will be removed.

", + "reason": "

pendingRemovalEntries will be removed.

", + "date": "2023-07-01", + "criticality": "breaking", + "owner": "github/merge_queue" + }, + { + "location": "MergeQueue.mergingEntries", + "description": "

mergingEntries will be removed.

", + "reason": "

mergingEntries will be removed.

", + "date": "2023-07-01", + "criticality": "breaking", + "owner": "github/merge_queue" + }, + { + "location": "MergeQueue.mergeMethod", + "description": "

mergeMethod will be removed. Use configuration.merge_method instead.

", + "reason": "

mergeMethod will be removed.

", + "date": "2023-07-01", + "criticality": "breaking", + "owner": "github/merge_queue" + }, + { + "location": "MergeQueue.headOid", + "description": "

headOid will be removed. Use entry.headOid instead.

", + "reason": "

headOid will be removed.

", + "date": "2023-07-01", + "criticality": "breaking", + "owner": "github/merge_queue" } ], "2023-04-01": [ @@ -1140,6 +1268,70 @@ "date": "2023-07-01", "criticality": "breaking", "owner": "stevepopovich" + }, + { + "location": "MergeQueueEntry.isSolo", + "description": "

isSolo will be removed. Use solo instead.

", + "reason": "

isSolo will be removed.

", + "date": "2023-07-01", + "criticality": "breaking", + "owner": "github/merge_queue" + }, + { + "location": "MergeQueueEntry.hasJumpedQueue", + "description": "

hasJumpedQueue will be removed. Use jump instead.

", + "reason": "

hasJumpedQueue will be removed.

", + "date": "2023-07-01", + "criticality": "breaking", + "owner": "github/merge_queue" + }, + { + "location": "MergeQueueEntry.checkStatus", + "description": "

checkStatus will be removed. Use state instead.

", + "reason": "

checkStatus will be removed.

", + "date": "2023-07-01", + "criticality": "breaking", + "owner": "github/merge_queue" + }, + { + "location": "MergeQueueEntry.blockedByMergeConflicts", + "description": "

blockedByMergeConflicts will be removed. Use state instead.

", + "reason": "

blockedByMergeConflicts will be removed.

", + "date": "2023-07-01", + "criticality": "breaking", + "owner": "github/merge_queue" + }, + { + "location": "MergeQueue.pendingRemovalEntries", + "description": "

pendingRemovalEntries will be removed.

", + "reason": "

pendingRemovalEntries will be removed.

", + "date": "2023-07-01", + "criticality": "breaking", + "owner": "github/merge_queue" + }, + { + "location": "MergeQueue.mergingEntries", + "description": "

mergingEntries will be removed.

", + "reason": "

mergingEntries will be removed.

", + "date": "2023-07-01", + "criticality": "breaking", + "owner": "github/merge_queue" + }, + { + "location": "MergeQueue.mergeMethod", + "description": "

mergeMethod will be removed. Use configuration.merge_method instead.

", + "reason": "

mergeMethod will be removed.

", + "date": "2023-07-01", + "criticality": "breaking", + "owner": "github/merge_queue" + }, + { + "location": "MergeQueue.headOid", + "description": "

headOid will be removed. Use entry.headOid instead.

", + "reason": "

headOid will be removed.

", + "date": "2023-07-01", + "criticality": "breaking", + "owner": "github/merge_queue" } ], "2023-04-01": [ diff --git a/lib/languages.js b/lib/languages.js index 6d9168ac28..c52fa7ecc5 100644 --- a/lib/languages.js +++ b/lib/languages.js @@ -4,7 +4,7 @@ import dotenv from 'dotenv' -import { TRANSLATIONS_ROOT } from './constants.js' +import { ROOT, TRANSLATIONS_ROOT } from './constants.js' import path from 'path' dotenv.config() @@ -21,7 +21,7 @@ const possibleEnvVars = { } function getRoot(languageCode) { - if (languageCode === 'en') return '' + if (languageCode === 'en') return ROOT if (languageCode in possibleEnvVars) { const possibleEnvVar = possibleEnvVars[languageCode] if (possibleEnvVar) { diff --git a/lib/redirects/precompile.js b/lib/redirects/precompile.js index f7b7f6ca00..53b1ffaad2 100755 --- a/lib/redirects/precompile.js +++ b/lib/redirects/precompile.js @@ -1,14 +1,8 @@ -import path from 'path' -import { fileURLToPath } from 'url' - import { readCompressedJsonFileFallback } from '../read-json-file.js' import getExceptionRedirects from './exception-redirects.js' - import { latest } from '../enterprise-server-releases.js' -const __dirname = path.dirname(fileURLToPath(import.meta.url)) - -const EXCEPTIONS_FILE = path.join(__dirname, './static/redirect-exceptions.txt') +const EXCEPTIONS_FILE = './lib/redirects/static/redirect-exceptions.txt' // This function runs at server warmup and precompiles possible redirect routes. // It outputs them in key-value pairs within a neat Javascript object: { oldPath: newPath } diff --git a/lib/rest/static/decorated/api.github.com.2022-11-28.json b/lib/rest/static/decorated/api.github.com.2022-11-28.json index 24bb4ea917..b592ba12ed 100644 --- a/lib/rest/static/decorated/api.github.com.2022-11-28.json +++ b/lib/rest/static/decorated/api.github.com.2022-11-28.json @@ -344164,7 +344164,7 @@ } ], "previews": [], - "descriptionHTML": "

Start a source import to a GitHub repository using GitHub Importer.

", + "descriptionHTML": "

Start a source import to a GitHub repository using GitHub Importer. Importing into a GitHub repository with GitHub Actions enabled is not supported and will return a status 422 Unprocessable Entity response.

", "statusCodes": [ { "httpStatusCode": "201", diff --git a/lib/rest/static/decorated/ghec.2022-11-28.json b/lib/rest/static/decorated/ghec.2022-11-28.json index 3b38b2ac98..123741c5d6 100644 --- a/lib/rest/static/decorated/ghec.2022-11-28.json +++ b/lib/rest/static/decorated/ghec.2022-11-28.json @@ -357334,7 +357334,7 @@ } ], "previews": [], - "descriptionHTML": "

Start a source import to a GitHub Enterprise Cloud repository using GitHub Enterprise Cloud Importer.

", + "descriptionHTML": "

Start a source import to a GitHub Enterprise Cloud repository using GitHub Enterprise Cloud Importer. Importing into a GitHub Enterprise Cloud repository with GitHub Actions enabled is not supported and will return a status 422 Unprocessable Entity response.

", "statusCodes": [ { "httpStatusCode": "201", diff --git a/lib/webhooks/static/decorated/api.github.com.json b/lib/webhooks/static/decorated/api.github.com.json index 165d20f4e7..ee423705cc 100644 --- a/lib/webhooks/static/decorated/api.github.com.json +++ b/lib/webhooks/static/decorated/api.github.com.json @@ -57202,7 +57202,7 @@ "merge_group": { "default": { "descriptionHtml": "

Status checks were requested for a merge group. This happens when a merge group is created or added to by the merge queue because a pull request was queued.

\n

When you receive this event, you should perform checks on the head SHA and report status back using check runs or commit statuses.

", - "summaryHtml": "

This event occurs when there is activity relating to a merge group in a merge queue. For more information, see \"Managing a merge queue.\"

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Merge queues\" repository permission.

\n

Note: The pull request merge queue feature is currently in limited private beta and subject to change.

", + "summaryHtml": "

This event occurs when there is activity relating to a merge group in a merge queue. For more information, see \"Managing a merge queue.\"

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Merge queues\" repository permission.

\n

Note: The pull request merge queue feature is currently in public beta and subject to change.

", "bodyParameters": [ { "type": "string", diff --git a/lib/webhooks/static/decorated/ghec.json b/lib/webhooks/static/decorated/ghec.json index 7c7371af9d..7d0316d8f9 100644 --- a/lib/webhooks/static/decorated/ghec.json +++ b/lib/webhooks/static/decorated/ghec.json @@ -57202,7 +57202,7 @@ "merge_group": { "default": { "descriptionHtml": "

Status checks were requested for a merge group. This happens when a merge group is created or added to by the merge queue because a pull request was queued.

\n

When you receive this event, you should perform checks on the head SHA and report status back using check runs or commit statuses.

", - "summaryHtml": "

This event occurs when there is activity relating to a merge group in a merge queue. For more information, see \"Managing a merge queue.\"

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Merge queues\" repository permission.

\n

Note: The pull request merge queue feature is currently in limited private beta and subject to change.

", + "summaryHtml": "

This event occurs when there is activity relating to a merge group in a merge queue. For more information, see \"Managing a merge queue.\"

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Merge queues\" repository permission.

\n

Note: The pull request merge queue feature is currently in public beta and subject to change.

", "bodyParameters": [ { "type": "string", diff --git a/lib/webhooks/static/decorated/ghes-3.7.json b/lib/webhooks/static/decorated/ghes-3.7.json index 7b68d6d75a..ea6dc52d1a 100644 --- a/lib/webhooks/static/decorated/ghes-3.7.json +++ b/lib/webhooks/static/decorated/ghes-3.7.json @@ -56982,7 +56982,7 @@ "merge_group": { "default": { "descriptionHtml": "

Status checks were requested for a merge group. This happens when a merge group is created or added to by the merge queue because a pull request was queued.

\n

When you receive this event, you should perform checks on the head SHA and report status back using check runs or commit statuses.

", - "summaryHtml": "

This event occurs when there is activity relating to a merge group in a merge queue. For more information, see \"Managing a merge queue.\"

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Merge queues\" repository permission.

\n

Note: The pull request merge queue feature is currently in limited private beta and subject to change.

", + "summaryHtml": "

This event occurs when there is activity relating to a merge group in a merge queue. For more information, see \"Managing a merge queue.\"

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Merge queues\" repository permission.

\n

Note: The pull request merge queue feature is currently in public beta and subject to change.

", "bodyParameters": [ { "type": "string", diff --git a/lib/webhooks/static/decorated/github.ae.json b/lib/webhooks/static/decorated/github.ae.json index de59324269..51c192d5b6 100644 --- a/lib/webhooks/static/decorated/github.ae.json +++ b/lib/webhooks/static/decorated/github.ae.json @@ -56982,7 +56982,7 @@ "merge_group": { "default": { "descriptionHtml": "

Status checks were requested for a merge group. This happens when a merge group is created or added to by the merge queue because a pull request was queued.

\n

When you receive this event, you should perform checks on the head SHA and report status back using check runs or commit statuses.

", - "summaryHtml": "

This event occurs when there is activity relating to a merge group in a merge queue. For more information, see \"Managing a merge queue.\"

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Merge queues\" repository permission.

\n

Note: The pull request merge queue feature is currently in limited private beta and subject to change.

", + "summaryHtml": "

This event occurs when there is activity relating to a merge group in a merge queue. For more information, see \"Managing a merge queue.\"

\n

To subscribe to this event, a GitHub App must have at least read-level access for the \"Merge queues\" repository permission.

\n

Note: The pull request merge queue feature is currently in public beta and subject to change.

", "bodyParameters": [ { "type": "string", diff --git a/middleware/contextualizers/features.js b/middleware/contextualizers/features.js index 0de51a8781..c05c71329e 100644 --- a/middleware/contextualizers/features.js +++ b/middleware/contextualizers/features.js @@ -1,3 +1,6 @@ +import path from 'path' + +import { ROOT } from '../../lib/constants.js' import getApplicableVersions from '../../lib/get-applicable-versions.js' import { getDeepDataByLanguage } from '../../lib/get-data.js' @@ -29,7 +32,10 @@ function getFeaturesByVersion(currentVersion) { // Determine whether the currentVersion belongs to the list of versions the feature is available in. for (const [featureName, feature] of Object.entries(allFeatures)) { const { versions } = feature - const applicableVersions = getApplicableVersions(versions, `data/features/${featureName}.yml`) + const applicableVersions = getApplicableVersions( + versions, + path.join(ROOT, `data/features/${featureName}.yml`) + ) // Adding the resulting boolean to the context object gives us the ability to use // `{% if featureName ... %}` conditionals in content files. diff --git a/middleware/find-page.js b/middleware/find-page.js index eae0bab518..7e1097cddd 100644 --- a/middleware/find-page.js +++ b/middleware/find-page.js @@ -1,12 +1,13 @@ import path from 'path' import { existsSync } from 'fs' +import { ROOT } from '../lib/constants.js' import Page from '../lib/page.js' import { languageKeys } from '../lib/languages.js' const languagePrefixRegex = new RegExp(`^/(${languageKeys.join('|')})(/|$)`) const englishPrefixRegex = /^\/en(\/|$)/ -const CONTENT_ROOT = 'content' +const CONTENT_ROOT = path.join(ROOT, 'content') export default async function findPage( req, diff --git a/next.config.js b/next.config.js index 50aa6fcec0..e096412938 100644 --- a/next.config.js +++ b/next.config.js @@ -3,8 +3,9 @@ import path from 'path' import frontmatter from 'gray-matter' import { languageKeys } from './lib/languages.js' +import { ROOT } from './lib/constants.js' -const homepage = path.posix.join(process.cwd(), 'content/index.md') +const homepage = path.posix.join(ROOT, 'content/index.md') const { data } = frontmatter(fs.readFileSync(homepage, 'utf8')) const productIds = data.children diff --git a/package-lock.json b/package-lock.json index 32a58f8752..3d72df984b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -112,8 +112,8 @@ "@types/react-dom": "^18.0.5", "@types/react-syntax-highlighter": "^15.5.2", "@types/uuid": "^9.0.0", - "@typescript-eslint/eslint-plugin": "5.48.0", - "@typescript-eslint/parser": "5.48.0", + "@typescript-eslint/eslint-plugin": "5.50.0", + "@typescript-eslint/parser": "5.50.0", "babel-loader": "^9.0.1", "babel-plugin-styled-components": "^2.0.7", "babel-preset-env": "^1.7.0", @@ -123,7 +123,7 @@ "cross-env": "^7.0.3", "csp-parse": "0.0.2", "dedent": "^0.7.0", - "eslint": "8.31.0", + "eslint": "8.33.0", "eslint-config-prettier": "^8.5.0", "eslint-config-standard": "^17.0.0", "eslint-plugin-import": "^2.26.0", @@ -4712,15 +4712,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.0.tgz", - "integrity": "sha512-SVLafp0NXpoJY7ut6VFVUU9I+YeFsDzeQwtK0WZ+xbRN3mtxJ08je+6Oi2N89qDn087COdO0u3blKZNv9VetRQ==", + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.50.0.tgz", + "integrity": "sha512-vwksQWSFZiUhgq3Kv7o1Jcj0DUNylwnIlGvKvLLYsq8pAWha6/WCnXUeaSoNNha/K7QSf2+jvmkxggC1u3pIwQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.48.0", - "@typescript-eslint/type-utils": "5.48.0", - "@typescript-eslint/utils": "5.48.0", + "@typescript-eslint/scope-manager": "5.50.0", + "@typescript-eslint/type-utils": "5.50.0", + "@typescript-eslint/utils": "5.50.0", "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", "regexpp": "^3.2.0", @@ -4762,14 +4763,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.48.0.tgz", - "integrity": "sha512-1mxNA8qfgxX8kBvRDIHEzrRGrKHQfQlbW6iHyfHYS0Q4X1af+S6mkLNtgCOsGVl8+/LUPrqdHMssAemkrQ01qg==", + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.50.0.tgz", + "integrity": "sha512-KCcSyNaogUDftK2G9RXfQyOCt51uB5yqC6pkUYqhYh8Kgt+DwR5M0EwEAxGPy/+DH6hnmKeGsNhiZRQxjH71uQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.48.0", - "@typescript-eslint/types": "5.48.0", - "@typescript-eslint/typescript-estree": "5.48.0", + "@typescript-eslint/scope-manager": "5.50.0", + "@typescript-eslint/types": "5.50.0", + "@typescript-eslint/typescript-estree": "5.50.0", "debug": "^4.3.4" }, "engines": { @@ -4806,13 +4807,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.48.0.tgz", - "integrity": "sha512-0AA4LviDtVtZqlyUQnZMVHydDATpD9SAX/RC5qh6cBd3xmyWvmXYF+WT1oOmxkeMnWDlUVTwdODeucUnjz3gow==", + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.50.0.tgz", + "integrity": "sha512-rt03kaX+iZrhssaT974BCmoUikYtZI24Vp/kwTSy841XhiYShlqoshRFDvN1FKKvU2S3gK+kcBW1EA7kNUrogg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.48.0", - "@typescript-eslint/visitor-keys": "5.48.0" + "@typescript-eslint/types": "5.50.0", + "@typescript-eslint/visitor-keys": "5.50.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -4823,13 +4824,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.48.0.tgz", - "integrity": "sha512-vbtPO5sJyFjtHkGlGK4Sthmta0Bbls4Onv0bEqOGm7hP9h8UpRsHJwsrCiWtCUndTRNQO/qe6Ijz9rnT/DB+7g==", + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.50.0.tgz", + "integrity": "sha512-dcnXfZ6OGrNCO7E5UY/i0ktHb7Yx1fV6fnQGGrlnfDhilcs6n19eIRcvLBqx6OQkrPaFlDPk3OJ0WlzQfrV0bQ==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.48.0", - "@typescript-eslint/utils": "5.48.0", + "@typescript-eslint/typescript-estree": "5.50.0", + "@typescript-eslint/utils": "5.50.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -4867,9 +4868,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.48.0.tgz", - "integrity": "sha512-UTe67B0Ypius0fnEE518NB2N8gGutIlTojeTg4nt0GQvikReVkurqxd2LvYa9q9M5MQ6rtpNyWTBxdscw40Xhw==", + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.50.0.tgz", + "integrity": "sha512-atruOuJpir4OtyNdKahiHZobPKFvZnBnfDiyEaBf6d9vy9visE7gDjlmhl+y29uxZ2ZDgvXijcungGFjGGex7w==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -4880,13 +4881,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.0.tgz", - "integrity": "sha512-7pjd94vvIjI1zTz6aq/5wwE/YrfIyEPLtGJmRfyNR9NYIW+rOvzzUv3Cmq2hRKpvt6e9vpvPUQ7puzX7VSmsEw==", + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.50.0.tgz", + "integrity": "sha512-Gq4zapso+OtIZlv8YNAStFtT6d05zyVCK7Fx3h5inlLBx2hWuc/0465C2mg/EQDDU2LKe52+/jN4f0g9bd+kow==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.48.0", - "@typescript-eslint/visitor-keys": "5.48.0", + "@typescript-eslint/types": "5.50.0", + "@typescript-eslint/visitor-keys": "5.50.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -4924,16 +4925,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.48.0.tgz", - "integrity": "sha512-x2jrMcPaMfsHRRIkL+x96++xdzvrdBCnYRd5QiW5Wgo1OB4kDYPbC1XjWP/TNqlfK93K/lUL92erq5zPLgFScQ==", + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.50.0.tgz", + "integrity": "sha512-v/AnUFImmh8G4PH0NDkf6wA8hujNNcrwtecqW4vtQ1UOSNBaZl49zP1SHoZ/06e+UiwzHpgb5zP5+hwlYYWYAw==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.48.0", - "@typescript-eslint/types": "5.48.0", - "@typescript-eslint/typescript-estree": "5.48.0", + "@typescript-eslint/scope-manager": "5.50.0", + "@typescript-eslint/types": "5.50.0", + "@typescript-eslint/typescript-estree": "5.50.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0", "semver": "^7.3.7" @@ -4968,12 +4969,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.0.tgz", - "integrity": "sha512-5motVPz5EgxQ0bHjut3chzBkJ3Z3sheYVcSwS5BpHZpLqSptSmELNtGixmgj65+rIfhvtQTz5i9OP2vtzdDH7Q==", + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.50.0.tgz", + "integrity": "sha512-cdMeD9HGu6EXIeGOh2yVW6oGf9wq8asBgZx7nsR/D36gTfQ0odE5kcRYe5M81vjEFAcPeugXrHg78Imu55F6gg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.48.0", + "@typescript-eslint/types": "5.50.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -8100,9 +8101,9 @@ } }, "node_modules/eslint": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.31.0.tgz", - "integrity": "sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==", + "version": "8.33.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.33.0.tgz", + "integrity": "sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==", "dev": true, "dependencies": { "@eslint/eslintrc": "^1.4.1", @@ -24338,15 +24339,16 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "5.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.48.0.tgz", - "integrity": "sha512-SVLafp0NXpoJY7ut6VFVUU9I+YeFsDzeQwtK0WZ+xbRN3mtxJ08je+6Oi2N89qDn087COdO0u3blKZNv9VetRQ==", + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.50.0.tgz", + "integrity": "sha512-vwksQWSFZiUhgq3Kv7o1Jcj0DUNylwnIlGvKvLLYsq8pAWha6/WCnXUeaSoNNha/K7QSf2+jvmkxggC1u3pIwQ==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.48.0", - "@typescript-eslint/type-utils": "5.48.0", - "@typescript-eslint/utils": "5.48.0", + "@typescript-eslint/scope-manager": "5.50.0", + "@typescript-eslint/type-utils": "5.50.0", + "@typescript-eslint/utils": "5.50.0", "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "natural-compare-lite": "^1.4.0", "regexpp": "^3.2.0", @@ -24366,14 +24368,14 @@ } }, "@typescript-eslint/parser": { - "version": "5.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.48.0.tgz", - "integrity": "sha512-1mxNA8qfgxX8kBvRDIHEzrRGrKHQfQlbW6iHyfHYS0Q4X1af+S6mkLNtgCOsGVl8+/LUPrqdHMssAemkrQ01qg==", + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.50.0.tgz", + "integrity": "sha512-KCcSyNaogUDftK2G9RXfQyOCt51uB5yqC6pkUYqhYh8Kgt+DwR5M0EwEAxGPy/+DH6hnmKeGsNhiZRQxjH71uQ==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.48.0", - "@typescript-eslint/types": "5.48.0", - "@typescript-eslint/typescript-estree": "5.48.0", + "@typescript-eslint/scope-manager": "5.50.0", + "@typescript-eslint/types": "5.50.0", + "@typescript-eslint/typescript-estree": "5.50.0", "debug": "^4.3.4" }, "dependencies": { @@ -24389,23 +24391,23 @@ } }, "@typescript-eslint/scope-manager": { - "version": "5.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.48.0.tgz", - "integrity": "sha512-0AA4LviDtVtZqlyUQnZMVHydDATpD9SAX/RC5qh6cBd3xmyWvmXYF+WT1oOmxkeMnWDlUVTwdODeucUnjz3gow==", + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.50.0.tgz", + "integrity": "sha512-rt03kaX+iZrhssaT974BCmoUikYtZI24Vp/kwTSy841XhiYShlqoshRFDvN1FKKvU2S3gK+kcBW1EA7kNUrogg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.48.0", - "@typescript-eslint/visitor-keys": "5.48.0" + "@typescript-eslint/types": "5.50.0", + "@typescript-eslint/visitor-keys": "5.50.0" } }, "@typescript-eslint/type-utils": { - "version": "5.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.48.0.tgz", - "integrity": "sha512-vbtPO5sJyFjtHkGlGK4Sthmta0Bbls4Onv0bEqOGm7hP9h8UpRsHJwsrCiWtCUndTRNQO/qe6Ijz9rnT/DB+7g==", + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.50.0.tgz", + "integrity": "sha512-dcnXfZ6OGrNCO7E5UY/i0ktHb7Yx1fV6fnQGGrlnfDhilcs6n19eIRcvLBqx6OQkrPaFlDPk3OJ0WlzQfrV0bQ==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "5.48.0", - "@typescript-eslint/utils": "5.48.0", + "@typescript-eslint/typescript-estree": "5.50.0", + "@typescript-eslint/utils": "5.50.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -24422,19 +24424,19 @@ } }, "@typescript-eslint/types": { - "version": "5.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.48.0.tgz", - "integrity": "sha512-UTe67B0Ypius0fnEE518NB2N8gGutIlTojeTg4nt0GQvikReVkurqxd2LvYa9q9M5MQ6rtpNyWTBxdscw40Xhw==", + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.50.0.tgz", + "integrity": "sha512-atruOuJpir4OtyNdKahiHZobPKFvZnBnfDiyEaBf6d9vy9visE7gDjlmhl+y29uxZ2ZDgvXijcungGFjGGex7w==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.0.tgz", - "integrity": "sha512-7pjd94vvIjI1zTz6aq/5wwE/YrfIyEPLtGJmRfyNR9NYIW+rOvzzUv3Cmq2hRKpvt6e9vpvPUQ7puzX7VSmsEw==", + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.50.0.tgz", + "integrity": "sha512-Gq4zapso+OtIZlv8YNAStFtT6d05zyVCK7Fx3h5inlLBx2hWuc/0465C2mg/EQDDU2LKe52+/jN4f0g9bd+kow==", "dev": true, "requires": { - "@typescript-eslint/types": "5.48.0", - "@typescript-eslint/visitor-keys": "5.48.0", + "@typescript-eslint/types": "5.50.0", + "@typescript-eslint/visitor-keys": "5.50.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -24454,16 +24456,16 @@ } }, "@typescript-eslint/utils": { - "version": "5.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.48.0.tgz", - "integrity": "sha512-x2jrMcPaMfsHRRIkL+x96++xdzvrdBCnYRd5QiW5Wgo1OB4kDYPbC1XjWP/TNqlfK93K/lUL92erq5zPLgFScQ==", + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.50.0.tgz", + "integrity": "sha512-v/AnUFImmh8G4PH0NDkf6wA8hujNNcrwtecqW4vtQ1UOSNBaZl49zP1SHoZ/06e+UiwzHpgb5zP5+hwlYYWYAw==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.48.0", - "@typescript-eslint/types": "5.48.0", - "@typescript-eslint/typescript-estree": "5.48.0", + "@typescript-eslint/scope-manager": "5.50.0", + "@typescript-eslint/types": "5.50.0", + "@typescript-eslint/typescript-estree": "5.50.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0", "semver": "^7.3.7" @@ -24481,12 +24483,12 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "5.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.0.tgz", - "integrity": "sha512-5motVPz5EgxQ0bHjut3chzBkJ3Z3sheYVcSwS5BpHZpLqSptSmELNtGixmgj65+rIfhvtQTz5i9OP2vtzdDH7Q==", + "version": "5.50.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.50.0.tgz", + "integrity": "sha512-cdMeD9HGu6EXIeGOh2yVW6oGf9wq8asBgZx7nsR/D36gTfQ0odE5kcRYe5M81vjEFAcPeugXrHg78Imu55F6gg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.48.0", + "@typescript-eslint/types": "5.50.0", "eslint-visitor-keys": "^3.3.0" }, "dependencies": { @@ -26756,9 +26758,9 @@ "dev": true }, "eslint": { - "version": "8.31.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.31.0.tgz", - "integrity": "sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==", + "version": "8.33.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.33.0.tgz", + "integrity": "sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==", "dev": true, "requires": { "@eslint/eslintrc": "^1.4.1", diff --git a/package.json b/package.json index a79071577e..b05c78c0fd 100644 --- a/package.json +++ b/package.json @@ -114,8 +114,8 @@ "@types/react-dom": "^18.0.5", "@types/react-syntax-highlighter": "^15.5.2", "@types/uuid": "^9.0.0", - "@typescript-eslint/eslint-plugin": "5.48.0", - "@typescript-eslint/parser": "5.48.0", + "@typescript-eslint/eslint-plugin": "5.50.0", + "@typescript-eslint/parser": "5.50.0", "babel-loader": "^9.0.1", "babel-plugin-styled-components": "^2.0.7", "babel-preset-env": "^1.7.0", @@ -125,7 +125,7 @@ "cross-env": "^7.0.3", "csp-parse": "0.0.2", "dedent": "^0.7.0", - "eslint": "8.31.0", + "eslint": "8.33.0", "eslint-config-prettier": "^8.5.0", "eslint-config-standard": "^17.0.0", "eslint-plugin-import": "^2.26.0", @@ -185,6 +185,7 @@ "build": "next build", "debug": "cross-env NODE_ENV=development ENABLED_LANGUAGES=en nodemon --inspect server.js", "dev": "cross-env npm start", + "fixture-dev": "cross-env ROOT=tests/fixtures npm start", "index-test-fixtures": "node script/search/index-elasticsearch.js -l en -l ja -V ghae -V dotcom --index-prefix tests -- tests/content/fixtures/search-indexes", "lint": "eslint '**/*.{js,mjs,ts,tsx}'", "lint-translation": "cross-env NODE_OPTIONS=--experimental-vm-modules jest tests/linting/lint-files.js", diff --git a/script/copy-fixture-data.js b/script/copy-fixture-data.js new file mode 100755 index 0000000000..ee41029a1d --- /dev/null +++ b/script/copy-fixture-data.js @@ -0,0 +1,104 @@ +#!/usr/bin/env node + +// [start-readme] +// +// There are certain files that have to be manually copied from the +// real data into the test fixture data. +// +// This script copies the files from `data/` into `tests/fitures/data/...` +// that are files that are both needed for fixture testing yet can't +// live with the code. For example, `data/ui.yml` is part of the rendering +// code, but it lives in `data/` so it can be translated. +// +// [end-readme] + +import fs from 'fs' +import path from 'path' + +import { program } from 'commander' +import chalk from 'chalk' +import mkdirp from 'mkdirp' + +// Here, write down all the files that are actually part of the rendering +// functionality yet live in data. +const MANDATORY_FILES = [ + 'data/ui.yml', + 'data/reusables/policies/translation.md', + 'data/reusables/enterprise_deprecation/deprecation_details.md', + 'data/reusables/enterprise_deprecation/version_was_deprecated.md', + 'data/reusables/enterprise_deprecation/version_will_be_deprecated.md', + 'data/variables/release_candidate.yml', +] + +const DESTINATION = path.resolve('tests/fixtures') + +program + .description('Make sure the test fixtures have up-to-date data from the real content') + .option('--check', 'Exit non-zero if it had to actually do something') + .option('--dry-run', "Don't actually write changes to disk") + .option('-v, --verbose', 'Verbose outputs') + .parse(process.argv) + +main(program.opts()) + +async function main(opts) { + let errors = 0 + for (const file of MANDATORY_FILES) { + const source = fs.readFileSync(file, 'utf-8') + const destination = path.join(DESTINATION, file) + + if (opts.check) { + // The destination has to exist and be identical + try { + const copied = fs.readFileSync(destination, 'utf-8') + if (copied !== source) { + // console.warn(chalk.red(`The file ${destination} is different from ${file}`)) + console.warn(`The file ${chalk.red(destination)} is different from ${chalk.red(file)}`) + errors++ + } else if (opts.verbose) { + console.log(`The file ${chalk.green(destination)} is up-to-date 🥰`) + } + } catch (error) { + if (error.code === 'ENOENT') { + console.warn(`The file ${chalk.red(destination)} does not exist`) + errors++ + } else { + throw error + } + } + } else { + try { + const copied = fs.readFileSync(destination, 'utf-8') + if (copied === source) { + if (opts.verbose) { + console.log(`The file ${chalk.green(destination)} was perfect already 👌`) + } + continue + } + } catch (error) { + if (error.code !== 'ENOENT') throw error + } + if (!opts.dryRun) { + await mkdirp(path.dirname(destination)) + fs.writeFileSync(destination, source, 'utf-8') + if (opts.verbose) { + console.log(`Copied latest ${chalk.green(file)} to ${chalk.bold(destination)} 👍🏼`) + } + } else if (opts.verbose) { + console.log(`Would copy latest ${chalk.bold(file)} to ${chalk.bold(destination)}`) + } + } + } + + if (errors > 0) { + console.warn( + '\n', + chalk.yellow( + 'Run this script again without --check to make all fixture data files up-to-date. ' + + 'Then commit and check in.' + ) + ) + } + + process.exitCode = errors +} diff --git a/tests/fixtures/content/get-started/foo/autotitling.md b/tests/fixtures/content/get-started/foo/autotitling.md new file mode 100644 index 0000000000..e0d6f1e3b8 --- /dev/null +++ b/tests/fixtures/content/get-started/foo/autotitling.md @@ -0,0 +1,26 @@ +--- +title: Autotitling +intro: Internal links that use AUTOTITLE should just work +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +type: how_to +--- + +## Introduction + +Links that use the word `AUTOTITLE` in the Markdown become the +title of the document it links to. + +For example "[AUTOTITLE](/get-started/quickstart/hello-world)." + +It should also work if the URL as a query string, like this: +[AUTOTITLE](/get-started/quickstart/hello-world?tool=linux) + +Equally, if the link has a hash on it: +[AUTOTITLE](/get-started/quickstart/hello-world#this-hash) + +Or, a combination of query string and hash: +[AUTOTITLE](/get-started/quickstart/hello-world?tool=linux#this-hash) diff --git a/tests/fixtures/content/get-started/foo/bar.md b/tests/fixtures/content/get-started/foo/bar.md new file mode 100644 index 0000000000..69083b20ca --- /dev/null +++ b/tests/fixtures/content/get-started/foo/bar.md @@ -0,0 +1,14 @@ +--- +title: Bar Usually Comes After Foo +shortTitle: Bar +intro: This page doesn't really have an intro +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +--- + +## Heading + +Nothing here to see. diff --git a/tests/fixtures/content/get-started/foo/cross-version-linking.md b/tests/fixtures/content/get-started/foo/cross-version-linking.md new file mode 100644 index 0000000000..c3cb1a1a26 --- /dev/null +++ b/tests/fixtures/content/get-started/foo/cross-version-linking.md @@ -0,0 +1,16 @@ +--- +title: Cross Version Linking +intro: Testing to cross the version boundary with hardcoded cross-version links +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +type: how_to +--- + +## Get right into it + +[Hello world always in free-pro-team](/free-pro-team@latest/get-started/quickstart/hello-world) + +[Autotitling page always in enterprise-server latest](/enterprise-server@latest/get-started/quickstart/hello-world) diff --git a/tests/fixtures/content/get-started/foo/index.md b/tests/fixtures/content/get-started/foo/index.md new file mode 100644 index 0000000000..df893b02b6 --- /dev/null +++ b/tests/fixtures/content/get-started/foo/index.md @@ -0,0 +1,14 @@ +--- +title: Fooing Around +shortTitle: Foo +intro: 'The most basic of fixture data for {% data variables.product.product_name %}' +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +children: + - /bar + - /autotitling + - /cross-version-linking +--- diff --git a/tests/fixtures/content/get-started/index.md b/tests/fixtures/content/get-started/index.md new file mode 100644 index 0000000000..d253b4a408 --- /dev/null +++ b/tests/fixtures/content/get-started/index.md @@ -0,0 +1,26 @@ +--- +title: Getting started with HubGit +shortTitle: Get started +intro: 'This is the intro' +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +layout: product-landing +introLinks: + quickstart: /get-started/quickstart +featuredLinks: + guides: + - /get-started/quickstart/hello-world + popular: + - /get-started/foo/bar + guideCards: + - /get-started/foo/autotitling +children: + - /quickstart + - /foo +communityRedirect: + name: Provide HubGit Feedback + href: 'https://hubgit.com/orgs/community/discussions/categories/get-started' +--- diff --git a/tests/fixtures/content/get-started/quickstart/hello-world.md b/tests/fixtures/content/get-started/quickstart/hello-world.md new file mode 100644 index 0000000000..ccf082858f --- /dev/null +++ b/tests/fixtures/content/get-started/quickstart/hello-world.md @@ -0,0 +1,27 @@ +--- +title: Hello World +intro: 'Follow this Hello World exercise to get started with {% data variables.product.product_name %}.' +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +type: quick_start +topics: + - Pull requests + - Fundamentals +miniTocMaxHeadingLevel: 3 +--- + +## Introduction + +This is just a test. + +{% ifversion volvo %} +Ove loves Volvos. +{% else %} +Apparently, a Saab it is. +{% endif %} + +Try changing the current version from "Free, Pro, & Team" to something +like "Enterprise Server X.Y". It should change the above sentence. diff --git a/tests/fixtures/content/get-started/quickstart/index.md b/tests/fixtures/content/get-started/quickstart/index.md new file mode 100644 index 0000000000..40e9cb45b8 --- /dev/null +++ b/tests/fixtures/content/get-started/quickstart/index.md @@ -0,0 +1,11 @@ +--- +title: Quickstart +intro: 'Get started using {% data variables.product.product_name %} to manage Git repositories and collaborate with others.' +versions: + fpt: '*' + ghes: '*' + ghae: '*' + ghec: '*' +children: + - /hello-world +--- diff --git a/tests/fixtures/content/index.md b/tests/fixtures/content/index.md new file mode 100644 index 0000000000..6580cd6703 --- /dev/null +++ b/tests/fixtures/content/index.md @@ -0,0 +1,59 @@ +--- +title: '{% data variables.product.product_name %}{% ifversion fpt or ghec%}.com{% endif %} Fixture Documentation' +featuredLinks: + gettingStarted: + - /get-started/foo/hello-world + popular: + - get-started +redirect_from: + - /olden-days +versions: '*' +children: + # The list of childen in the fixtures has to be the same names + # as we use in the real content. It can have fewer but can't include + # anything that the real `/content/index.md` doesn't contain for this. + # The reason is that the `npm run build` compiles a list of rewrites + # so that URLs like `/en/get-started/anything` can be treated, + # as if the URL had been `/en/free-pro-team@latest/get-started/anything`. + - search + - get-started + # - account-and-profile + # - authentication + # - repositories + # - admin + # - billing + # - site-policy + # - organizations + # - code-security + # - pull-requests + # - issues + # - actions + # - copilot + # - codespaces + # - packages + # - search-github + # - developers + # - rest + # - graphql + # - github-cli + # - discussions + # - sponsors + # - communities + # - pages + # - education + # - desktop + # - early-access + # - support +childGroups: + - name: Get started + octicon: RocketIcon + children: + - get-started + +externalProducts: + electron: + id: mothership + name: GitHub itself + href: 'https://github.com' + external: true +--- diff --git a/tests/fixtures/content/search/index.md b/tests/fixtures/content/search/index.md new file mode 100644 index 0000000000..e3b3da45f7 --- /dev/null +++ b/tests/fixtures/content/search/index.md @@ -0,0 +1,10 @@ +--- +title: Search +hidden: true +versions: + fpt: '*' + ghec: '*' + ghes: '*' + ghae: '*' +--- + diff --git a/tests/fixtures/data/features/volvo.yml b/tests/fixtures/data/features/volvo.yml new file mode 100644 index 0000000000..14ba8f5e2d --- /dev/null +++ b/tests/fixtures/data/features/volvo.yml @@ -0,0 +1,3 @@ +versions: + fpt: '*' + ghec: '*' diff --git a/tests/fixtures/data/reusables/enterprise_deprecation/deprecation_details.md b/tests/fixtures/data/reusables/enterprise_deprecation/deprecation_details.md new file mode 100644 index 0000000000..ed570ed576 --- /dev/null +++ b/tests/fixtures/data/reusables/enterprise_deprecation/deprecation_details.md @@ -0,0 +1,2 @@ +No patch releases will be made, even for critical security issues. For better performance, improved security, and new features, upgrade to the latest version of GitHub Enterprise. +For help with the upgrade, contact GitHub Enterprise support. diff --git a/tests/fixtures/data/reusables/enterprise_deprecation/version_was_deprecated.md b/tests/fixtures/data/reusables/enterprise_deprecation/version_was_deprecated.md new file mode 100644 index 0000000000..917aa3a6c4 --- /dev/null +++ b/tests/fixtures/data/reusables/enterprise_deprecation/version_was_deprecated.md @@ -0,0 +1 @@ +This version of GitHub Enterprise was discontinued on diff --git a/tests/fixtures/data/reusables/enterprise_deprecation/version_will_be_deprecated.md b/tests/fixtures/data/reusables/enterprise_deprecation/version_will_be_deprecated.md new file mode 100644 index 0000000000..d1812b0977 --- /dev/null +++ b/tests/fixtures/data/reusables/enterprise_deprecation/version_will_be_deprecated.md @@ -0,0 +1 @@ +This version of GitHub Enterprise will be discontinued on diff --git a/tests/fixtures/data/reusables/policies/translation.md b/tests/fixtures/data/reusables/policies/translation.md new file mode 100644 index 0000000000..fd1157c558 --- /dev/null +++ b/tests/fixtures/data/reusables/policies/translation.md @@ -0,0 +1,3 @@ +This document is translated from English. In the event of any conflict, uncertainty, or apparent inconsistency between this version and the English version(s) of this document, the English version is the controlling version. + +If you have suggestions to improve our translation, please open an issue in our site-policy repository. diff --git a/tests/fixtures/data/ui.yml b/tests/fixtures/data/ui.yml new file mode 100644 index 0000000000..ea68ef2cc6 --- /dev/null +++ b/tests/fixtures/data/ui.yml @@ -0,0 +1,267 @@ +meta: + default_description: Get started, troubleshoot, and make the most of GitHub. Documentation for new users, developers, administrators, and all of GitHub's products. +header: + github_docs: GitHub Docs + contact: Contact + notices: + ghae_silent_launch: GitHub AE is currently under limited release. + release_candidate: + # The version name is rendered before the below text via includes/header-notification.html + ' is currently available as a release candidate. For more information, see "About upgrades to new releases."' + localization_complete: + We publish frequent updates to our documentation, and translation of this page may still be in progress. + For the most current information, please visit the + English documentation. + early_access: 📣 Please do not share this URL publicly. This page contains content about an early access feature. + release_notes_use_latest: Please use the latest release for the latest security, performance, and bug fixes. + # GHES release notes + ghes_release_notes_upgrade_patch_only: 📣 This is not the latest patch release of Enterprise Server. + ghes_release_notes_upgrade_release_only: 📣 This is not the latest release of Enterprise Server. + ghes_release_notes_upgrade_patch_and_release: 📣 This is not the latest patch release of this release series, and this is not the latest release of Enterprise Server. + sign_up_cta: Sign up + menu: Menu +picker: + language_picker_default_text: Choose a language + product_picker_default_text: All products + version_picker_default_text: Choose a version +release_notes: + banner_text: GitHub began rolling these changes out to enterprises on +search: + need_help: Need help? + placeholder: Search GitHub Docs + no_results: No results found + search_results_for: Search results for + no_content: No content + matches_found: Results found + matches_displayed: Matches displayed + search_error: An error occurred trying to perform the search. + description: Enter a search term to find it in the GitHub Documentation. + label: Search GitHub Docs + found_results: Found {n} results + one_result_found: Found 1 result +homepage: + explore_by_product: Explore by product + version_picker: Version + description: Help for wherever you are on your GitHub journey. +toc: + getting_started: Getting started + popular: Popular + startHere: Start here + whats_new: What's new + videos: Videos + all_changelogs: All changelog posts +pages: + article_version: 'Article version' + miniToc: In this article + all_enterprise_releases: All Enterprise Server releases + about_versions: About versions + permissions_statement: Who can use this feature +errors: + oops: Ooops! + something_went_wrong: It looks like something went wrong. + we_track_errors: We track these errors automatically, but if the problem persists please feel free to contact us. + page_doesnt_exist: It looks like this page doesn't exist. +support: + still_need_help: Still need help? + contact_support: Contact support + ask_community: Ask the GitHub community +survey: + able_to_find: Did this doc help you? + yes: Yes + no: No + comment_yes_label: Let us know what we do well + comment_no_label: Let us know what we can do better + optional: Optional + required: Required + email_placeholder: email@example.com + email_label: If we can contact you with more questions, please enter your email address + email_validation: Please enter a valid email address + send: Send + feedback: Thank you! We received your feedback. + not_support: If you need a reply, please contact support instead. + privacy_policy: Privacy policy +contribution_cta: + title: Help us make these docs great! + body: All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request. + button: Make a contribution + or: Or, + to_guidelines: learn how to contribute. +parameter_table: + body: Body parameters + default: Default + description: Description + enum_description_title: Can be one of + headers: Headers + name: Name + path: Path parameters + query: Query parameters + required: Required + see_preview_notice: See preview notice + see_preview_notices: See preview notices + type: Type + single_enum_description: Value +products: + graphql: + reference: + implements: Implements + fields: Fields + arguments: Arguments + name: Name + type: Type + description: Description + input_fields: Input fields + return_fields: Return fields + implemented_by: Implemented by + values: Values + possible_types: Possible types + preview_notice: Preview notice + deprecation_notice: Deprecation notice + preview_period: During the preview period, the API may change without notice. + overview: + preview_header: 'To toggle this preview and access the following schema members, you must provide a custom media type in the `Accept` header:' + preview_schema_members: 'Previewed schema members' + announced: Announced + updates: Updates + rest: + banner: + api_versioned: The REST API is now versioned. + api_version_info: For more information, see "About API versioning." + ghes_api_versioned: After a site administrator upgrades your Enterprise Server instance to {{ firstGhesReleaseWithApiVersions.versionTitle }} or later, the REST API will be versioned. To learn how to find your instance's version, see "About versions of GitHub Docs". + versioning: + about_versions: About REST API versions + reference: + in: In + description: Description + notes: Notes + parameters: Parameters + response: Response + example_response: Example response + status_code: Status code + http_status_code: HTTP response status codes + code_sample: Code sample + code_samples: Code samples + preview_notice: Preview notice + preview_notices: Preview notices + preview_header_is_required: This header is required + preview_notice_to_change: This API is under preview and subject to change + works_with: Works with + api_reference: REST API reference + enum_description_title: Can be one of + required: Required + headers: Headers + query: Query parameters + path: Path parameters + body: Body parameters + webhooks: + action_type_switch_error: There was an error switching webhook action types. + action_type: Action type + availability: Availability + webhook_payload_object: Webhook payload object + webhook_payload_example: Webhook payload example + rephrase_availability: + repository: Repositories + organization: Organizations + app: GitHub Apps + business: Enterprises + marketplace: GitHub Marketplace + sponsors_listing: Sponsored accounts +footer: + all_rights_reserved: All rights reserved + terms: Terms + privacy: Privacy + security: Security + product: + heading: Product + links: + features: Features + security: Security + enterprise: Enterprise + case_studies: Case Studies + pricing: Pricing + resources: Resources + platform: + heading: Platform + links: + developer_api: Developer API + partners: Partners + atom: Atom + electron: Electron + github_desktop: GitHub Desktop + support: + heading: Support + links: + help: Help + community_forum: Community Forum + training: Training + status: Status + contact_github: Contact GitHub + company: + heading: Company + links: + about: About + blog: Blog + careers: Careers + press: Press + shop: Shop +product_landing: + quickstart: Quickstart + reference: Reference + overview: Overview + guides: Guides + code_examples: Code examples + search_code_examples: Search code examples + search_results_for: Search results for + matches_displayed: Matches displayed + show_more: Show more + explore_people_and_projects: Explore people and projects + sorry: Sorry, there is no result for + no_example: It looks like we don't have an example that fits your filter. + try_another: Try another filter or add your code example. + no_result: Sorry, there are no guides that match your filter. + learn: Learn how to add a code example + communities_using_discussions: Communities on GitHub.com using discussions + add_your_community: Add your community + sponsor_community: GitHub Sponsors community + supported_releases: Supported releases + release_notes_for: Release notes for + upgrade_from: Upgrade from + browse_all_docs: Browse all docs + browse_all: Browse all + docs: docs + explore_release_notes: Explore release notes + view: View all +product_guides: + start_path: Start learning path + learning_paths: '{{ productMap[currentProduct].name }} learning paths' + learning_paths_desc: Learning paths are a collection of guides that help you master a particular subject. + guides: '{{ productMap[currentProduct].name }} guides' + more_guides: more guides + load_more: Load more guides + all_guides: 'All {{ productMap[currentProduct].name }} guides' + filter_instructions: Filter the guide list using these controls + filters: + type: Type + topic: Topic + all: All + guides_found: + multiple: '{n} guides found' + one: 1 guide found + none: No guides found + guide_types: + overview: Overview + quick_start: Quickstart + tutorial: Tutorial + how_to: How-to guide + reference: Reference +learning_track_nav: + prev_guide: Previous + next_guide: Next + more_guides: More guides → + current_progress: '{i} of {n} in learning path' +toggle_images: + off: Images are off, click to show + on: Images are on, click to hide + hide_single: Hide image + show_single: Show image +scroll_button: + scroll_to_top: Scroll to top diff --git a/tests/fixtures/data/variables/product.yml b/tests/fixtures/data/variables/product.yml new file mode 100644 index 0000000000..b54a6cf5d8 --- /dev/null +++ b/tests/fixtures/data/variables/product.yml @@ -0,0 +1,2 @@ +product_name: >- + {% ifversion ghec %}HubGit Enterprise Cloud{% elsif ghes %}HubGit Enterprise Server{% elsif ghae %}HubGit AE{% else %}HubGit{% endif %} diff --git a/tests/fixtures/data/variables/release_candidate.yml b/tests/fixtures/data/variables/release_candidate.yml new file mode 100644 index 0000000000..026d2f7e61 --- /dev/null +++ b/tests/fixtures/data/variables/release_candidate.yml @@ -0,0 +1 @@ +version: '' diff --git a/tests/rendering/footer.js b/tests/rendering-fixtures/footer.js similarity index 59% rename from tests/rendering/footer.js rename to tests/rendering-fixtures/footer.js index 2fc0c22cd0..8525980ffb 100644 --- a/tests/rendering/footer.js +++ b/tests/rendering-fixtures/footer.js @@ -8,7 +8,9 @@ describe('footer', () => { describe('"contact us" link', () => { test('leads to support from articles', async () => { - const $ = await getDOM(`/en/${nonEnterpriseDefaultVersion}/issues`) + const $ = await getDOM( + `/en/${nonEnterpriseDefaultVersion}/get-started/quickstart/hello-world` + ) expect($('a#contact-us').attr('href')).toBe('https://support.github.com/contact') }) @@ -20,37 +22,23 @@ describe('footer', () => { describe('"contact us" link with nextjs', () => { test('leads to support from articles', async () => { - const $ = await getDOM(`/en/${nonEnterpriseDefaultVersion}/issues?nextjs=`) + const $ = await getDOM(`/en/${nonEnterpriseDefaultVersion}/get-started?nextjs=`) expect($('a#contact-us').attr('href')).toBe('https://support.github.com/contact') }) }) describe('test redirects for product landing community links pages', () => { - test('codespaces product landing page leads to codespaces discussions page', async () => { - const $ = await getDOM(`/en/codespaces`) + test('codespaces product landing page leads to discussions page', async () => { + const $ = await getDOM('/en/get-started') expect($('a#ask-community').attr('href')).toBe( - 'https://github.com/community/community/discussions/categories/codespaces' - ) - }) - - test('sponsors product landing page leads to sponsors discussions page', async () => { - const $ = await getDOM(`/en/sponsors`) - expect($('a#ask-community').attr('href')).toBe( - 'https://github.com/community/community/discussions/categories/sponsors' - ) - }) - - test('codespaces product landing page leads to discussions discussions page', async () => { - const $ = await getDOM(`/en/discussions`) - expect($('a#ask-community').attr('href')).toBe( - 'https://github.com/community/community/discussions/categories/discussions' + 'https://hubgit.com/orgs/community/discussions/categories/get-started' ) }) }) describe('test redirects for non-product landing community links pages', () => { test('leads to https://github.community/ when clicking on the community link', async () => { - const $ = await getDOM(`/en/github/authenticating-to-github`) + const $ = await getDOM(`/en/get-started/quickstart/hello-world`) expect($('a#ask-community').attr('href')).toBe( 'https://github.com/orgs/community/discussions' ) diff --git a/tests/rendering-fixtures/internal-links.js b/tests/rendering-fixtures/internal-links.js new file mode 100644 index 0000000000..ea4f4ecfcb --- /dev/null +++ b/tests/rendering-fixtures/internal-links.js @@ -0,0 +1,42 @@ +import { getDOM } from '../helpers/e2etest.js' +import enterpriseServerReleases from '../../lib/enterprise-server-releases.js' +import { allVersions } from '../../lib/all-versions.js' + +describe('autotitle', () => { + test('internal links with AUTOTITLE resolves', async () => { + const $ = await getDOM('/get-started/foo/autotitling') + const links = $('#article-contents a[href]') + links.each((i, element) => { + if ($(element).attr('href').includes('/get-started/quickstart/hello-world')) { + expect($(element).text()).toBe('Hello World') + } + }) + // There are 4 links on the `autotitling.md` content. + expect.assertions(4) + }) +}) + +describe('cross-version-links', () => { + test.each(Object.keys(allVersions))( + 'links to free-pro-team should be implicit even on %p', + async (version) => { + const URL = `/${version}/get-started/foo/cross-version-linking` + const $ = await getDOM(URL) + const links = $('#article-contents a[href]') + + // Tests that the hardcoded prefix is always removed + const firstLink = links.filter(function () { + return $(this).text() === 'Hello world always in free-pro-team' + }) + expect(firstLink.attr('href')).toBe('/en/get-started/quickstart/hello-world') + + // Tests that the second link always goes to enterprise-server@X.Y + const secondLink = links.filter(function () { + return $(this).text() === 'Autotitling page always in enterprise-server latest' + }) + expect(secondLink.attr('href')).toBe( + `/en/enterprise-server@${enterpriseServerReleases.latest}/get-started/quickstart/hello-world` + ) + } + ) +})