diff --git a/.github/agents/builder-writer.md b/.github/agents/builder-writer.md new file mode 100644 index 000000000000..7d92cfd95e75 --- /dev/null +++ b/.github/agents/builder-writer.md @@ -0,0 +1,72 @@ +--- + +name: "Builder-writer" +description: "Use when writing, editing, or reviewing content for the Builder persona: developers building software, from junior to senior and solo to enterprise, who write, review, test, ship, and operate code." + +--- + +# Builder-writer Agent + +You are a writing assistant for the GitHub Docs team. You help writers create, edit, and review documentation that serves the **Builder persona**. + +A Builder is the developer who turns an idea into working software. Their core job is to develop and maintain reliable software that meets the evolving needs of users and stakeholders. Builders write, review, test, ship, and operate code, and they work in many contexts: proprietary software at companies and startups, open source, security, developer advocacy, and AI innovation. + +When making content decisions, you can write for a Builder who is a somewhat experienced developer: you do not need to teach them coding basics, but you should comment code examples, explain the reasoning behind decisions, and be explicit about prerequisites such as installing libraries or configuring tools. + +Builders are a **diverse group**, and content should account for the range: + +* **Expertise** varies from junior to senior. A developer in their first job and one with a decade of experience are both Builders with different needs. +* **Team size** varies from solo hobbyists, to a startup team, to hundreds of developers across teams at a large enterprise. +* **Roles** vary, and include software engineers, DevOps engineers, security engineers, and open source maintainers and contributors. + +## What makes Builder content different + +Builder content is distinct from content for the Driver persona (people who enable developers at scale, such as enterprise administrators). Apply these when writing or editing. + +### Lead with well-crafted examples + +Examples are one of the most valuable resources for developers and one of the most under-served, so this is a way for GitHub Docs to stand out. Builders want to see how something works in a relevant scenario and adapt it to their needs, not just read about it. When writing examples: + +* Follow best practices, so readers can copy the pattern with confidence. +* Explain what each part does and why. +* Choose scenarios that are easy to copy, with clear explanations about things Builders may need to adapt to their needs. + +When you show a command or an example prompt a reader can run against their own project, make it easy to try directly: a copyable command, or a prompt they can paste straight into the tool. Builders copy and adapt what they see, so be explicit when an example is just one illustrative approach rather than the required or only way to do something. + +### Write for someone who works in code + +Builders are configuring their environment, writing functions, debugging builds, and wiring up tests. They want concrete implementation detail: how to integrate a library, what a configuration file should contain, how settings affect a build. Explain the decisions behind a recommended approach so a reader can adapt it to their own codebase, rather than only listing steps to click through. + +### Cover the command line and API, not just the UI + +Builders frequently work outside the web UI, and non-UI flows are critical for this persona. When a task is tedious, repetitive, or not realistic to accomplish in the UI, show how to do it with the Copilot CLI, GitHub CLI, or the API. For workflows that can be scripted or automated, treat the programmatic path as a first-class option rather than an afterthought. + +### Frame value around the developer's own work + +Builders care about their craft: shipping working software, writing clean and secure code, and collaborating effectively. Connect features to that work, the way a developer experiences it day to day, rather than to enterprise-level outcomes like compliance posture or cost management. + +* Instead of: "Code scanning helps your organization meet its security requirements." +* Write: "Code scanning flags vulnerabilities in your pull request before they reach the main branch, so you can fix them while the change is fresh." + +### Help Builders do the work around the code well + +Much of a Builder's day is the practice surrounding the code: scoping an issue, opening a reviewable pull request, giving and responding to review feedback, and setting up CI to catch problems early. This is fertile ground for opinionated, practical guidance (for example, how to write a well-defined issue, or how to keep a pull request scoped and easy to review). Help Builders discover and adopt these practices, and connect the relevant features so they see how planning, coding, reviewing, testing, and shipping fit together. + +### Keep the focus on the developer's hands-on work + +Builder content sits at the altitude of a developer doing the work themselves. When a draft drifts into rolling out, governing, or administering a tool across an organization, that is Driver territory. Split that content into a separate article or hand it off rather than mixing a developer audience and an admin audience in one piece. For example, a best-practices guide for using a tool should stay focused on the individual developer's workflow, not how to deploy the tool at scale across a company. + +### Present GitHub's tools as one connected ecosystem + +Builders move fluidly between surfaces (the CLI, the IDE, the web, and integrations), often within a single subscription, and switch based on what they are working on. Frame each tool's value on its own merits and show how the surfaces work together. Do not promote one surface by contrasting it negatively against another GitHub option, since the goal is for Builders to use the right tool for each task, not to pick one over another. + +## Builder user journey + +Builders move through the software development lifecycle. Content should meet them where they are in this flow: + +* **Plan**: Exploring opportunities, picking up and understanding work, and designing an approach against requirements. +* **Create**: Setting up an environment, authoring and optimizing code, and finding and fixing security issues. +* **Review**: Reviewing others' code for quality and security, and responding to feedback on their own. +* **Test**: Writing and running tests, interpreting results, and debugging failures. +* **Deploy**: Initiating and overseeing a release, then validating a successful deployment. +* **Operate**: Monitoring system health and performance, and maintaining and improving reliability. diff --git a/content/actions/tutorials/build-and-test-code/nodejs.md b/content/actions/tutorials/build-and-test-code/nodejs.md index 947e16a5138c..74a27bf4d21d 100644 --- a/content/actions/tutorials/build-and-test-code/nodejs.md +++ b/content/actions/tutorials/build-and-test-code/nodejs.md @@ -31,7 +31,7 @@ This guide shows you how to create a continuous integration (CI) workflow that b We recommend that you have a basic understanding of Node.js, YAML, workflow configuration options, and how to create a workflow file. For more information, see: * [AUTOTITLE](/actions/how-tos/write-workflows) -* [Getting started with Node.js](https://nodejs.org/en/docs/guides/getting-started-guide/) +* [Getting started with Node.js](https://nodejs.org/learn/getting-started/introduction-to-nodejs) {% data reusables.actions.enterprise-setup-prereq %} diff --git a/content/admin/managing-iam/provisioning-user-accounts-with-scim/configuring-authentication-and-provisioning-with-pingfederate.md b/content/admin/managing-iam/provisioning-user-accounts-with-scim/configuring-authentication-and-provisioning-with-pingfederate.md index 6a3540c14c0b..b86f13a4495f 100644 --- a/content/admin/managing-iam/provisioning-user-accounts-with-scim/configuring-authentication-and-provisioning-with-pingfederate.md +++ b/content/admin/managing-iam/provisioning-user-accounts-with-scim/configuring-authentication-and-provisioning-with-pingfederate.md @@ -48,7 +48,7 @@ In addition: * You may need to configure the firewall in PingFederate to allow outbound connections to {% ifversion ghes %}the `https://HOSTNAME/api/v3/scim/v2` endpoint on your {% data variables.product.prodname_ghe_server %} instance.{% else %}the SCIM endpoints on {% data variables.product.github %}: * For **{% data variables.product.prodname_dotcom_the_website %}**: `https://api.github.com/scim/v2/enterprises/ENTERPRISE` * For **{% data variables.enterprise.data_residency_site %}**: `https://api.SUBDOMAIN.ghe.com/scim/v2/enterprises/SUBDOMAIN`{% endif %} -* PingFederate's "provisioner mode" must be set to a value that allows SCIM provisioning. See the "Before you begin" section in PingIdentity's [Configuring outbound provisioning settings](https://docs.pingidentity.com/pingfederate/latest/administrators_reference_guide/help_protocolsettingstasklet_saasglobalprovisioningsettingsstate.html) guide. +* PingFederate's "provisioner mode" must be set to a value that allows SCIM provisioning. See the "Before you begin" section in PingIdentity's [Configuring outbound provisioning settings](https://docs.pingidentity.com/pingfederate/13.1/administrators_reference_guide/pf_configuring_outbound_provisioning_settings.html) guide. * During this procedure, you will need to upload an X509 certificate to PingFederate. You may want to create and store the certificate before proceeding. You will also need the challenge password for the certificate. See the [Example of creating an X509 certificate](#example-of-creating-an-x509-certificate) section later in this article. {%- ifversion ghec %} * During this procedure, you will need to upload a SAML metadata file to PingFederate. If you're setting up an enterprise that uses **{% data variables.enterprise.data_residency_short %} on {% data variables.enterprise.data_residency_site %}**, it is easiest to create this file before you start. See [Creating a SAML metadata file for {% data variables.enterprise.data_residency_site %}](#creating-a-saml-metadata-file-for-ghecom). diff --git a/content/admin/managing-iam/provisioning-user-accounts-with-scim/troubleshooting-team-membership-with-identity-provider-groups.md b/content/admin/managing-iam/provisioning-user-accounts-with-scim/troubleshooting-team-membership-with-identity-provider-groups.md index 8dd081e3d599..0a4aeca1dbee 100644 --- a/content/admin/managing-iam/provisioning-user-accounts-with-scim/troubleshooting-team-membership-with-identity-provider-groups.md +++ b/content/admin/managing-iam/provisioning-user-accounts-with-scim/troubleshooting-team-membership-with-identity-provider-groups.md @@ -88,7 +88,7 @@ If you see an `external_identity.scim_api_incomplete` or `external_group.scim_ap Re-trigger provisioning from your identity provider for the affected user or group. SCIM operations are idempotent, so re-provisioning will not create duplicates. * **Entra ID:** In the Microsoft Entra admin center, go to **Enterprise Applications** > your SCIM app > **Provisioning**, and use **Provision on demand** for the affected user or group, or **Restart provisioning** for a full sync. For more information, see [On-demand provisioning in Microsoft Entra ID](https://learn.microsoft.com/en-us/entra/identity/app-provisioning/provision-on-demand) in the Microsoft documentation. -* **Okta:** Re-push the affected group from **Push Groups**, or re-assign the app to the affected user. For more information, see [Push Groups](https://help.okta.com/en-us/content/topics/users-groups/usgr-push-groups.htm) in the Okta documentation. +* **Okta:** Re-push the affected group from **Push Groups**, or re-assign the app to the affected user. For more information, see [Group push](https://help.okta.com/en-us/content/topics/users-groups-profiles/usgp-about-group-push.htm) in the Okta documentation. * **Other identity providers:** Consult your identity provider's documentation for how to re-trigger SCIM provisioning for a specific user or group. ### Checking if the change was applied diff --git a/content/code-security/concepts/vulnerability-reporting-and-management/github-advisory-database.md b/content/code-security/concepts/vulnerability-reporting-and-management/github-advisory-database.md index 8db7949f1865..2fcad6de2ff4 100644 --- a/content/code-security/concepts/vulnerability-reporting-and-management/github-advisory-database.md +++ b/content/code-security/concepts/vulnerability-reporting-and-management/github-advisory-database.md @@ -122,14 +122,14 @@ The Exploit Prediction Scoring System, or EPSS, is a system devised by the globa The {% data variables.product.prodname_advisory_database %} includes EPSS scores from FIRST for advisories containing CVEs with corresponding EPSS data. {% data variables.product.company_short %} also displays the EPSS score percentile, which is the proportion of all scored vulnerabilities with the same or a lower EPSS score. -For example, if an advisory had an EPSS score that had a percentage of 90.534% at the 95th percentile, according to the [EPSS model](https://www.first.org/epss/model), this means that: +For example, if an advisory had an EPSS score that had a percentage of 90.534% at the 95th percentile, according to the [EPSS model](https://www.first.org/epss/using-epss), this means that: * There is a 90.534% chance of this vulnerability being exploited in the wild in the next 30 days. * 95% of the total modeled vulnerabilities are considered less likely to be exploited in the next 30 days than this vulnerability. -Extended information about how to interpret this data can be found in FIRST's EPSS User Guide. This information helps you understand how both percentage and percentile can be used to interpret the likelihood that a vulnerability could be exploited in the wild according to FIRST's model. For more information, see the [FIRST's EPSS User Guide](https://www.first.org/epss/user-guide) on the FIRST website. +Extended information about how to interpret this data can be found in FIRST's EPSS documentation. This information helps you understand how both percentage and percentile can be used to interpret the likelihood that a vulnerability could be exploited in the wild according to FIRST's model. For more information, see [FIRST's EPSS](https://www.first.org/epss/) on the FIRST website. -FIRST also provides additional information around the distribution of their EPSS data. For more information, see [EPSS data and statistics documentation](https://www.first.org/epss/data_stats) on the FIRST website. +FIRST also provides additional information around the distribution of their EPSS data. For more information, see [EPSS data and statistics documentation](https://www.first.org/epss/data) on the FIRST website. >[!NOTE] {% data variables.product.company_short %} keeps EPSS data up to date with a daily synchronization action. While EPSS score percentages will always be fully synchronized, score percentiles will only be updated when significantly different. diff --git a/content/copilot/concepts/spark.md b/content/copilot/concepts/spark.md index 3f2e842626a0..32657bb066be 100644 --- a/content/copilot/concepts/spark.md +++ b/content/copilot/concepts/spark.md @@ -10,6 +10,8 @@ category: - Learn about Copilot --- +{% data reusables.copilot.spark-deprecation %} + ## Overview {% data reusables.copilot.spark-overview %} diff --git a/content/copilot/get-started/features.md b/content/copilot/get-started/features.md index a951990f85ba..52ebe70e0aa0 100644 --- a/content/copilot/get-started/features.md +++ b/content/copilot/get-started/features.md @@ -67,10 +67,6 @@ Several {% data variables.copilot.copilot_code-review-tools_short %} are in {% d Allow {% data variables.product.prodname_copilot_short %} to work autonomously in the IDE. {% data variables.product.prodname_copilot_short %} will determine which files to make changes to, offer code changes and terminal commands for the user's approval, and iterate to remediate issues until the original task is complete. -### {% data variables.product.prodname_spark %} ({% data variables.release-phases.public_preview %}) - -Build and deploy full-stack applications using natural-language prompts that seamlessly integrate with the {% data variables.product.github %} platform for advanced development. See [AUTOTITLE](/copilot/tutorials/spark/build-apps-with-spark). - ## Features for customization These features can be used to add context to {% data variables.product.prodname_copilot_short %} and improve its performance. For a comparison of when to use each feature, see [AUTOTITLE](/copilot/reference/customization-cheat-sheet). diff --git a/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-spark.md b/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-spark.md index 5b21ef68606b..28c91824c3b9 100644 --- a/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-spark.md +++ b/content/copilot/how-tos/administer-copilot/manage-for-enterprise/manage-spark.md @@ -13,8 +13,7 @@ category: --- > [!NOTE] -> * {% data reusables.spark.preview-note-spark %} -> * {% data reusables.copilot.spark-data-res %} +> * {% data reusables.copilot.spark-deprecation %} ## About {% data variables.product.prodname_spark_short %} @@ -22,6 +21,10 @@ category: For details about benefits, development experience, billing, and enterprise considerations, see [AUTOTITLE](/copilot/concepts/spark#enterprise-considerations). +> [!NOTE] +> * {% data reusables.spark.preview-note-spark %} +> * {% data reusables.copilot.spark-data-res %} + ## Prerequisites To use {% data variables.product.prodname_spark_short %}, your enterprise must be on a {% data variables.copilot.copilot_enterprise_short %} plan. diff --git a/content/copilot/how-tos/chat-with-copilot/chat-in-ide.md b/content/copilot/how-tos/chat-with-copilot/chat-in-ide.md index 00f2e3344a91..d5f1f3cb960c 100644 --- a/content/copilot/how-tos/chat-with-copilot/chat-in-ide.md +++ b/content/copilot/how-tos/chat-with-copilot/chat-in-ide.md @@ -213,7 +213,7 @@ To leave feedback about the {% data variables.copilot.copilot_chat %} extension, ## Further reading * [AUTOTITLE](/copilot/concepts/prompting/prompt-engineering) -* [Using {% data variables.copilot.copilot_chat_short %} in {% data variables.product.prodname_vscode_shortname %}](https://code.visualstudio.com/docs/copilot/copilot-chat) and [Getting started with {% data variables.product.prodname_copilot %} in {% data variables.product.prodname_vscode_shortname %}](https://code.visualstudio.com/docs/copilot/getting-started) in the {% data variables.product.prodname_vscode %} documentation +* [Using {% data variables.copilot.copilot_chat_short %} in {% data variables.product.prodname_vscode_shortname %}](https://code.visualstudio.com/docs/copilot/copilot-chat) in the {% data variables.product.prodname_vscode %} documentation * [AUTOTITLE](/copilot/how-tos/copilot-on-github/use-copilot-agents/manage-and-track-agents) * [AUTOTITLE](/copilot/how-tos/copilot-on-github/chat-with-copilot/chat-in-github) * [AUTOTITLE](/copilot/responsible-use/chat) diff --git a/content/copilot/how-tos/troubleshoot-copilot/troubleshoot-spark.md b/content/copilot/how-tos/troubleshoot-copilot/troubleshoot-spark.md index 8d4022b70521..e78d54caecf7 100644 --- a/content/copilot/how-tos/troubleshoot-copilot/troubleshoot-spark.md +++ b/content/copilot/how-tos/troubleshoot-copilot/troubleshoot-spark.md @@ -9,6 +9,9 @@ category: - Troubleshooting Copilot --- +> [!NOTE] +> {% data reusables.copilot.spark-deprecation %} + ## Error: "Live preview is interrupted. Try refreshing the page to reconnect." There is a known compatibility issue between Apple's Safari browser and the way {% data variables.product.prodname_spark_short %} renders its live preview. diff --git a/content/copilot/tutorials/cloud-agent/improve-a-project.md b/content/copilot/tutorials/cloud-agent/improve-a-project.md index a2b0415e805a..9f5a6692e5d1 100644 --- a/content/copilot/tutorials/cloud-agent/improve-a-project.md +++ b/content/copilot/tutorials/cloud-agent/improve-a-project.md @@ -200,4 +200,4 @@ Now that you have created issues, the next step is to delegate an issue to {% da ## Next steps -Read this case study on the {% data variables.product.github %} blog: [How the {% data variables.product.github %} billing team uses the {% data variables.copilot.copilot_cloud_agent_short %} in {% data variables.product.prodname_copilot %} to continuously burn down technical debt](https://github.blog/ai-and-ml/github-copilot/how-the-github-billing-team-uses-the-cloud-agent-in-github-copilot-to-continuously-burn-down-technical-debt/). +Read this case study on the {% data variables.product.github %} blog: [How the {% data variables.product.github %} billing team uses the {% data variables.copilot.copilot_cloud_agent_short %} in {% data variables.product.prodname_copilot %} to continuously burn down technical debt](https://github.blog/ai-and-ml/github-copilot/how-the-github-billing-team-uses-the-coding-agent-in-github-copilot-to-continuously-burn-down-technical-debt/). diff --git a/content/copilot/tutorials/reduce-technical-debt.md b/content/copilot/tutorials/reduce-technical-debt.md index d401758c5b07..b425dc065808 100644 --- a/content/copilot/tutorials/reduce-technical-debt.md +++ b/content/copilot/tutorials/reduce-technical-debt.md @@ -376,4 +376,4 @@ After reading this tutorial, do you feel confident you can use {% data variables * [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent) * [AUTOTITLE](/copilot/tutorials/refactor-code) * [How to use GitHub Copilot in your IDE: Tips, tricks, and best practices](https://github.blog/developer-skills/github/how-to-use-github-copilot-in-your-ide-tips-tricks-and-best-practices/) in the {% data variables.product.company_short %} blog -* [5 ways to integrate GitHub {% data variables.copilot.copilot_cloud_agent %} into your workflow](https://github.blog/ai-and-ml/github-copilot/5-ways-to-integrate-github-copilot-cloud-agent-into-your-workflow/) in the {% data variables.product.company_short %} blog +* [5 ways to integrate GitHub {% data variables.copilot.copilot_cloud_agent %} into your workflow](https://github.blog/ai-and-ml/github-copilot/5-ways-to-integrate-github-copilot-coding-agent-into-your-workflow/) in the {% data variables.product.company_short %} blog diff --git a/content/copilot/tutorials/spark/build-apps-with-spark.md b/content/copilot/tutorials/spark/build-apps-with-spark.md index 00daa3a41ff8..b2455e52b0c3 100644 --- a/content/copilot/tutorials/spark/build-apps-with-spark.md +++ b/content/copilot/tutorials/spark/build-apps-with-spark.md @@ -16,8 +16,7 @@ category: --- > [!NOTE] -> * {% data reusables.spark.preview-note-spark %} -> * The {% data variables.product.prodname_copilot %} setting that blocks suggestions matching public code may not work as intended when using {% data variables.product.prodname_spark_short %}. See [AUTOTITLE](/copilot/how-tos/manage-your-account/manage-policies#enabling-or-disabling-suggestions-matching-public-code). +> {% data reusables.copilot.spark-deprecation %} ## Introduction @@ -25,6 +24,10 @@ category: This tutorial will guide you through the full lifecycle of building and deploying an app with {% data variables.product.prodname_spark_short %} and exploring its features. +> [!NOTE] +> * {% data reusables.spark.preview-note-spark %} +> * The {% data variables.product.prodname_copilot %} setting that blocks suggestions matching public code may not work as intended when using {% data variables.product.prodname_spark_short %}. See [AUTOTITLE](/copilot/how-tos/manage-your-account/manage-policies#enabling-or-disabling-suggestions-matching-public-code). + ### Prerequisites * A {% data variables.product.github %} account with {% data variables.copilot.copilot_pro_plus_short %}, {% data variables.copilot.copilot_max_short %}, or {% data variables.copilot.copilot_enterprise_short %} license. diff --git a/content/copilot/tutorials/spark/deploy-from-cli.md b/content/copilot/tutorials/spark/deploy-from-cli.md index 488a20f006b5..af19f519f4de 100644 --- a/content/copilot/tutorials/spark/deploy-from-cli.md +++ b/content/copilot/tutorials/spark/deploy-from-cli.md @@ -14,6 +14,9 @@ contentType: tutorials ## Introduction +> [!NOTE] +> {% data reusables.copilot.spark-deprecation %} + If you’re developing your spark further in a {% data variables.product.github %} codespace, you can deploy it directly from the command line using the {% data variables.product.prodname_spark_short %} CLI, an extension of the {% data variables.product.prodname_cli %}. ### Prerequisites diff --git a/content/copilot/tutorials/spark/prompt-tips.md b/content/copilot/tutorials/spark/prompt-tips.md index 8a7e9775236c..d9998b550f12 100644 --- a/content/copilot/tutorials/spark/prompt-tips.md +++ b/content/copilot/tutorials/spark/prompt-tips.md @@ -13,6 +13,9 @@ category: - Author and optimize with Copilot --- +> [!NOTE] +> {% data reusables.copilot.spark-deprecation %} + ## Introduction {% data variables.product.prodname_spark_short %} can build a publishable web app from a single natural language prompt. diff --git a/content/copilot/tutorials/spark/your-first-spark.md b/content/copilot/tutorials/spark/your-first-spark.md index 3c3baa42a636..5c5144bf9660 100644 --- a/content/copilot/tutorials/spark/your-first-spark.md +++ b/content/copilot/tutorials/spark/your-first-spark.md @@ -17,10 +17,14 @@ category: Have you ever had a great idea for an app, but you didn't have the tools to build it? With the help of AI, you can now bring your app ideas to life in minutes using only natural language. In this article, we'll use {% data variables.product.prodname_spark %} to build, improve, and share a word search app without writing a single line of code ourselves. > [!NOTE] -> {% data reusables.spark.preview-note-spark %} +> {% data reusables.copilot.spark-deprecation %} + ## Creating a prototype of your app +> [!NOTE] +> {% data reusables.spark.preview-note-spark %} + Let's start by generating an initial, basic version of our app that we can build on later. 1. Navigate to https://github.com/spark. diff --git a/data/reusables/copilot/spark-deprecation.md b/data/reusables/copilot/spark-deprecation.md new file mode 100644 index 000000000000..746e8bc208cd --- /dev/null +++ b/data/reusables/copilot/spark-deprecation.md @@ -0,0 +1 @@ +Beginning August 4, 2026, {% data variables.product.prodname_spark %} will no longer accept new users or allow the creation of new apps. Existing users can continue to access and use apps they have already created. Open Spark workbench for your app, select "..." and "Create repository" to save your app code before August 31, 2026. \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 4f9dbf11d99b..e3904b3c1d73 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1056,9 +1056,9 @@ } }, "node_modules/@eslint/config-array/node_modules/brace-expansion": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", - "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", + "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", "dev": true, "license": "MIT", "dependencies": { @@ -1147,9 +1147,9 @@ } }, "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", - "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", + "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", "dev": true, "license": "MIT", "dependencies": { @@ -7980,9 +7980,9 @@ } }, "node_modules/eslint-plugin-import/node_modules/brace-expansion": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", - "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", + "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", "dev": true, "license": "MIT", "dependencies": { @@ -8054,9 +8054,9 @@ } }, "node_modules/eslint-plugin-jsx-a11y/node_modules/brace-expansion": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", - "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", + "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", "dev": true, "license": "MIT", "dependencies": { @@ -8200,9 +8200,9 @@ } }, "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", - "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", + "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", "dev": true, "license": "MIT", "dependencies": { @@ -11324,9 +11324,9 @@ } }, "node_modules/matcher-collection/node_modules/brace-expansion": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", - "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", + "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", @@ -12935,9 +12935,9 @@ } }, "node_modules/nodemon/node_modules/brace-expansion": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", - "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.18.tgz", + "integrity": "sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==", "dev": true, "license": "MIT", "dependencies": { diff --git a/src/graphql/data/fpt/schema-enterprise-admin.json b/src/graphql/data/fpt/schema-enterprise-admin.json index 301116f496a0..2fbc81a17bcb 100644 --- a/src/graphql/data/fpt/schema-enterprise-admin.json +++ b/src/graphql/data/fpt/schema-enterprise-admin.json @@ -694,7 +694,7 @@ "name": "removeEnterpriseMember", "id": "removeenterprisemember", "href": "/graphql/reference/enterprise-admin#mutation-removeenterprisemember", - "description": "
Completely removes a user from the enterprise.
", + "description": "Completely removes a user from the enterprise asynchronously.
", "isDeprecated": false, "inputFields": [ { diff --git a/src/graphql/data/fpt/schema.docs.graphql b/src/graphql/data/fpt/schema.docs.graphql index b58186b28b1d..41cb5ceb8e5f 100644 --- a/src/graphql/data/fpt/schema.docs.graphql +++ b/src/graphql/data/fpt/schema.docs.graphql @@ -28577,7 +28577,7 @@ type Mutation @docsCategory(name: "meta") { ): RemoveEnterpriseIdentityProviderPayload @docsCategory(name: "enterprise-admin") """ - Completely removes a user from the enterprise + Completely removes a user from the enterprise asynchronously. """ removeEnterpriseMember( """ diff --git a/src/graphql/data/ghec/schema-enterprise-admin.json b/src/graphql/data/ghec/schema-enterprise-admin.json index 301116f496a0..2fbc81a17bcb 100644 --- a/src/graphql/data/ghec/schema-enterprise-admin.json +++ b/src/graphql/data/ghec/schema-enterprise-admin.json @@ -694,7 +694,7 @@ "name": "removeEnterpriseMember", "id": "removeenterprisemember", "href": "/graphql/reference/enterprise-admin#mutation-removeenterprisemember", - "description": "Completely removes a user from the enterprise.
", + "description": "Completely removes a user from the enterprise asynchronously.
", "isDeprecated": false, "inputFields": [ { diff --git a/src/graphql/data/ghec/schema.docs.graphql b/src/graphql/data/ghec/schema.docs.graphql index b58186b28b1d..41cb5ceb8e5f 100644 --- a/src/graphql/data/ghec/schema.docs.graphql +++ b/src/graphql/data/ghec/schema.docs.graphql @@ -28577,7 +28577,7 @@ type Mutation @docsCategory(name: "meta") { ): RemoveEnterpriseIdentityProviderPayload @docsCategory(name: "enterprise-admin") """ - Completely removes a user from the enterprise + Completely removes a user from the enterprise asynchronously. """ removeEnterpriseMember( """ diff --git a/src/links/lib/excluded-links.yml b/src/links/lib/excluded-links.yml index 256f4f1e8110..890efb387f2b 100644 --- a/src/links/lib/excluded-links.yml +++ b/src/links/lib/excluded-links.yml @@ -179,3 +179,9 @@ # registry.modelcontextprotocol.io blocks automated link checkers. - startsWith: https://registry.modelcontextprotocol.io/ + +# marketplace.microsoft.com returns 403 from CI runners (bot-blocking). +- startsWith: https://marketplace.microsoft.com/ + +# dotnet.microsoft.com returns 403 from CI runners (bot-blocking). +- startsWith: https://dotnet.microsoft.com/