diff --git a/.github/workflows/confirm-internal-staff-work-in-docs.yml b/.github/workflows/confirm-internal-staff-work-in-docs.yml index 8be28f4a6c76..af3f546418d4 100644 --- a/.github/workflows/confirm-internal-staff-work-in-docs.yml +++ b/.github/workflows/confirm-internal-staff-work-in-docs.yml @@ -68,7 +68,7 @@ jobs: repo: process.env.TEAM_CONTENT_REPO, title: `@${context.payload.sender.login} confirm that \#${issueNo} should be in the public github/docs repo`, body: `@${context.payload.sender.login} opened https://github.com/github/docs/issues/${issueNo} publicly in the github/docs repo, instead of the private github/${process.env.TEAM_CONTENT_REPO} repo.\n\n@${context.payload.sender.login}, please confirm that this belongs in the public repo and that no sensitive information was disclosed by commenting below and closing the issue.\n\nIf this was not intentional and sensitive information was shared, please delete https://github.com/github/docs/issues/${issueNo} and notify us in the \#docs-open-source channel.\n\nThanks!`, - labels: ['OS confirmation'], + labels: ['OS confirmation', 'skip FR board'], }); core.setOutput('did_warn', 'true') diff --git a/Dockerfile b/Dockerfile index 91ae75e8bab0..181ac9c423c5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,7 +8,7 @@ # --------------------------------------------------------------- # To update the sha: # https://github.com/github/gh-base-image/pkgs/container/gh-base-image%2Fgh-base-noble -FROM ghcr.io/github/gh-base-image/gh-base-noble:20250319-193531-g83d4e6244 AS base +FROM ghcr.io/github/gh-base-image/gh-base-noble:20250407-184504-g7b9deed09 AS base # Install curl for Node install and determining the early access branch # Install git for cloning docs-early-access & translations repos diff --git a/assets/images/help/security/driver-sec-campaign-view.png b/assets/images/help/security/driver-sec-campaign-view.png index eb96cdeb2df4..c4ef4e92bee2 100644 Binary files a/assets/images/help/security/driver-sec-campaign-view.png and b/assets/images/help/security/driver-sec-campaign-view.png differ diff --git a/assets/images/help/security/security-campaigns-tracking-overview.png b/assets/images/help/security/security-campaigns-tracking-overview.png new file mode 100644 index 000000000000..0d14d3501fce Binary files /dev/null and b/assets/images/help/security/security-campaigns-tracking-overview.png differ diff --git a/config/kubernetes/production/deployments/webapp.yaml b/config/kubernetes/production/deployments/webapp.yaml index 61812c073af3..7ff90e7c4146 100644 --- a/config/kubernetes/production/deployments/webapp.yaml +++ b/config/kubernetes/production/deployments/webapp.yaml @@ -23,8 +23,15 @@ spec: image: docs-internal resources: requests: - cpu: 8000m - memory: 10Gi + cpu: 4000m + # Absolute minimum to start app is 1000m + # Node is single-threaded but we want more CPUs + # for OS and image resizing, and other binary executions + # Better to increase replicas or memory than CPU + memory: 8Gi + # Absolute minimum to start app is 4500Mi + # Would increase with more pages, versions, or languages supported + # The additional memory helps during traffic surges limits: cpu: 16000m memory: 16Gi diff --git a/content/code-security/code-scanning/managing-code-scanning-alerts/best-practices-for-participating-in-a-security-campaign.md b/content/code-security/code-scanning/managing-code-scanning-alerts/best-practices-for-participating-in-a-security-campaign.md new file mode 100644 index 000000000000..8eb261d2a930 --- /dev/null +++ b/content/code-security/code-scanning/managing-code-scanning-alerts/best-practices-for-participating-in-a-security-campaign.md @@ -0,0 +1,121 @@ +--- +title: Best practices for participating in a security campaign +shortTitle: Best practices for campaigns +intro: 'Learn how you can successfully take part in a security campaign and how it can benefit your career as well as your code.' +allowTitleToDifferFromFilename: true +permissions: '{% data reusables.permissions.code-scanning-all-alerts %}' +product: '{% data reusables.gated-features.security-campaigns %}' +type: how_to +versions: + feature: security-campaigns +topics: + - Code Security + - Code scanning + - Alerts + - Repositories +--- + +## What is a security campaign + +A security campaign is a group of security alerts, detected in the default branches of repositories, chosen by an organization owner or security manager for remediation. + +You can take part in a security campaign by fixing one or more of the alerts included in the campaign. + +## What are the benefits of participating in a campaign + +In addition to the benefit of removing an important security problem from your organization's codebase, alerts in a security campaign have several other benefits compared with fixing another alert in your repository. + +* You have a campaign manager on the security team to collaborate with and a specific contact link for discussing campaign activities. +* You know that you are fixing a security alert that is important to the company. +* Potentially, you may have access to targeted training materials.{% ifversion security-campaigns-autofix %} +* You don't need to request a {% data variables.product.prodname_copilot_autofix %} suggestion, it is already available as a starting point.{% endif %}{% ifversion copilot %} +* If you have access to {% data variables.product.prodname_copilot_chat %}, you can ask questions about the alert and the suggested fix.{% endif %} +* You are improving and demonstrating your knowledge of secure coding. + +Adopting a few key best practices can help you participate successfully in a campaign. + +## Stay informed + +### Notification settings + +To receive email updates about security campaigns in repositories you have write access to, make sure that you: + +* **Watch** all repositories that you have write access to. +* **Subscribe** to notifications for "All activity" or "Security alerts". + +### View campaign details + +When you open the **Security** tab for a repository with one or more campaign alerts, you can see the campaign name in the sidebar of the view. Click the campaign name to see the list of alerts included in the campaign and summary information on how the campaign is progressing. + +### Campaign-generated {% data variables.product.prodname_github_issues %} + +Some campaigns automatically create {% data variables.product.prodname_github_issues %} for each repository which details the campaign managers, contact URL, and due date. + +You can use this issue to plan and track campaign work as part of your usual workflows, such as: + +* Adding the issue to project boards +* Adding assignees +* Creating sub-issues or tasklists + +## Seek context + +Your security team may provide you with specific training ahead of participating in a campaign, so that you feel equipped to address the alerts included in the campaign. + +If no formal training program is available, you can request that the campaign manager shares information on: + +* Types of security vulnerabilities included in the campaign +* Examples of how to fix them +* How to test the fixes + +In addition, there are external resources for understanding common security issues: + +* The **OWASP Foundation** provides many resources for learning about the most common vulnerabilities, see [About the OWASP Foundation](https://owasp.org/about/). +* The **MITRE Corporation** maintains a detailed list of common weaknesses, see [About CWE](https://cwe.mitre.org/about/index.html). + +## Group similar alerts + +When fixing security alerts as part of a campaign, it may be helpful to group and fix similar alerts together. By doing so, you can develop a deeper understanding of the underlying issue. As you gain confidence and efficiency in resolving a specific type of alert, it makes it easier and faster for you to resolve subsequent alerts. + +{% ifversion copilot %} + +## Leverage {% data variables.product.prodname_copilot_short %} + +{% ifversion code-scanning-autofix %} + +### {% data variables.product.prodname_copilot_autofix_short %} + +{% data variables.product.prodname_copilot_autofix_short %} is automatically triggered for alerts that are included in a campaign, meaning that where possible, fixes are automatically generated for you. You can commit the suggested fix to resolve the alert and then verify that continuous integration testing (CI) for the codebase is still passing. See [AUTOTITLE](/code-security/code-scanning/managing-code-scanning-alerts/fixing-alerts-in-security-campaign). + +### {% data variables.product.prodname_copilot_chat_short %} + +{% endif %} + +You can ask {% data variables.product.prodname_copilot_chat_short %} for help in understanding the vulnerability, the suggested fix, and how to test that the fix is comprehensive. To access {% data variables.product.prodname_copilot_chat_short %}, navigate to https://github.com/copilot. + +Alternatively, when viewing a specific alert, in the top right corner of the page, click the {% data variables.product.prodname_copilot_chat_short %} icon ({% octicon "copilot" aria-hidden="true" %}) to open a chat window, and ask {% data variables.product.prodname_copilot_short %} questions about the alert. + +For example: + + ```text copy + + Explain how this alert introduces a vulnerability into the code. + + ``` + +If you don't already have access to {% data variables.product.prodname_copilot_chat_short %} through your organization{% ifversion ghec %} or enterprise{% endif %}, you can sign up to {% data variables.product.prodname_copilot_free %}. For more information, see [AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/managing-copilot-free/accessing-github-copilot-free). + +{% endif %} + +## Ask questions + +A security campaign will generally include a contact URL, which might link you to the campaign manager, an open forum (such as a {% data variables.product.github %} Discussion), or a website of resources. You should use this space to ask questions about the campaign or specific alerts, find useful resources, and share knowledge. + +To find the contact URL: + +1. Open the **Security** tab for your repository. +1. On the left sidebar, click the name of the campaign you are participating in. +1. On the campaign tracking page, to the right of the campaign manager's name, click **{% octicon "comment" aria-hidden="true" %}**. + +## Next steps + +* [AUTOTITLE](/code-security/code-scanning/managing-code-scanning-alerts/fixing-alerts-in-security-campaign) diff --git a/content/code-security/code-scanning/managing-code-scanning-alerts/fixing-alerts-in-security-campaign.md b/content/code-security/code-scanning/managing-code-scanning-alerts/fixing-alerts-in-security-campaign.md index 25225ac668ef..ae44a3f2292d 100644 --- a/content/code-security/code-scanning/managing-code-scanning-alerts/fixing-alerts-in-security-campaign.md +++ b/content/code-security/code-scanning/managing-code-scanning-alerts/fixing-alerts-in-security-campaign.md @@ -1,7 +1,7 @@ --- title: Fixing alerts in a security campaign shortTitle: Fix alerts in campaign -intro: 'Learn how you can take part in a security campaign and how it can benefit your career as well as your code.' +intro: 'Learn how to find and fix alerts in a security campaign.' allowTitleToDifferFromFilename: true permissions: '{% data reusables.permissions.code-scanning-all-alerts %}' product: '{% data reusables.gated-features.security-campaigns %}' @@ -14,32 +14,14 @@ topics: - Alerts - Repositories --- -{% data reusables.security-campaigns.preview-note %} - -## What is a security campaign - -A security campaign is a group of security alerts, detected in the default branches of repositories, chosen by an organization owner or security manager for remediation. When a security campaign is created with alerts in repositories that you have write access to, you are notified if you subscribe to email notifications for "All activity" or "Security alerts". In addition, when you open the **Security** tab for a repository with one or more campaign alerts, you can see the campaign name in the sidebar of the view. - -You can take part in a security campaign by fixing one or more of the alerts chosen for the campaign. - -## What are the benefits of fixing alerts in a campaign - -In addition to the benefit of removing an important security problem from your code, alerts in a security campaign have several other benefits compared with fixing another alert in your repository. - -* You have a campaign manager on the security team to collaborate with and a specific contact link for discussing campaign activities. -* You know that you are fixing a security alert that is important to the company. -* Potentially, you may have access to targeted training materials.{% ifversion security-campaigns-autofix %} -* You don't need to request a {% data variables.product.prodname_copilot_autofix %} suggestion, it is already available as a starting point.{% endif %}{% ifversion copilot %} -* If you have access to {% data variables.product.prodname_copilot_chat %}, you can ask questions about the alert and the suggested fix.{% endif %} -* You are improving and demonstrating your knowledge of secure coding. ## Viewing alerts in a security campaign When a campaign targets security alerts in a repository that you have write access to, you can navigate to the list of repository alerts in the campaign. -* Display the **Security** tab for the repository and click one of the campaigns under the "Campaigns" title in the sidebar. +* Display the **Security** tab for the repository and click one of the campaigns under "Campaigns" in the sidebar. * If you have enabled email notifications for "All activity" or "Security alerts" in the repository, click **View security campaign** in the campaign email. -* If you have write access to more than one repository in the organization, display the **Security** tab for the organization and click one of the campaigns under the "Campaigns" title in the sidebar. +* If you have write access to more than one repository in the organization, display the **Security** tab for the organization and click one of the campaigns under "Campaigns" in the sidebar. This view shows the alerts in the current repository for a campaign called "SQL injection (CWE-89)" (highlighted gray) that is managed by "octocat" (outlined in dark orange). @@ -69,10 +51,6 @@ If you want to see the code that triggered the security alert and the suggested If you have access to {% data variables.product.prodname_copilot_chat_short %} then you can ask the AI questions about the vulnerability, the suggested fix, and how to test that the fix is comprehensive. -To get the most out of {% data variables.product.prodname_copilot_chat_short %} when you're working with alerts, you should explicitly ask {% data variables.product.prodname_copilot_chat_short %} to use the {% data variables.product.prodname_GH_advanced_security %} skill to answer your questions. - -For example: "Use the {% data variables.product.prodname_GH_advanced_security %} skill to explain how this alert introduces a vulnerability into the code." - > [!TIP] > {% data reusables.copilot.semantic-index-info %} diff --git a/content/code-security/code-scanning/managing-code-scanning-alerts/index.md b/content/code-security/code-scanning/managing-code-scanning-alerts/index.md index 19fe18363ac6..d429e0cf5e8d 100644 --- a/content/code-security/code-scanning/managing-code-scanning-alerts/index.md +++ b/content/code-security/code-scanning/managing-code-scanning-alerts/index.md @@ -17,6 +17,7 @@ children: - /disabling-autofix-for-code-scanning - /assessing-code-scanning-alerts-for-your-repository - /resolving-code-scanning-alerts + - /best-practices-for-participating-in-a-security-campaign - /fixing-alerts-in-security-campaign - /triaging-code-scanning-alerts-in-pull-requests - /tracking-code-scanning-alerts-in-issues-using-task-lists diff --git a/content/code-security/securing-your-organization/fixing-security-alerts-at-scale/about-security-campaigns.md b/content/code-security/securing-your-organization/fixing-security-alerts-at-scale/about-security-campaigns.md index 239b6ee6e7b1..155323ff342a 100644 --- a/content/code-security/securing-your-organization/fixing-security-alerts-at-scale/about-security-campaigns.md +++ b/content/code-security/securing-your-organization/fixing-security-alerts-at-scale/about-security-campaigns.md @@ -15,8 +15,6 @@ topics: Once you have identified security alerts in the default branches of your repositories, the next step is to identify the most urgent alerts and get them fixed. Security campaigns are a way to group alerts and share them with developers, so you can collaborate to remediate vulnerabilities in the code. -{% data reusables.security-campaigns.preview-note %} - ## Security campaigns in your day-to-day work You can use security campaigns to support many of your aims as a security leader. @@ -30,14 +28,16 @@ You can use security campaigns to support many of your aims as a security leader A security campaign has many benefits over other ways of encouraging developers to remediate security alerts. In particular, -* Developers are notified about any security campaigns taking place in repositories they work in or subscribe to (by email during the {% data variables.release-phases.public_preview %}). +* Developers are notified about any security campaigns taking place in repositories they work in or subscribe to by email. * Developers can see the alerts you've highlighted for remediation without leaving their normal workflows. * Each campaign has a named point of contact for questions, reviews, and collaboration. {% ifversion security-campaigns-autofix %} * {% data variables.product.prodname_copilot_autofix %} is automatically triggered to suggest a resolution for each security alert. {% endif %} -In addition, you can use one of the templates to select a group of closely related alerts for a campaign. This allows developers to build on the knowledge gained by resolving one alert and use it to fix several more, providing them with an incentive to fix multiple alerts. +You can use one of the templates to select a group of closely related alerts for a campaign. This allows developers to build on the knowledge gained by resolving one alert and use it to fix several more, providing them with an incentive to fix multiple alerts. + +{% data reusables.code-scanning.campaigns-api %} ## Next steps * [AUTOTITLE](/code-security/securing-your-organization/fixing-security-alerts-at-scale/best-practice-fix-alerts-at-scale) -* [AUTOTITLE](/code-security/securing-your-organization/fixing-security-alerts-at-scale/creating-tracking-security-campaigns) +* [AUTOTITLE](/code-security/securing-your-organization/fixing-security-alerts-at-scale/creating-managing-security-campaigns) diff --git a/content/code-security/securing-your-organization/fixing-security-alerts-at-scale/best-practice-fix-alerts-at-scale.md b/content/code-security/securing-your-organization/fixing-security-alerts-at-scale/best-practice-fix-alerts-at-scale.md index 08af08154e39..ecb99765c611 100644 --- a/content/code-security/securing-your-organization/fixing-security-alerts-at-scale/best-practice-fix-alerts-at-scale.md +++ b/content/code-security/securing-your-organization/fixing-security-alerts-at-scale/best-practice-fix-alerts-at-scale.md @@ -12,7 +12,6 @@ topics: - Organizations - Security --- -{% data reusables.security-campaigns.preview-note %} ## Elements of a successful security campaign @@ -47,6 +46,10 @@ For example, if you have many alerts for cross-site scripting vulnerabilities, y When you select alerts to include in a security campaign, you can use any of the filters on the security alerts page to define a subset of alerts. Alternatively, you can choose a campaign template to use one of the pre-defined filters for common needs, for example: "Cross-site scripting (CWE-79)." +### Draft campaigns + +It can be useful to create a draft campaign first, which lists the alerts that are set to be included in the campaign and the campaign details, so that you can collaborate on the scope of the campaign prior to publishing it. For guidance on creating a draft campaign, see [AUTOTITLE](/code-security/securing-your-organization/fixing-security-alerts-at-scale/creating-managing-security-campaigns#create-a-campaign). + ### Limitations on security campaigns The following limitations are intended to encourage you to take a balanced and measured approach to remediating alerts in your code. An iterative approach, addressing a few targeted sets of alerts at a time, is likely to lead to a sustainable and long-term change in security posture. @@ -66,6 +69,12 @@ The names of the campaign managers are visible to developers when they take part If you want to increase the remediation rate for alerts and scale the knowledge of the security team, this is a key opportunity to build collaborative relationships with developers. Ideally, the campaign managers are available to answer questions and collaborate on difficult fixes via the contact link. Campaign managers should also be available to review pull requests for fixes over the whole course of the campaign. +## Creating issues for a campaign + +When you create a campaign, you can choose to automatically open a {% data variables.product.github %} Issue in every repository involved in the campaign. This means that the work can be much more easily tracked, assigned, and managed on team project boards. What's more, when you update the details of the campaign, such as the contact link or due date, the issue body gets automatically updated with the latest information. When a campaign reaches its due date, or gets deleted or closed, a comment is automatically posted on the issue. + +This can aid developer engagement by providing clear, up-to-date context directly within developers' existing workflows. For information on how to automate issue creation for campaigns, see [AUTOTITLE](/code-security/securing-your-organization/fixing-security-alerts-at-scale/creating-managing-security-campaigns#create-a-campaign). + ## Combining security training with a security campaign If your security team already provides training for developers on secure coding, creating a campaign with alerts chosen to allow developers to use the skills from the training session is a great way to reinforce their learning. Even if you don't have a formal training program, it makes sense to provide information on the types of security vulnerabilities included in the campaign, examples of how to fix them, and how to test the fixes. This will simplify the role of the campaign manager as they will be able to direct developers to these resources for answers to basic questions. @@ -80,8 +89,6 @@ The OWASP Foundation provides many resources for learning about the most common {% data variables.product.prodname_copilot %} is an important tool for developers who have questions about secure coding, how to fix security alerts, and test their fix. Check that all developers in your organization have access to {% data variables.product.prodname_copilot_short %} in both their IDE and {% data variables.product.github %}, see [AUTOTITLE](/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/granting-access-to-copilot-for-members-of-your-organization). -> [!TIP] The {% data variables.product.prodname_GH_advanced_security %} skill provides {% data variables.product.prodname_copilot_chat_short %} with additional context to answer questions about security alerts. - {% endif %} ## Considerations in starting a security campaign and defining a deadline @@ -90,4 +97,4 @@ As with any other project, it's important to define realistic timescales to avoi ## Next steps -* [AUTOTITLE](/code-security/securing-your-organization/fixing-security-alerts-at-scale/creating-tracking-security-campaigns) +* [AUTOTITLE](/code-security/securing-your-organization/fixing-security-alerts-at-scale/creating-managing-security-campaigns) diff --git a/content/code-security/securing-your-organization/fixing-security-alerts-at-scale/creating-managing-security-campaigns.md b/content/code-security/securing-your-organization/fixing-security-alerts-at-scale/creating-managing-security-campaigns.md new file mode 100644 index 000000000000..7c996602fbcf --- /dev/null +++ b/content/code-security/securing-your-organization/fixing-security-alerts-at-scale/creating-managing-security-campaigns.md @@ -0,0 +1,148 @@ +--- +title: Creating and managing security campaigns +shortTitle: Create security campaigns +intro: 'You can manage security campaigns directly from the security overview for your organization.' +allowTitleToDifferFromFilename: true +permissions: '{% data reusables.permissions.security-org-enable %}' +product: '{% data reusables.gated-features.security-campaigns %}' +type: how_to +versions: + feature: security-campaigns +topics: + - Code Security + - Organizations + - Security +redirect_from: + - /code-security/securing-your-organization/fixing-security-alerts-at-scale/creating-tracking-security-campaigns +--- + +## Creating a security campaign + +Security campaigns are created and managed from the **Security** tab for your organization. + +You choose the alerts that you want to include in the campaign by using either: + + * **Campaign templates**: Campaign templates contain filters for the most common alert selections. {% ifversion security-campaigns-autofix %}They also all include the requirement that {% data variables.product.prodname_copilot_autofix %} is supported for all the alert types included (that is, `autofix:supported`).{% endif %} + * **Custom filters**: Creating a campaign using custom filters lets you define your own criteria for selecting alerts for the campaign, and lets you tailor your campaign to your organization's specific needs. + +{% data reusables.code-scanning.campaigns-api %} + +### Create a campaign + +{% data reusables.organizations.navigate-to-org %} +{% data reusables.organizations.security-overview %} +{% data reusables.code-scanning.campaigns-click %} +1. Click **Create campaign {% octicon "triangle-down" aria-hidden="true" %}**, then select one of the following options: + * Click **From template**, then select a pre-defined campaign template from the list. + * Click **From code scanning filters**, then add filters to define a subset of alerts for your campaign. See [Examples of useful filters](#examples-of-useful-filters). +1. Review the set of alerts to be included in the campaign, and adjust the filters as necessary. Make sure you have chosen 1000 alerts or fewer. +1. When you are satisfied with the scope of the campaign, click **Save as**, then choose whether you want to create a draft campaign, or move straight ahead to finalizing the details of the campaign before publishing it: + * If you plan to review the scope and details of the campaign prior to launch, or seek feedback on the implementation of the campaign, click **{% octicon "issue-draft" aria-hidden="true" %} Draft campaign**. + * If you intend to publish the campaign, and don't need a review phase, click **{% octicon "goal" aria-hidden="true" %} Publish campaign**. +1. Optionally, if you have chosen to create a draft campaign, edit, save, and review the details of the campaign: + * Edit the "Campaign name" and "Short description" to match your campaign needs and to link to any resources that support the campaign. + * Define a "Campaign due date" and select one or more "Campaign managers" as the primary contacts for the campaign. Campaign managers must be users or teams that are owners or security managers in the organization. + * Optionally, provide a "Contact link", for example a link to a {% data variables.product.prodname_discussions %} or another communication channel, for contacting the campaign managers. + * Click **Save draft**. + * When you are ready to publish the campaign, in the top right corner, click **Review and publish**. +1. On the "Publish campaign" page, review or edit the campaign details: + * Campaign name + * Short description + * Due date + * Campaign managers + * Contact link +1. Optionally, to create campaign issues in each repository included in the campaign, on the "Publish campaign" page, under "Automations", select the checkbox next to "Create issues for NUMBER repositories in this campaign". +1. Click **Publish campaign**. + +The security campaign is created and the campaign overview page is displayed. + +{% note %} + +Did you successfully create a security campaign for your organization? + +Yes No + +{% endnote %} + +### Examples of useful filters + +All the template filters include the following useful filters: + +* `is:open` includes only alerts that are open in the default branch. +* `autofilter:true` includes only alerts that appear to be in application code. {% ifversion security-campaigns-autofix %} +* `autofix:supported` includes only alerts that are for rules that are supported for {% data variables.product.prodname_copilot_autofix %}.{% endif %} + +Once you include these core filters, you will usually want to add a filter to limit results to a specific rule name, severity, or tag. For example: + +* `is:open autofilter:true {% ifversion security-campaigns-autofix %}autofix:supported {% endif %}rule:java/log-injection` to show only alerts for log injection in Java code. +* `is:open autofilter:true {% ifversion security-campaigns-autofix %}autofix:supported {% endif %}tag:external/cwe/cwe-117` to show only alerts for "CWE 117: Improper Output Neutralization for Logs". This includes log injection in Java and other languages. +* `is:open autofilter:true {% ifversion security-campaigns-autofix %}autofix:supported {% endif %}severity:critical` to show only alerts with a security severity of critical. + +> [!TIP] When you enter a keyword followed by colon in the search field, a list of all valid values is displayed, for example: `tag:`. + +For more information about the rules run by {% data variables.product.prodname_codeql %}{% ifversion security-campaigns-autofix %} and support for autofix{% endif %}, see [Query lists for the default query suites](/code-security/code-scanning/managing-your-code-scanning-configuration/codeql-query-suites#query-lists-for-the-default-query-suites). + +For more information about filtering alerts, see [AUTOTITLE](/code-security/securing-your-organization/fixing-security-alerts-at-scale/best-practice-fix-alerts-at-scale#selecting-security-alerts-for-remediation) and [AUTOTITLE](/code-security/security-overview/filtering-alerts-in-security-overview). + +## Launching a security campaign + +{% ifversion security-campaigns-autofix %} + +When you create a campaign, all the alerts are automatically submitted to {% data variables.product.prodname_copilot_autofix %} to be processed as capacity allows. This ensures that suggestions for alerts found in pull requests aren't delayed by a new campaign. In most cases, you should find that all suggestions that can be created are ready within an hour. At busy times of day, or for particularly complex alerts, it will take longer. + +{% endif %} + +### How developers know a security campaign has started + +When a campaign is started, anyone with **write** access to a repository included in the campaign, and has subscribed to watch either "All activity" or "security alerts" in that repository, is notified. + +In addition to the automatic notifications sent out, the new campaign is shown in the sidebar of the "Security" tab for each repository included. For more information about the developer experience, see [AUTOTITLE](/code-security/code-scanning/managing-code-scanning-alerts/fixing-alerts-in-security-campaign). + +### How to increase engagement with the security campaign + +The best way to increase engagement with a campaign is to publicize it to the teams you want to collaborate with to remediate alerts. For example, you might work with engineering managers to choose a quieter development period to run a series of security campaigns, each focused on a different type of alert, with associated training sessions. For more ideas, see [AUTOTITLE](/code-security/securing-your-organization/fixing-security-alerts-at-scale/best-practice-fix-alerts-at-scale). + +## Editing security campaign details + +You can edit the name, description, due date, and manager for a campaign. + +{% data reusables.organizations.navigate-to-org %} +{% data reusables.organizations.security-overview %} +{% data reusables.code-scanning.campaigns-click %} +1. From the list of campaigns, click the name of the campaign to display the campaign tracking view. +1. In the campaign title row, click {% octicon "kebab-horizontal" aria-label="Campaign options" %} and select **{% octicon "pencil" aria-hidden="true" %} Edit campaign**. +1. In the "Edit campaign" dialog make your changes and then click **Save changes**. + +The changes are made immediately. + +## Closing, reopening and deleting security campaigns + +There is a limit of 10 active campaigns. When a campaign is complete, or if you want to pause it, you should close it. You can still view all closed campaigns in the "Closed" campaign list, and you can reopen a closed campaign. + +If you don't need to retain the campaign or its data, you can delete it. + +### Close a campaign + +{% data reusables.organizations.navigate-to-org %} +{% data reusables.organizations.security-overview %} +{% data reusables.code-scanning.campaigns-click %} +1. To the right of the campaign you want to close, click {% octicon "kebab-horizontal" aria-label="Campaign options" %}, then select **{% octicon "archive" aria-hidden="true" %} Close campaign**. + +### Reopen a closed campaign + +{% data reusables.organizations.navigate-to-org %} +{% data reusables.organizations.security-overview %} +{% data reusables.code-scanning.campaigns-click %} +1. Above the list of campaigns, click **Closed** to view the list of closed campaigns. +1. To the right of the campaign you want to reopen, click {% octicon "kebab-horizontal" aria-label="Campaign options" %}, then select **{% octicon "play" aria-hidden="true" %} Reopen campaign**. + +### Delete a campaign + +{% data reusables.organizations.navigate-to-org %} +{% data reusables.organizations.security-overview %} +{% data reusables.code-scanning.campaigns-click %} +1. To the right of the campaign you want to delete, click {% octicon "kebab-horizontal" aria-label="Campaign options" %}, then select **{% octicon "trash" aria-hidden="true" %} Delete campaign**. + +## Next steps + +* [AUTOTITLE](/code-security/securing-your-organization/fixing-security-alerts-at-scale/tracking-security-campaigns) diff --git a/content/code-security/securing-your-organization/fixing-security-alerts-at-scale/creating-tracking-security-campaigns.md b/content/code-security/securing-your-organization/fixing-security-alerts-at-scale/creating-tracking-security-campaigns.md deleted file mode 100644 index 4d89d878f0cc..000000000000 --- a/content/code-security/securing-your-organization/fixing-security-alerts-at-scale/creating-tracking-security-campaigns.md +++ /dev/null @@ -1,141 +0,0 @@ ---- -title: Creating and tracking security campaigns -shortTitle: Create security campaigns -intro: 'You can manage security campaigns directly from the security overview for your organization.' -allowTitleToDifferFromFilename: true -permissions: '{% data reusables.permissions.security-org-enable %}' -product: '{% data reusables.gated-features.security-campaigns %}' -type: how_to -versions: - feature: security-campaigns -topics: - - Code Security - - Organizations - - Security ---- - -{% data reusables.security-campaigns.preview-note %} - -## Creating a security campaign - -Security campaigns are created and managed from the **Security** tab for your organization. You choose the alerts to include in a campaign by selecting a campaign template from the sidebar of the "Overview" dashboard or by filtering the alerts displayed on the {% data variables.product.prodname_code_scanning %} alerts view for your organization. - -For more information about filtering alerts, see [AUTOTITLE](/code-security/securing-your-organization/fixing-security-alerts-at-scale/best-practice-fix-alerts-at-scale#selecting-security-alerts-for-remediation) and [AUTOTITLE](/code-security/security-overview/filtering-alerts-in-security-overview). - -### Creating a campaign from a template - -The campaign templates contain filters for the most common alert selections. {% ifversion security-campaigns-autofix %}They also all include the requirement that {% data variables.product.prodname_copilot_autofix %} is supported for all the alert types included (that is, `autofix:supported`).{% endif %} - -{% data reusables.organizations.navigate-to-org %} -{% data reusables.organizations.security-overview %} -1. In the left sidebar, next to "Campaigns", click the {% octicon "plus" aria-label="New campaign" %} icon to start creating a campaign. -1. Select one of the pre-defined filter templates to open a "New campaign from TEMPLATE_NAME template" dialog box. -1. If the message "This looks like a big campaign" is displayed, click **Back to filters** to display the {% data variables.product.prodname_code_scanning %} alerts view with the campaign template filter shown. - 1. Add further filters to reduce the number of alerts shown, for example, filtering by "Team" or by custom property. - 1. When there are 1000 alerts or fewer, click **Create campaign** to redisplay the "New campaign" dialog. - - Alternatively, you can click **Continue creating a campaign** and create the campaign. {% data reusables.security-campaigns.too-many-alerts %} - -{% data reusables.security-campaigns.campaign-configuration %} - -The security campaign is created and the campaign overview page is displayed. - -### Creating a campaign using custom filters - -{% data reusables.organizations.navigate-to-org %} -{% data reusables.organizations.security-overview %} -1. In the left sidebar, under "Alerts" click **{% octicon "codescan" aria-hidden="true" %} {% data variables.product.prodname_code_scanning_caps %}** to show the alerts view. -1. Add filters to select a subset of alerts for your campaign. When you have chosen 1000 alerts or fewer, you are ready to create a campaign. -1. Above the table of alerts, click **Create campaign** to start creating a campaign. -1. If the message "This looks like a big campaign" is displayed, click **Back to filters** to display the {% data variables.product.prodname_code_scanning %} alerts view with your existing filters. - 1. Add further filters to reduce the number of alerts shown, for example, filtering by "Team" or by custom property. - 1. When there are fewer than 1000 alerts, click **Create campaign** to redisplay the "New campaign" dialog. - - Alternatively, you can click **Continue creating a campaign** and create the campaign. {% data reusables.security-campaigns.too-many-alerts %} - -{% data reusables.security-campaigns.campaign-configuration %} - -### Examples of useful filters - -All the template filters include the following useful filters: - -* `is:open` includes only alerts that are open in the default branch. -* `autofilter:true` includes only alerts that appear to be in application code. {% ifversion security-campaigns-autofix %} -* `autofix:supported` includes only alerts that are for rules that are supported for {% data variables.product.prodname_copilot_autofix %}.{% endif %} - -Once you include these core filters, you will usually want to add a filter to limit results to a specific rule name, severity, or tag. For example: - -* `is:open autofilter:true {% ifversion security-campaigns-autofix %}autofix:supported {% endif %}rule:java/log-injection` to show only alerts for log injection in Java code. -* `is:open autofilter:true {% ifversion security-campaigns-autofix %}autofix:supported {% endif %}tag:external/cwe/cwe-117` to show only alerts for "CWE 117: Improper Output Neutralization for Logs". This includes log injection in Java and other languages. -* `is:open autofilter:true {% ifversion security-campaigns-autofix %}autofix:supported {% endif %}severity:critical` to show only alerts with a security severity of critical - -> [!TIP] When you enter a keyword followed by colon in the search field, a list of all valid values is displayed, for example: `tag:`. - -For more information about the rules run by {% data variables.product.prodname_codeql %}{% ifversion security-campaigns-autofix %} and support for autofix{% endif %}, see [Query lists for the default query suites](/code-security/code-scanning/managing-your-code-scanning-configuration/codeql-query-suites#query-lists-for-the-default-query-suites). - -## Launching a security campaign - -{% ifversion security-campaigns-autofix %} - -When you create a campaign all the alerts are automatically submitted to {% data variables.product.prodname_copilot_autofix %} to be processed as capacity allows. This ensures that suggestions for alerts found in pull requests aren't delayed by a new campaign. In most cases, you should find that all suggestions that can be created are ready within an hour. At busy times of day, or for particularly complex alerts, it will take longer. - -{% endif %} - -### How developers know a security campaign has started - -When a campaign is started, anyone with **write** access to a repository included in the campaign, and who and has subscribed to watch either "All activity" or "security alerts" in that repository, is notified. - -> [!NOTE] During the {% data variables.release-phases.public_preview %}, notifications are only sent to users who have email notification enabled. - -In addition to the automatic notifications sent out, the new campaign is shown in the sidebar of the "Security" tab for each repository included. For more information about the developer experience, see [AUTOTITLE](/code-security/code-scanning/managing-code-scanning-alerts/fixing-alerts-in-security-campaign). - -### How to increase engagement with the security campaign - -The best way to increase engagement with a campaign is to publicize it to the teams you want to collaborate with to remediate alerts. For example, you might work with engineering managers to choose a quieter development period to run a series of security campaigns, each focused on a different type of alert, with associated training sessions. For more ideas, see [AUTOTITLE](/code-security/securing-your-organization/fixing-security-alerts-at-scale/best-practice-fix-alerts-at-scale). - -## Tracking security campaigns - -When you create a campaign, the campaign tracking view is displayed and the campaign is listed in the sidebar of the **Security** tab for the organization. You can redisplay the campaign tracking view at any time by selecting it in the sidebar under "Campaigns". - - - -### Security campaign alert statuses - -The summary at the top of the campaign view reports the number of alerts closed, open, and in progress. - -* **In progress** when at least one branch or pull request is created to fix the alert through the campaign view or the alert page. -* **Closed** when the alert is fixed or dismissed, even if the development work was done outside the campaign framework. - -### Security campaign views - -You can explore the campaign repositories and alerts to see where teams are engaging in the campaign, and where teams might need some extra encouragement to take part. - -* **Repository details:** you can expand any repository to show the progress in alert remediation. -* **Alert details:** you can set the "Group by" option to **None** to show a list of all alerts. - -You can filter both of these views to focus on a subset of repositories or alerts. Any alerts that are in progress are listed first. - -## Editing security campaign details - -You can edit the name, description, due date, and manager for a campaign. This is particularly useful if the current campaign manager is on leave and you need to define a new contact for developers. - -{% data reusables.organizations.navigate-to-org %} -{% data reusables.organizations.security-overview %} -1. In the sidebar, under "Campaigns" click the name of the campaign to display the campaign tracking view. -1. In the campaign title row, click {% octicon "kebab-horizontal" aria-label="Campaign options" %} and select **Edit campaign**. -1. In the "Edit campaign" dialog make your changes and then click **Save changes**. - -The changes are made immediately. - -## Closing or deleting security campaigns - -There is a limit of 10 active campaigns. When a campaign is complete, or if you want to pause it, you should close it. When you close a campaign, it's no longer displayed for developers in the repository **Security** tab but you can still display the campaign tracking view to develop best practice. In addition, you can reopen a closed campaign from the "Closed campaigns" view, which is accessible from the sidebar in the **Security** tab of the organization. - -If you open a campaign for testing, you may prefer to delete the campaign. This deletes the campaign and all associated data entirely. - -{% data reusables.organizations.navigate-to-org %} -{% data reusables.organizations.security-overview %} -1. In the sidebar, under "Campaigns" click the name of the campaign to display the campaign tracking view. -1. In the campaign title row, click {% octicon "kebab-horizontal" aria-label="Campaign options" %} and select your required option: - * **Close campaign** to remove it from the active campaigns list and display it on the Closed campaigns view. - * **Delete campaign** to delete the campaign permanently. In the "Delete campaign" dialog, click **Delete** to confirm that you want to delete the campaign. diff --git a/content/code-security/securing-your-organization/fixing-security-alerts-at-scale/index.md b/content/code-security/securing-your-organization/fixing-security-alerts-at-scale/index.md index fdaa38fbfed4..6690f4f23b0c 100644 --- a/content/code-security/securing-your-organization/fixing-security-alerts-at-scale/index.md +++ b/content/code-security/securing-your-organization/fixing-security-alerts-at-scale/index.md @@ -11,7 +11,6 @@ topics: children: - /about-security-campaigns - /best-practice-fix-alerts-at-scale - - /creating-tracking-security-campaigns + - /creating-managing-security-campaigns + - /tracking-security-campaigns --- - -{% data reusables.security-campaigns.preview-note %} diff --git a/content/code-security/securing-your-organization/fixing-security-alerts-at-scale/tracking-security-campaigns.md b/content/code-security/securing-your-organization/fixing-security-alerts-at-scale/tracking-security-campaigns.md new file mode 100644 index 000000000000..75c51d6550f7 --- /dev/null +++ b/content/code-security/securing-your-organization/fixing-security-alerts-at-scale/tracking-security-campaigns.md @@ -0,0 +1,56 @@ +--- +title: Tracking security campaigns +shortTitle: Track security campaigns +intro: 'You can monitor the progress of all your organization''s security campaigns, and track the status of individual campaigns.' +allowTitleToDifferFromFilename: true +permissions: '{% data reusables.permissions.security-org-enable %}' +product: '{% data reusables.gated-features.security-campaigns %}' +type: how_to +versions: + feature: security-campaigns +topics: + - Code Security + - Organizations + - Security +--- + +## Tracking campaigns across your organization + +The tracking view provides an overview of data for all open and closed campaigns. It helps you understand the impact of the campaigns, track progress through campaigns and measure success towards achieving your organization's goals. + +To display the campaign tracking view, navigate to the **Security** tab for the organization, then in the left sidebar click **{% octicon "goal" aria-hidden="true" %} Campaigns**. + + + +The tracking view shows you a summary of: + +* **Open** campaigns (total alert count) +* **Closed** campaigns (total alert count) + +For both open and closed campaigns, the view breaks down the total alert count into the following alert statuses: + +* **Open**: the alert is still active and has not yet been addressed. +* **In progress**: work has started to fix the alert—at least one branch or pull request has been created from the campaign view or alert page. +* **Fixed**: the alert has been resolved, either within or outside of the campaign workflow. +* **Dismissed**: the alert was reviewed but intentionally not fixed; it has been dismissed. + +## Tracking a single campaign + +You can similarly track how a single campaign is progressing by viewing the campaign's own tracking page. + +To display the tracking page, navigate to the **Security** tab for the organization, click **{% octicon "goal" aria-hidden="true" %} Campaigns** in the left sidebar, and then select the campaign you want to view from the list of campaigns. + + + +The tracking view shows you a summary of: + +* **Campaign progress**: how many alerts are closed (fixed or dismissed), in progress, or still left to review. +* **Status**: how the campaign is progressing towards its due date. +* **{% data variables.product.prodname_copilot_autofix_short %}**: number of alerts where {% data variables.product.prodname_copilot_autofix_short %} can generate a fix to resolve the alert. + +You can also explore the campaign repositories and alerts to see where teams are engaging in the campaign, and where teams might need some extra encouragement to take part. + +* **Repository details:** you can expand any repository to show the progress in alert remediation. +* **Alert details:** you can set the "Group by" option to **None** to show a list of all alerts. + +You can filter both of these views to focus on a subset of repositories or alerts. Any alerts that are in progress are listed first. diff --git a/content/code-security/security-overview/about-security-overview.md b/content/code-security/security-overview/about-security-overview.md index 5ad3c1b44e91..689e78ea644f 100644 --- a/content/code-security/security-overview/about-security-overview.md +++ b/content/code-security/security-overview/about-security-overview.md @@ -81,7 +81,7 @@ Security overview has multiple views that provide different ways to explore enab * **Secret scanning:** find out which types of secret are blocked by push protection{% ifversion security-overview-delegated-bypass-requests %} and which teams are bypassing push protection{% endif %}, see [AUTOTITLE](/code-security/security-overview/viewing-metrics-for-secret-scanning-push-protection){% ifversion security-overview-delegated-bypass-requests %} and [AUTOTITLE](/code-security/security-overview/reviewing-requests-to-bypass-push-protection){% endif %}. {% ifversion security-campaigns %} -You also create and manage security campaigns to remediate alerts from security overview, see [AUTOTITLE](/code-security/securing-your-organization/fixing-security-alerts-at-scale/creating-tracking-security-campaigns) and [AUTOTITLE](/code-security/securing-your-organization/fixing-security-alerts-at-scale/best-practice-fix-alerts-at-scale). +You also create and manage security campaigns to remediate alerts from security overview, see [AUTOTITLE](/code-security/securing-your-organization/fixing-security-alerts-at-scale/creating-managing-security-campaigns) and [AUTOTITLE](/code-security/securing-your-organization/fixing-security-alerts-at-scale/best-practice-fix-alerts-at-scale). {% endif %} ## About security overview for enterprises diff --git a/content/code-security/security-overview/assessing-code-security-risk.md b/content/code-security/security-overview/assessing-code-security-risk.md index 30cb2cced360..8b14eae6688d 100644 --- a/content/code-security/security-overview/assessing-code-security-risk.md +++ b/content/code-security/security-overview/assessing-code-security-risk.md @@ -80,5 +80,5 @@ You can view data for security alerts across organizations in an enterprise. ## Next steps -When you have assessed your security risks, you are ready to create a security campaign to collaborate with developers to remediate alerts. For information about fixing security alerts at scale, see [AUTOTITLE](/code-security/securing-your-organization/fixing-security-alerts-at-scale/creating-tracking-security-campaigns) and [AUTOTITLE](/code-security/securing-your-organization/fixing-security-alerts-at-scale/best-practice-fix-alerts-at-scale). +When you have assessed your security risks, you are ready to create a security campaign to collaborate with developers to remediate alerts. For information about fixing security alerts at scale, see [AUTOTITLE](/code-security/securing-your-organization/fixing-security-alerts-at-scale/creating-managing-security-campaigns) and [AUTOTITLE](/code-security/securing-your-organization/fixing-security-alerts-at-scale/best-practice-fix-alerts-at-scale). {% endif %} diff --git a/content/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-started-with-copilot-on-your-personal-account/about-individual-copilot-plans-and-benefits.md b/content/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-started-with-copilot-on-your-personal-account/about-individual-copilot-plans-and-benefits.md index 9f83f0f6a784..2d85ddca3cf3 100644 --- a/content/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-started-with-copilot-on-your-personal-account/about-individual-copilot-plans-and-benefits.md +++ b/content/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/getting-started-with-copilot-on-your-personal-account/about-individual-copilot-plans-and-benefits.md @@ -60,7 +60,7 @@ The following table highlights the key differences between individual {% data va | Real-time code suggestions with the base model | Up to 2,000 per month | Unlimited | Unlimited | | Premium requests | 50 per month | 300 per month | 1,500 per month | | Purchase additional premium requests at {% data variables.copilot.additional_premium_requests %} per request | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | -| {% data variables.product.prodname_copilot_chat_short %} interactions | Up to 50 per month | Unlimited with base model[^1] | Unlimited with base model | +| {% data variables.product.prodname_copilot_chat_short %} interactions[^1] | Up to 50 per month | Unlimited with base model | Unlimited with base model | | Access to premium models | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} Full access | {% endrowheaders %} diff --git a/content/copilot/rolling-out-github-copilot-at-scale/choosing-your-enterprises-plan-for-github-copilot.md b/content/copilot/rolling-out-github-copilot-at-scale/choosing-your-enterprises-plan-for-github-copilot.md index d62881eda332..0f0f68c39f6b 100644 --- a/content/copilot/rolling-out-github-copilot-at-scale/choosing-your-enterprises-plan-for-github-copilot.md +++ b/content/copilot/rolling-out-github-copilot-at-scale/choosing-your-enterprises-plan-for-github-copilot.md @@ -63,7 +63,7 @@ With {% data variables.product.prodname_copilot_enterprise_short %}, you can mak To decide if you will benefit from a higher allowance for premium requests, compare the goals of your rollout to **development tasks** that each model is specialized in. For example, the o1 model is focused on math and science. Teams who work in specialized areas may require more requests to premium models. To learn about the benefits of different models, see [AUTOTITLE](/copilot/using-github-copilot/ai-models/choosing-the-right-ai-model-for-your-task). -Regardless of your plan, you will be able to enable premium requests over the allowance by enabling overage billing. Premium requests over the allowance will be charged at a rate of {% data variables.copilot.additional_premium_requests %} per request, with an additional multiplier applied to certain models. +Regardless of your plan, you can enable premium requests over the allowance by enabling additional premium requests. Premium requests over the allowance will be charged at a rate of {% data variables.copilot.additional_premium_requests %} per request, with an additional multiplier applied to certain models. ## Making a decision diff --git a/content/copilot/rolling-out-github-copilot-at-scale/managing-your-companys-spending-on-github-copilot.md b/content/copilot/rolling-out-github-copilot-at-scale/managing-your-companys-spending-on-github-copilot.md index c3de421bd750..2c88e88db4c8 100644 --- a/content/copilot/rolling-out-github-copilot-at-scale/managing-your-companys-spending-on-github-copilot.md +++ b/content/copilot/rolling-out-github-copilot-at-scale/managing-your-companys-spending-on-github-copilot.md @@ -28,28 +28,28 @@ We recommend that you identify the people with this role and communicate with th {% data reusables.copilot.premium-requests-for-enterprises %} -Premium requests over the allowance are rejected unless you have enabled overage billing. Depending on the type of development tasks your developers use {% data variables.product.prodname_copilot_short %} for, you may find developers need to make more premium requests than the allowance included in your plan. +Premium requests over the allowance are rejected unless you have enabled additional premium requests. Depending on the type of development tasks your developers use {% data variables.product.prodname_copilot_short %} for, you may find developers need to make more premium requests than the allowance included in your plan. -If you enable overage billing, premium requests over the allowance are charged at a rate of {% data variables.copilot.additional_premium_requests %} per request, with an additional multiplier applied to certain models. You can also increase your monthly allowance by upgrading to {% data variables.product.prodname_copilot_enterprise_short %}. +If you enable additional premium requests, premium requests over the allowance are charged at a rate of {% data variables.copilot.additional_premium_requests %} per request, with an additional multiplier applied to certain models. You can also increase your monthly allowance by upgrading to {% data variables.product.prodname_copilot_enterprise_short %}. For pricing details and a list of available models, see [AUTOTITLE](/copilot/about-github-copilot/subscription-plans-for-github-copilot#comparing-copilot-plans). -### Enabling overage billing +### Enabling additional premium requests -You can enable or disable overage billing for all users in your enterprise, or for your organization if you use an organization that is not part of an enterprise account. +You can enable or disable the ability for users in your enterprise or organization to make premium requests over your plan's allowance. 1. Go to the {% data variables.product.prodname_copilot_short %} policies page in your organization or enterprise. * Enterprise: Go to the enterprise, click **{% octicon "law" aria-hidden="true" %} Policies**, click **{% data variables.product.prodname_copilot_short %}** in the left sidebar, then click the **Policies** tab. * Organization: Go to the organization, click **Settings**, click **{% octicon "copilot" aria-hidden="true" %} {% data variables.product.prodname_copilot_short %}** in the left sidebar, then click **Policies**. -1. Next to "Additional {% data variables.product.prodname_copilot_short %} premium requests", click the toggle to enable overages. +1. Next to "Additional {% data variables.product.prodname_copilot_short %} premium requests", click the toggle to enable premium requests over the allowance included in your plan. ### Tracking premium requests You can view a CSV report that shows the cumulative number of premium requests per user over a time period. You can use this report to: -* Understand if developers are frequently hitting the limit and would benefit from you enabling overage billing or upgrading your plan. +* Understand if developers are frequently hitting the limit and would benefit from you enabling additional premium requests or upgrading your plan. * Identify users who are making a large number of premium requests over the limit, and follow up to the users to understand their use cases and requirements. -* After enabling overage billing, track usage to determine if it would be more cost effective to upgrade to {% data variables.product.prodname_copilot_enterprise_short %}. +* After enabling additional premium requests, track usage to determine if it would be more cost effective to upgrade to {% data variables.product.prodname_copilot_enterprise_short %}. You can download the report for an enterprise account, or for an organization that is not part of an enterprise. diff --git a/content/copilot/using-github-copilot/code-review/using-copilot-code-review.md b/content/copilot/using-github-copilot/code-review/using-copilot-code-review.md index c68e9c1d1d02..972d59c9afea 100644 --- a/content/copilot/using-github-copilot/code-review/using-copilot-code-review.md +++ b/content/copilot/using-github-copilot/code-review/using-copilot-code-review.md @@ -39,9 +39,7 @@ The current functionality and availability of the two types of review is summari ### Premium requests -{% data variables.product.prodname_copilot_short %} code review uses multiple models behind the scenes. The initial request is made using the o3-mini model. As {% data variables.product.prodname_copilot_short %} generates suggestions throughout the pull request, it may use GPT-4o or other models, depending on the code and type of review. - -Because different models have different multipliers, the number of premium requests used during a code review will vary based on the size of the pull request and the amount of code {% data variables.product.prodname_copilot_short %} needs to analyze and respond to. See [AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/monitoring-usage-and-entitlements/avoiding-unexpected-copilot-costs). +Each {% data variables.product.prodname_copilot_short %} code review consumes one premium request. See [AUTOTITLE](/copilot/managing-copilot/monitoring-usage-and-entitlements/about-premium-requests). ### Maximum code reviews per month @@ -49,14 +47,14 @@ The **review changes** type of {% data variables.copilot.copilot_code-review_sho > [!NOTE] -> The per-person quota for Copilot code review will commence on May 5th, 2025. +> The per-person quota for {% data variables.product.prodname_copilot_short %} code review will commence on May 5th, 2025. When you assign {% data variables.product.prodname_copilot_short %} as a reviewer for a pull request, one premium request is deducted from your monthly quota each time {% data variables.product.prodname_copilot_short %} posts comments to the pull request. If a repository is configured to automatically request a code review from {% data variables.product.prodname_copilot_short %} for all new pull requests, the premium request usage is applied to the quota of the pull request author. If a pull request is created by {% data variables.product.prodname_actions %} or by a bot, the usage will apply to the user who triggered the workflow (if identifiable), or to a designated billing owner. -When you reach your monthly quota you will not be able to get a code review from {% data variables.product.prodname_copilot_short %} until your quota resets—unless you upgrade your {% data variables.product.prodname_copilot_short %} plan or enable additional {% data variables.product.prodname_copilot_short %} premium requests. See [AUTOTITLE](/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/monitoring-usage-and-entitlements/avoiding-unexpected-copilot-costs). +When you reach your monthly quota you will not be able to get a code review from {% data variables.product.prodname_copilot_short %} until your quota resets—unless you upgrade your {% data variables.product.prodname_copilot_short %} plan or enable additional premium requests. ### Validating {% data variables.product.prodname_copilot_short %} code reviews diff --git a/content/rest/campaigns/campaigns.md b/content/rest/campaigns/campaigns.md new file mode 100644 index 000000000000..9b395457a3d9 --- /dev/null +++ b/content/rest/campaigns/campaigns.md @@ -0,0 +1,17 @@ +--- +title: REST API endpoints for security campaigns +shortTitle: Security campaigns +intro: Use the REST API to create and manage security campaigns for your organization. +versions: # DO NOT MANUALLY EDIT. CHANGES WILL BE OVERWRITTEN BY A 🤖 + fpt: '*' + ghec: '*' +topics: + - API +autogenerated: rest +allowTitleToDifferFromFilename: true +--- + +> [!NOTE] +> These endpoints only interact with published campaigns. Draft campaigns cannot currently be viewed or managed through the API. + + diff --git a/content/rest/campaigns/index.md b/content/rest/campaigns/index.md new file mode 100644 index 000000000000..6e87b00a50de --- /dev/null +++ b/content/rest/campaigns/index.md @@ -0,0 +1,15 @@ +--- +title: REST API endpoints for security campaigns +shortTitle: Security campaigns +intro: Use the REST API to create and manage security campaigns for your organization. +topics: + - API +autogenerated: rest +allowTitleToDifferFromFilename: true +children: + - /campaigns +versions: + fpt: '*' + ghec: '*' +--- + diff --git a/content/rest/index.md b/content/rest/index.md index 9987a9f92c42..023563063a23 100644 --- a/content/rest/index.md +++ b/content/rest/index.md @@ -46,6 +46,7 @@ children: - /apps - /billing - /branches + - /campaigns - /checks - /classroom - /code-scanning diff --git a/data/release-notes/enterprise-server/3-14/0.yml b/data/release-notes/enterprise-server/3-14/0.yml index cff617ba77f5..1a3e878e3a32 100644 --- a/data/release-notes/enterprise-server/3-14/0.yml +++ b/data/release-notes/enterprise-server/3-14/0.yml @@ -231,6 +231,8 @@ sections: The Manage GHES API reached feature parity with the Management Console API in GHES 3.12. As a result, we will remove the Management Console API in GitHub Enterprise Server 3.15. For information about updating tooling that relies on the Management Console API, see [AUTOTITLE](/rest/enterprise-admin/management-console). - | Team discussions have been removed from {% data variables.product.prodname_ghe_server %}. The sunset of this feature was announced in 2023. See the [GitHub Blog post](https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/). [Updated: 2025-02-13] + - | + Node 16 support ended in September 2023. Actions that used Node 16 now default to Node 20. Running a workflow that uses Node 16 results in a warning on the workflow summary page. [Updated: 2025-04-02] errata: - | diff --git a/data/reusables/code-scanning/campaigns-api.md b/data/reusables/code-scanning/campaigns-api.md new file mode 100644 index 000000000000..b2bdd57255b3 --- /dev/null +++ b/data/reusables/code-scanning/campaigns-api.md @@ -0,0 +1 @@ +In addition, you can use the REST API to create and interact with campaigns more efficiently and at scale. For more information, see [AUTOTITLE](/rest/campaigns/campaigns). diff --git a/data/reusables/code-scanning/campaigns-click.md b/data/reusables/code-scanning/campaigns-click.md new file mode 100644 index 000000000000..5cd772cf5357 --- /dev/null +++ b/data/reusables/code-scanning/campaigns-click.md @@ -0,0 +1 @@ +1. In the left sidebar, click **{% octicon "goal" aria-hidden="true" %} Campaigns**. diff --git a/data/reusables/copilot/differences-cfi-cfb-table.md b/data/reusables/copilot/differences-cfi-cfb-table.md index 14ec865dd40a..b7b4750b41b3 100644 --- a/data/reusables/copilot/differences-cfi-cfb-table.md +++ b/data/reusables/copilot/differences-cfi-cfb-table.md @@ -26,7 +26,7 @@ | Chat | {% data variables.product.prodname_copilot_free_short %} | {% data variables.product.prodname_copilot_pro_short %} | {% data variables.product.prodname_copilot_pro_plus_short %} | {% data variables.product.prodname_copilot_business_short %} | {% data variables.product.prodname_copilot_enterprise_short %} | | --- | --- | --- | --- | --- | --- | -| {% data variables.product.prodname_copilot_chat_short %} in IDEs[^1] | 50 messages per month | Unlimited with base model[^2]| Unlimited with base model | Unlimited with base model | Unlimited with base model | +| {% data variables.product.prodname_copilot_chat_short %} in IDEs[^1] [^2] | 50 messages per month | Unlimited with base model | Unlimited with base model | Unlimited with base model | Unlimited with base model | | Inline chat | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | | Slash commands | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | | {% data variables.product.prodname_copilot_mobile_short %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | diff --git a/data/reusables/security-campaigns/campaign-configuration.md b/data/reusables/security-campaigns/campaign-configuration.md deleted file mode 100644 index 96ced7a4a8a6..000000000000 --- a/data/reusables/security-campaigns/campaign-configuration.md +++ /dev/null @@ -1,4 +0,0 @@ -1. Edit the "Campaign name" and "Short description" to match your campaign needs and to link to any resources that support the campaign. -1. Define a "Campaign due date" and select one or more "Campaign managers" as the primary contacts for the campaign. Campaign managers must be users or teams that are owners or security managers in the organization. -1. Optionally, provide a "Contact link", for example a link to a {% data variables.product.prodname_discussions %} or another communication channel, for contacting the campaign managers. -1. When you're ready to create the campaign, click **Create campaign**. diff --git a/data/reusables/security-campaigns/preview-note.md b/data/reusables/security-campaigns/preview-note.md deleted file mode 100644 index 71a88e804708..000000000000 --- a/data/reusables/security-campaigns/preview-note.md +++ /dev/null @@ -1 +0,0 @@ -> [!NOTE] Security campaigns are currently in {% data variables.release-phases.public_preview %} and subject to change. diff --git a/package-lock.json b/package-lock.json index 620bca1635db..ab4d6f5e4a7f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -35,7 +35,6 @@ "dotenv": "^16.4.5", "escape-string-regexp": "5.0.0", "express": "4.21.2", - "express-rate-limit": "7.4.0", "fastest-levenshtein": "1.0.16", "file-type": "20.0.0", "flat": "^6.0.1", @@ -7701,20 +7700,6 @@ "url": "https://opencollective.com/express" } }, - "node_modules/express-rate-limit": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-7.4.0.tgz", - "integrity": "sha512-v1204w3cXu5gCDmAvgvzI6qjzZzoMWKnyVDk3ACgfswTQLYiGen+r8w0VnXnGMmzEN/g8fwIQ4JrFFd4ZP6ssg==", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/express-rate-limit" - }, - "peerDependencies": { - "express": "4 || 5 || ^5.0.0-beta.1" - } - }, "node_modules/express/node_modules/cookie": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", diff --git a/package.json b/package.json index 8e6ef4d6b1ca..b9be8766d8a9 100644 --- a/package.json +++ b/package.json @@ -268,7 +268,6 @@ "dotenv": "^16.4.5", "escape-string-regexp": "5.0.0", "express": "4.21.2", - "express-rate-limit": "7.4.0", "fastest-levenshtein": "1.0.16", "file-type": "20.0.0", "flat": "^6.0.1", diff --git a/src/fixtures/tests/playwright-rendering.spec.ts b/src/fixtures/tests/playwright-rendering.spec.ts index eea490203b49..ae62f9530756 100644 --- a/src/fixtures/tests/playwright-rendering.spec.ts +++ b/src/fixtures/tests/playwright-rendering.spec.ts @@ -123,9 +123,7 @@ test('open new search, and select a general search article', async ({ page }) => await page.keyboard.press('Enter') // We should now be on the page for "For Playwright" - await expect(page).toHaveURL( - /\/get-started\/foo\/for-playwright\?search-overlay-input=serve\+playwright$/, - ) + await expect(page).toHaveURL(/\/get-started\/foo\/for-playwright$/) await expect(page).toHaveTitle(/For Playwright/) }) diff --git a/src/frame/components/ui/MarkdownContent/UnrenderedMarkdownContent.tsx b/src/frame/components/ui/MarkdownContent/UnrenderedMarkdownContent.tsx index ac54ebe8c0fc..fc5af283967e 100644 --- a/src/frame/components/ui/MarkdownContent/UnrenderedMarkdownContent.tsx +++ b/src/frame/components/ui/MarkdownContent/UnrenderedMarkdownContent.tsx @@ -44,12 +44,6 @@ export const UnrenderedMarkdownContent = ({ if (existingURLParams.get('feature')) { newParams.set('feature', existingURLParams.get('feature') || '') } - if (existingURLParams.get('search-overlay-ask-ai')) { - newParams.set('search-overlay-ask-ai', existingURLParams.get('search-overlay-ask-ai') || '') - } - if (existingURLParams.get('search-overlay-input')) { - newParams.set('search-overlay-input', existingURLParams.get('search-overlay-input') || '') - } // Combine new and existing query parameters if (newParams.toString()) { href = `${href}?${existingAnchorParams}&${newParams.toString()}` diff --git a/src/github-apps/data/fpt-2022-11-28/fine-grained-pat-permissions.json b/src/github-apps/data/fpt-2022-11-28/fine-grained-pat-permissions.json index a309641fcc2c..a2f03314d2b8 100644 --- a/src/github-apps/data/fpt-2022-11-28/fine-grained-pat-permissions.json +++ b/src/github-apps/data/fpt-2022-11-28/fine-grained-pat-permissions.json @@ -728,6 +728,57 @@ } ] }, + "organization_campaigns": { + "title": "Campaigns", + "displayTitle": "Organization permissions for \"Campaigns\"", + "permissions": [ + { + "category": "campaigns", + "slug": "list-campaigns-for-an-organization", + "subcategory": "campaigns", + "verb": "get", + "requestPath": "/orgs/{org}/campaigns", + "additional-permissions": false, + "access": "read" + }, + { + "category": "campaigns", + "slug": "create-a-campaign-for-an-organization", + "subcategory": "campaigns", + "verb": "post", + "requestPath": "/orgs/{org}/campaigns", + "additional-permissions": false, + "access": "write" + }, + { + "category": "campaigns", + "slug": "get-a-campaign-for-an-organization", + "subcategory": "campaigns", + "verb": "get", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}", + "additional-permissions": false, + "access": "read" + }, + { + "category": "campaigns", + "slug": "update-a-campaign", + "subcategory": "campaigns", + "verb": "patch", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}", + "additional-permissions": false, + "access": "write" + }, + { + "category": "campaigns", + "slug": "delete-a-campaign-for-an-organization", + "subcategory": "campaigns", + "verb": "delete", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}", + "additional-permissions": false, + "access": "write" + } + ] + }, "organization_custom_org_roles": { "title": "Custom organization roles", "displayTitle": "Organization permissions for \"Custom organization roles\"", diff --git a/src/github-apps/data/fpt-2022-11-28/fine-grained-pat.json b/src/github-apps/data/fpt-2022-11-28/fine-grained-pat.json index 31ff76d49ddc..b84783cddeee 100644 --- a/src/github-apps/data/fpt-2022-11-28/fine-grained-pat.json +++ b/src/github-apps/data/fpt-2022-11-28/fine-grained-pat.json @@ -1317,6 +1317,38 @@ "requestPath": "/repos/{owner}/{repo}/merges" } ], + "campaigns": [ + { + "slug": "list-campaigns-for-an-organization", + "subcategory": "campaigns", + "verb": "get", + "requestPath": "/orgs/{org}/campaigns" + }, + { + "slug": "create-a-campaign-for-an-organization", + "subcategory": "campaigns", + "verb": "post", + "requestPath": "/orgs/{org}/campaigns" + }, + { + "slug": "get-a-campaign-for-an-organization", + "subcategory": "campaigns", + "verb": "get", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}" + }, + { + "slug": "update-a-campaign", + "subcategory": "campaigns", + "verb": "patch", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}" + }, + { + "slug": "delete-a-campaign-for-an-organization", + "subcategory": "campaigns", + "verb": "delete", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}" + } + ], "checks": [ { "slug": "create-a-check-run", diff --git a/src/github-apps/data/fpt-2022-11-28/server-to-server-permissions.json b/src/github-apps/data/fpt-2022-11-28/server-to-server-permissions.json index 6d98177ec492..33d642d205c2 100644 --- a/src/github-apps/data/fpt-2022-11-28/server-to-server-permissions.json +++ b/src/github-apps/data/fpt-2022-11-28/server-to-server-permissions.json @@ -886,6 +886,67 @@ } ] }, + "organization_campaigns": { + "title": "Campaigns", + "displayTitle": "Organization permissions for \"Campaigns\"", + "permissions": [ + { + "category": "campaigns", + "slug": "list-campaigns-for-an-organization", + "subcategory": "campaigns", + "verb": "get", + "requestPath": "/orgs/{org}/campaigns", + "access": "read", + "user-to-server": true, + "server-to-server": true, + "additional-permissions": false + }, + { + "category": "campaigns", + "slug": "create-a-campaign-for-an-organization", + "subcategory": "campaigns", + "verb": "post", + "requestPath": "/orgs/{org}/campaigns", + "access": "write", + "user-to-server": true, + "server-to-server": true, + "additional-permissions": false + }, + { + "category": "campaigns", + "slug": "get-a-campaign-for-an-organization", + "subcategory": "campaigns", + "verb": "get", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}", + "access": "read", + "user-to-server": true, + "server-to-server": true, + "additional-permissions": false + }, + { + "category": "campaigns", + "slug": "update-a-campaign", + "subcategory": "campaigns", + "verb": "patch", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}", + "access": "write", + "user-to-server": true, + "server-to-server": true, + "additional-permissions": false + }, + { + "category": "campaigns", + "slug": "delete-a-campaign-for-an-organization", + "subcategory": "campaigns", + "verb": "delete", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}", + "access": "write", + "user-to-server": true, + "server-to-server": true, + "additional-permissions": false + } + ] + }, "organization_custom_org_roles": { "title": "Custom organization roles", "displayTitle": "Organization permissions for \"Custom organization roles\"", diff --git a/src/github-apps/data/fpt-2022-11-28/server-to-server-rest.json b/src/github-apps/data/fpt-2022-11-28/server-to-server-rest.json index 36db2e6fe49e..a278f4a098dd 100644 --- a/src/github-apps/data/fpt-2022-11-28/server-to-server-rest.json +++ b/src/github-apps/data/fpt-2022-11-28/server-to-server-rest.json @@ -1257,6 +1257,38 @@ "requestPath": "/repos/{owner}/{repo}/merges" } ], + "campaigns": [ + { + "slug": "list-campaigns-for-an-organization", + "subcategory": "campaigns", + "verb": "get", + "requestPath": "/orgs/{org}/campaigns" + }, + { + "slug": "create-a-campaign-for-an-organization", + "subcategory": "campaigns", + "verb": "post", + "requestPath": "/orgs/{org}/campaigns" + }, + { + "slug": "get-a-campaign-for-an-organization", + "subcategory": "campaigns", + "verb": "get", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}" + }, + { + "slug": "update-a-campaign", + "subcategory": "campaigns", + "verb": "patch", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}" + }, + { + "slug": "delete-a-campaign-for-an-organization", + "subcategory": "campaigns", + "verb": "delete", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}" + } + ], "checks": [ { "slug": "create-a-check-run", diff --git a/src/github-apps/data/fpt-2022-11-28/user-to-server-rest.json b/src/github-apps/data/fpt-2022-11-28/user-to-server-rest.json index 31ff76d49ddc..b84783cddeee 100644 --- a/src/github-apps/data/fpt-2022-11-28/user-to-server-rest.json +++ b/src/github-apps/data/fpt-2022-11-28/user-to-server-rest.json @@ -1317,6 +1317,38 @@ "requestPath": "/repos/{owner}/{repo}/merges" } ], + "campaigns": [ + { + "slug": "list-campaigns-for-an-organization", + "subcategory": "campaigns", + "verb": "get", + "requestPath": "/orgs/{org}/campaigns" + }, + { + "slug": "create-a-campaign-for-an-organization", + "subcategory": "campaigns", + "verb": "post", + "requestPath": "/orgs/{org}/campaigns" + }, + { + "slug": "get-a-campaign-for-an-organization", + "subcategory": "campaigns", + "verb": "get", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}" + }, + { + "slug": "update-a-campaign", + "subcategory": "campaigns", + "verb": "patch", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}" + }, + { + "slug": "delete-a-campaign-for-an-organization", + "subcategory": "campaigns", + "verb": "delete", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}" + } + ], "checks": [ { "slug": "create-a-check-run", diff --git a/src/github-apps/data/ghec-2022-11-28/fine-grained-pat-permissions.json b/src/github-apps/data/ghec-2022-11-28/fine-grained-pat-permissions.json index dd002cd1beb6..eab6f7c54cfd 100644 --- a/src/github-apps/data/ghec-2022-11-28/fine-grained-pat-permissions.json +++ b/src/github-apps/data/ghec-2022-11-28/fine-grained-pat-permissions.json @@ -896,6 +896,57 @@ } ] }, + "organization_campaigns": { + "title": "Campaigns", + "displayTitle": "Organization permissions for \"Campaigns\"", + "permissions": [ + { + "category": "campaigns", + "slug": "list-campaigns-for-an-organization", + "subcategory": "campaigns", + "verb": "get", + "requestPath": "/orgs/{org}/campaigns", + "additional-permissions": false, + "access": "read" + }, + { + "category": "campaigns", + "slug": "create-a-campaign-for-an-organization", + "subcategory": "campaigns", + "verb": "post", + "requestPath": "/orgs/{org}/campaigns", + "additional-permissions": false, + "access": "write" + }, + { + "category": "campaigns", + "slug": "get-a-campaign-for-an-organization", + "subcategory": "campaigns", + "verb": "get", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}", + "additional-permissions": false, + "access": "read" + }, + { + "category": "campaigns", + "slug": "update-a-campaign", + "subcategory": "campaigns", + "verb": "patch", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}", + "additional-permissions": false, + "access": "write" + }, + { + "category": "campaigns", + "slug": "delete-a-campaign-for-an-organization", + "subcategory": "campaigns", + "verb": "delete", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}", + "additional-permissions": false, + "access": "write" + } + ] + }, "organization_custom_org_roles": { "title": "Custom organization roles", "displayTitle": "Organization permissions for \"Custom organization roles\"", diff --git a/src/github-apps/data/ghec-2022-11-28/fine-grained-pat.json b/src/github-apps/data/ghec-2022-11-28/fine-grained-pat.json index 1d096c14ce36..acfc152255d5 100644 --- a/src/github-apps/data/ghec-2022-11-28/fine-grained-pat.json +++ b/src/github-apps/data/ghec-2022-11-28/fine-grained-pat.json @@ -1355,6 +1355,38 @@ "requestPath": "/repos/{owner}/{repo}/merges" } ], + "campaigns": [ + { + "slug": "list-campaigns-for-an-organization", + "subcategory": "campaigns", + "verb": "get", + "requestPath": "/orgs/{org}/campaigns" + }, + { + "slug": "create-a-campaign-for-an-organization", + "subcategory": "campaigns", + "verb": "post", + "requestPath": "/orgs/{org}/campaigns" + }, + { + "slug": "get-a-campaign-for-an-organization", + "subcategory": "campaigns", + "verb": "get", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}" + }, + { + "slug": "update-a-campaign", + "subcategory": "campaigns", + "verb": "patch", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}" + }, + { + "slug": "delete-a-campaign-for-an-organization", + "subcategory": "campaigns", + "verb": "delete", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}" + } + ], "checks": [ { "slug": "create-a-check-run", diff --git a/src/github-apps/data/ghec-2022-11-28/server-to-server-permissions.json b/src/github-apps/data/ghec-2022-11-28/server-to-server-permissions.json index e67ae20ab966..49637a19fd8f 100644 --- a/src/github-apps/data/ghec-2022-11-28/server-to-server-permissions.json +++ b/src/github-apps/data/ghec-2022-11-28/server-to-server-permissions.json @@ -1090,6 +1090,67 @@ } ] }, + "organization_campaigns": { + "title": "Campaigns", + "displayTitle": "Organization permissions for \"Campaigns\"", + "permissions": [ + { + "category": "campaigns", + "slug": "list-campaigns-for-an-organization", + "subcategory": "campaigns", + "verb": "get", + "requestPath": "/orgs/{org}/campaigns", + "access": "read", + "user-to-server": true, + "server-to-server": true, + "additional-permissions": false + }, + { + "category": "campaigns", + "slug": "create-a-campaign-for-an-organization", + "subcategory": "campaigns", + "verb": "post", + "requestPath": "/orgs/{org}/campaigns", + "access": "write", + "user-to-server": true, + "server-to-server": true, + "additional-permissions": false + }, + { + "category": "campaigns", + "slug": "get-a-campaign-for-an-organization", + "subcategory": "campaigns", + "verb": "get", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}", + "access": "read", + "user-to-server": true, + "server-to-server": true, + "additional-permissions": false + }, + { + "category": "campaigns", + "slug": "update-a-campaign", + "subcategory": "campaigns", + "verb": "patch", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}", + "access": "write", + "user-to-server": true, + "server-to-server": true, + "additional-permissions": false + }, + { + "category": "campaigns", + "slug": "delete-a-campaign-for-an-organization", + "subcategory": "campaigns", + "verb": "delete", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}", + "access": "write", + "user-to-server": true, + "server-to-server": true, + "additional-permissions": false + } + ] + }, "organization_custom_org_roles": { "title": "Custom organization roles", "displayTitle": "Organization permissions for \"Custom organization roles\"", diff --git a/src/github-apps/data/ghec-2022-11-28/server-to-server-rest.json b/src/github-apps/data/ghec-2022-11-28/server-to-server-rest.json index 486345d64a79..88905dd9e865 100644 --- a/src/github-apps/data/ghec-2022-11-28/server-to-server-rest.json +++ b/src/github-apps/data/ghec-2022-11-28/server-to-server-rest.json @@ -1295,6 +1295,38 @@ "requestPath": "/repos/{owner}/{repo}/merges" } ], + "campaigns": [ + { + "slug": "list-campaigns-for-an-organization", + "subcategory": "campaigns", + "verb": "get", + "requestPath": "/orgs/{org}/campaigns" + }, + { + "slug": "create-a-campaign-for-an-organization", + "subcategory": "campaigns", + "verb": "post", + "requestPath": "/orgs/{org}/campaigns" + }, + { + "slug": "get-a-campaign-for-an-organization", + "subcategory": "campaigns", + "verb": "get", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}" + }, + { + "slug": "update-a-campaign", + "subcategory": "campaigns", + "verb": "patch", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}" + }, + { + "slug": "delete-a-campaign-for-an-organization", + "subcategory": "campaigns", + "verb": "delete", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}" + } + ], "checks": [ { "slug": "create-a-check-run", diff --git a/src/github-apps/data/ghec-2022-11-28/user-to-server-rest.json b/src/github-apps/data/ghec-2022-11-28/user-to-server-rest.json index 1d096c14ce36..acfc152255d5 100644 --- a/src/github-apps/data/ghec-2022-11-28/user-to-server-rest.json +++ b/src/github-apps/data/ghec-2022-11-28/user-to-server-rest.json @@ -1355,6 +1355,38 @@ "requestPath": "/repos/{owner}/{repo}/merges" } ], + "campaigns": [ + { + "slug": "list-campaigns-for-an-organization", + "subcategory": "campaigns", + "verb": "get", + "requestPath": "/orgs/{org}/campaigns" + }, + { + "slug": "create-a-campaign-for-an-organization", + "subcategory": "campaigns", + "verb": "post", + "requestPath": "/orgs/{org}/campaigns" + }, + { + "slug": "get-a-campaign-for-an-organization", + "subcategory": "campaigns", + "verb": "get", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}" + }, + { + "slug": "update-a-campaign", + "subcategory": "campaigns", + "verb": "patch", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}" + }, + { + "slug": "delete-a-campaign-for-an-organization", + "subcategory": "campaigns", + "verb": "delete", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}" + } + ], "checks": [ { "slug": "create-a-check-run", diff --git a/src/github-apps/lib/config.json b/src/github-apps/lib/config.json index cf430a3a43a9..1b4e5a1372f9 100644 --- a/src/github-apps/lib/config.json +++ b/src/github-apps/lib/config.json @@ -60,5 +60,5 @@ "2022-11-28" ] }, - "sha": "de5a105f53c1182f15963b5109b5c6ad4adeadc5" + "sha": "1cd73ab20b4ba8355d380bd1f422ddf49c47a7af" } \ No newline at end of file diff --git a/src/rest/data/fpt-2022-11-28/schema.json b/src/rest/data/fpt-2022-11-28/schema.json index e7a92ba793e6..9aa8d916caca 100644 --- a/src/rest/data/fpt-2022-11-28/schema.json +++ b/src/rest/data/fpt-2022-11-28/schema.json @@ -135015,6 +135015,2693 @@ } ] }, + "campaigns": { + "campaigns": [ + { + "serverUrl": "https://api.github.com", + "verb": "get", + "requestPath": "/orgs/{org}/campaigns", + "title": "List campaigns for an organization", + "category": "campaigns", + "subcategory": "campaigns", + "parameters": [ + { + "name": "org", + "description": "
The organization name. The name is not case sensitive.
", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "page", + "description": "The page number of the results to fetch. For more information, see \"Using pagination in the REST API.\"
", + "in": "query", + "schema": { + "type": "integer", + "default": 1 + } + }, + { + "name": "per_page", + "description": "The number of results per page (max 100). For more information, see \"Using pagination in the REST API.\"
", + "in": "query", + "schema": { + "type": "integer", + "default": 30 + } + }, + { + "name": "direction", + "description": "The direction to sort the results by.
", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "desc" + } + }, + { + "name": "state", + "description": "If specified, only campaigns with this state will be returned.
", + "in": "query", + "required": false, + "schema": { + "title": "Campaign state", + "description": "Indicates whether a campaign is open or closed", + "type": "string", + "enum": [ + "open", + "closed" + ] + } + }, + { + "name": "sort", + "description": "The property by which to sort the results.
", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "created", + "updated", + "ends_at", + "published" + ], + "default": "created" + } + } + ], + "bodyParameters": [], + "progAccess": { + "userToServerRest": true, + "serverToServer": true, + "fineGrainedPat": true, + "permissions": [ + { + "\"Campaigns\" organization permissions": "read" + } + ] + }, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "org": "ORG" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "Response
", + "example": [ + { + "number": 3, + "created_at": "2024-02-14T12:29:18Z", + "updated_at": "2024-02-14T12:29:18Z", + "name": "Critical CodeQL alert", + "description": "Address critical alerts before they are exploited to prevent breaches, protect sensitive data, and mitigate financial and reputational damage.", + "managers": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + ], + "ends_at": "2024-03-14T12:29:18Z", + "closed_at": null, + "state": "open" + }, + { + "number": 4, + "created_at": "2024-03-30T12:29:18Z", + "updated_at": "2024-03-30T12:29:18Z", + "name": "Mitre top 10 KEV", + "description": "Remediate the MITRE Top 10 KEV (Known Exploited Vulnerabilities) to enhance security by addressing vulnerabilities actively exploited by attackers. This reduces risk, prevents breaches and can help protect sensitive data.", + "managers": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + ], + "ends_at": "2024-04-30T12:29:18Z", + "closed_at": null, + "state": "open" + } + ], + "schema": { + "type": "array", + "items": { + "title": "Campaign summary", + "description": "The campaign metadata and alert stats.", + "type": "object", + "properties": { + "number": { + "type": "integer", + "description": "The number of the newly created campaign" + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "The date and time the campaign was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "The date and time the campaign was last updated, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ." + }, + "name": { + "type": "string", + "description": "The campaign name" + }, + "description": { + "type": "string", + "description": "The campaign description" + }, + "managers": { + "description": "The campaign managers", + "type": "array", + "items": { + "title": "Simple User", + "description": "A GitHub user.", + "type": "object", + "properties": { + "name": { + "type": [ + "string", + "null" + ] + }, + "email": { + "type": [ + "string", + "null" + ] + }, + "login": { + "type": "string", + "examples": [ + "octocat" + ] + }, + "id": { + "type": "integer", + "format": "int64", + "examples": [ + 1 + ] + }, + "node_id": { + "type": "string", + "examples": [ + "MDQ6VXNlcjE=" + ] + }, + "avatar_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/images/error/octocat_happy.gif" + ] + }, + "gravatar_id": { + "type": [ + "string", + "null" + ], + "examples": [ + "41d064eb2195891e12d0413f63227ea7" + ] + }, + "url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat" + ] + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/octocat" + ] + }, + "followers_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/followers" + ] + }, + "following_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/following{/other_user}" + ] + }, + "gists_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/gists{/gist_id}" + ] + }, + "starred_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/starred{/owner}{/repo}" + ] + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/subscriptions" + ] + }, + "organizations_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/orgs" + ] + }, + "repos_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/repos" + ] + }, + "events_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/events{/privacy}" + ] + }, + "received_events_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/received_events" + ] + }, + "type": { + "type": "string", + "examples": [ + "User" + ] + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "examples": [ + "\"2020-07-09T00:17:55Z\"" + ] + }, + "user_view_type": { + "type": "string", + "examples": [ + "public" + ] + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ] + } + }, + "team_managers": { + "description": "The campaign team managers", + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "privacy": { + "type": "string" + }, + "notification_setting": { + "type": "string" + }, + "permission": { + "type": "string" + }, + "permissions": { + "type": "object", + "properties": { + "pull": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "admin": { + "type": "boolean" + } + }, + "required": [ + "pull", + "triage", + "push", + "maintain", + "admin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/orgs/rails/teams/core" + ] + }, + "members_url": { + "type": "string" + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "parent": { + "anyOf": [ + { + "type": "null" + }, + { + "title": "Team Simple", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the team", + "type": "integer", + "examples": [ + 1 + ] + }, + "node_id": { + "type": "string", + "examples": [ + "MDQ6VGVhbTE=" + ] + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/organizations/1/team/1" + ] + }, + "members_url": { + "type": "string", + "examples": [ + "https://api.github.com/organizations/1/team/1/members{/member}" + ] + }, + "name": { + "description": "Name of the team", + "type": "string", + "examples": [ + "Justice League" + ] + }, + "description": { + "description": "Description of the team", + "type": [ + "string", + "null" + ], + "examples": [ + "A great team." + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string", + "examples": [ + "admin" + ] + }, + "privacy": { + "description": "The level of privacy this team should have", + "type": "string", + "examples": [ + "closed" + ] + }, + "notification_setting": { + "description": "The notification setting the team has set", + "type": "string", + "examples": [ + "notifications_enabled" + ] + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/orgs/rails/teams/core" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/organizations/1/team/1/repos" + ] + }, + "slug": { + "type": "string", + "examples": [ + "justice-league" + ] + }, + "ldap_dn": { + "description": "Distinguished Name (DN) that team maps to within LDAP environment", + "type": "string", + "examples": [ + "uid=example,ou=users,dc=github,dc=com" + ] + } + }, + "required": [ + "id", + "node_id", + "url", + "members_url", + "name", + "description", + "permission", + "html_url", + "repositories_url", + "slug" + ] + } + ] + } + }, + "required": [ + "id", + "node_id", + "url", + "members_url", + "name", + "description", + "permission", + "html_url", + "repositories_url", + "slug", + "parent" + ] + } + }, + "published_at": { + "description": "The date and time the campaign was published, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "type": "string", + "format": "date-time" + }, + "ends_at": { + "description": "The date and time the campaign has ended, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "type": "string", + "format": "date-time" + }, + "closed_at": { + "description": "The date and time the campaign was closed, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. Will be null if the campaign is still open.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "state": { + "title": "Campaign state", + "description": "Indicates whether a campaign is open or closed", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "contact_link": { + "description": "The contact link of the campaign.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "alert_stats": { + "type": "object", + "additionalProperties": false, + "properties": { + "open_count": { + "type": "integer", + "description": "The number of open alerts" + }, + "closed_count": { + "type": "integer", + "description": "The number of closed alerts" + }, + "in_progress_count": { + "type": "integer", + "description": "The number of in-progress alerts" + } + }, + "required": [ + "open_count", + "closed_count", + "in_progress_count" + ] + } + }, + "required": [ + "number", + "created_at", + "updated_at", + "description", + "managers", + "ends_at", + "state", + "contact_link" + ] + } + } + } + } + ], + "previews": [], + "descriptionHTML": "Lists campaigns in an organization.
\nThe authenticated user must be an owner or security manager for the organization to use this endpoint.
\nOAuth app tokens and personal access tokens (classic) need the security_events
scope to use this endpoint.
OK
" + }, + { + "httpStatusCode": "404", + "description": "Resource not found
" + }, + { + "httpStatusCode": "503", + "description": "Service unavailable
" + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "post", + "requestPath": "/orgs/{org}/campaigns", + "title": "Create a campaign for an organization", + "category": "campaigns", + "subcategory": "campaigns", + "parameters": [ + { + "name": "org", + "description": "The organization name. The name is not case sensitive.
", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "bodyParameters": [ + { + "type": "string", + "name": "name", + "in": "body", + "description": "The name of the campaign
", + "isRequired": true + }, + { + "type": "string", + "name": "description", + "in": "body", + "description": "A description for the campaign
", + "isRequired": true + }, + { + "type": "array of strings", + "name": "managers", + "in": "body", + "description": "The logins of the users to set as the campaign managers. At this time, only a single manager can be supplied.
" + }, + { + "type": "array of strings", + "name": "team_managers", + "in": "body", + "description": "The slugs of the teams to set as the campaign managers.
" + }, + { + "type": "string", + "name": "ends_at", + "in": "body", + "description": "The end date and time of the campaign. The date must be in the future.
", + "isRequired": true + }, + { + "type": "string or null", + "name": "contact_link", + "in": "body", + "description": "The contact link of the campaign. Must be a URI.
" + }, + { + "type": "array of objects", + "name": "code_scanning_alerts", + "in": "body", + "description": "The code scanning alerts to include in this campaign
", + "isRequired": true, + "childParamsGroups": [ + { + "type": "integer", + "name": "repository_id", + "description": "The repository id
", + "isRequired": true + }, + { + "type": "array of integers", + "name": "alert_numbers", + "description": "The alert numbers
", + "isRequired": true + } + ] + }, + { + "type": "boolean", + "name": "generate_issues", + "in": "body", + "description": "If true, will automatically generate issues for the campaign. The default is false.
", + "default": false + } + ], + "progAccess": { + "userToServerRest": true, + "serverToServer": true, + "fineGrainedPat": true, + "permissions": [ + { + "\"Campaigns\" organization permissions": "write" + } + ] + }, + "codeExamples": [ + { + "key": "default", + "request": { + "contentType": "application/json", + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "name": "Critical CodeQL alerts", + "description": "Address critical alerts before they are exploited to prevent breaches, protect sensitive data, and mitigate financial and reputational damage.", + "managers": [ + "octocat" + ], + "ends_at": "2024-03-14T00:00:00Z", + "code_scanning_alerts": [ + { + "repository_id": 1296269, + "alert_numbers": [ + 1, + 2 + ] + } + ] + }, + "parameters": { + "org": "ORG" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "Response
", + "example": { + "number": 3, + "created_at": "2024-02-14T12:29:18Z", + "updated_at": "2024-02-14T12:29:18Z", + "name": "Critical CodeQL alert", + "description": "Address critical alerts before they are exploited to prevent breaches, protect sensitive data, and mitigate financial and reputational damage.", + "managers": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + ], + "published_at": "2024-02-14T12:29:18Z", + "ends_at": "2024-03-14T12:29:18Z", + "closed_at": null, + "state": "open", + "alert_stats": { + "open_count": 10, + "closed_count": 3, + "in_progress_count": 3 + } + }, + "schema": { + "title": "Campaign summary", + "description": "The campaign metadata and alert stats.", + "type": "object", + "properties": { + "number": { + "type": "integer", + "description": "The number of the newly created campaign" + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "The date and time the campaign was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "The date and time the campaign was last updated, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ." + }, + "name": { + "type": "string", + "description": "The campaign name" + }, + "description": { + "type": "string", + "description": "The campaign description" + }, + "managers": { + "description": "The campaign managers", + "type": "array", + "items": { + "title": "Simple User", + "description": "A GitHub user.", + "type": "object", + "properties": { + "name": { + "type": [ + "string", + "null" + ] + }, + "email": { + "type": [ + "string", + "null" + ] + }, + "login": { + "type": "string", + "examples": [ + "octocat" + ] + }, + "id": { + "type": "integer", + "format": "int64", + "examples": [ + 1 + ] + }, + "node_id": { + "type": "string", + "examples": [ + "MDQ6VXNlcjE=" + ] + }, + "avatar_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/images/error/octocat_happy.gif" + ] + }, + "gravatar_id": { + "type": [ + "string", + "null" + ], + "examples": [ + "41d064eb2195891e12d0413f63227ea7" + ] + }, + "url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat" + ] + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/octocat" + ] + }, + "followers_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/followers" + ] + }, + "following_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/following{/other_user}" + ] + }, + "gists_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/gists{/gist_id}" + ] + }, + "starred_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/starred{/owner}{/repo}" + ] + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/subscriptions" + ] + }, + "organizations_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/orgs" + ] + }, + "repos_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/repos" + ] + }, + "events_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/events{/privacy}" + ] + }, + "received_events_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/received_events" + ] + }, + "type": { + "type": "string", + "examples": [ + "User" + ] + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "examples": [ + "\"2020-07-09T00:17:55Z\"" + ] + }, + "user_view_type": { + "type": "string", + "examples": [ + "public" + ] + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ] + } + }, + "team_managers": { + "description": "The campaign team managers", + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "privacy": { + "type": "string" + }, + "notification_setting": { + "type": "string" + }, + "permission": { + "type": "string" + }, + "permissions": { + "type": "object", + "properties": { + "pull": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "admin": { + "type": "boolean" + } + }, + "required": [ + "pull", + "triage", + "push", + "maintain", + "admin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/orgs/rails/teams/core" + ] + }, + "members_url": { + "type": "string" + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "parent": { + "anyOf": [ + { + "type": "null" + }, + { + "title": "Team Simple", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the team", + "type": "integer", + "examples": [ + 1 + ] + }, + "node_id": { + "type": "string", + "examples": [ + "MDQ6VGVhbTE=" + ] + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/organizations/1/team/1" + ] + }, + "members_url": { + "type": "string", + "examples": [ + "https://api.github.com/organizations/1/team/1/members{/member}" + ] + }, + "name": { + "description": "Name of the team", + "type": "string", + "examples": [ + "Justice League" + ] + }, + "description": { + "description": "Description of the team", + "type": [ + "string", + "null" + ], + "examples": [ + "A great team." + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string", + "examples": [ + "admin" + ] + }, + "privacy": { + "description": "The level of privacy this team should have", + "type": "string", + "examples": [ + "closed" + ] + }, + "notification_setting": { + "description": "The notification setting the team has set", + "type": "string", + "examples": [ + "notifications_enabled" + ] + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/orgs/rails/teams/core" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/organizations/1/team/1/repos" + ] + }, + "slug": { + "type": "string", + "examples": [ + "justice-league" + ] + }, + "ldap_dn": { + "description": "Distinguished Name (DN) that team maps to within LDAP environment", + "type": "string", + "examples": [ + "uid=example,ou=users,dc=github,dc=com" + ] + } + }, + "required": [ + "id", + "node_id", + "url", + "members_url", + "name", + "description", + "permission", + "html_url", + "repositories_url", + "slug" + ] + } + ] + } + }, + "required": [ + "id", + "node_id", + "url", + "members_url", + "name", + "description", + "permission", + "html_url", + "repositories_url", + "slug", + "parent" + ] + } + }, + "published_at": { + "description": "The date and time the campaign was published, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "type": "string", + "format": "date-time" + }, + "ends_at": { + "description": "The date and time the campaign has ended, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "type": "string", + "format": "date-time" + }, + "closed_at": { + "description": "The date and time the campaign was closed, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. Will be null if the campaign is still open.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "state": { + "title": "Campaign state", + "description": "Indicates whether a campaign is open or closed", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "contact_link": { + "description": "The contact link of the campaign.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "alert_stats": { + "type": "object", + "additionalProperties": false, + "properties": { + "open_count": { + "type": "integer", + "description": "The number of open alerts" + }, + "closed_count": { + "type": "integer", + "description": "The number of closed alerts" + }, + "in_progress_count": { + "type": "integer", + "description": "The number of in-progress alerts" + } + }, + "required": [ + "open_count", + "closed_count", + "in_progress_count" + ] + } + }, + "required": [ + "number", + "created_at", + "updated_at", + "description", + "managers", + "ends_at", + "state", + "contact_link" + ] + } + } + } + ], + "previews": [], + "descriptionHTML": "Create a campaign for an organization.
\nThe authenticated user must be an owner or security manager for the organization to use this endpoint.
\nOAuth app tokens and personal access tokens (classic) need the security_events
scope to use this endpoint.
Fine-grained tokens must have the \"Code scanning alerts\" repository permissions (read) on all repositories included\nin the campaign.
", + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "OK
" + }, + { + "httpStatusCode": "400", + "description": "Bad Request
" + }, + { + "httpStatusCode": "404", + "description": "Resource not found
" + }, + { + "httpStatusCode": "422", + "description": "Unprocessable Entity
" + }, + { + "httpStatusCode": "429", + "description": "Too Many Requests
" + }, + { + "httpStatusCode": "503", + "description": "Service unavailable
" + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "get", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}", + "title": "Get a campaign for an organization", + "category": "campaigns", + "subcategory": "campaigns", + "parameters": [ + { + "name": "org", + "description": "The organization name. The name is not case sensitive.
", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "campaign_number", + "description": "The campaign number.
", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "bodyParameters": [], + "progAccess": { + "userToServerRest": true, + "serverToServer": true, + "fineGrainedPat": true, + "permissions": [ + { + "\"Campaigns\" organization permissions": "read" + } + ] + }, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "org": "ORG", + "campaign_number": "CAMPAIGN_NUMBER" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "Response
", + "example": { + "number": 3, + "created_at": "2024-02-14T12:29:18Z", + "updated_at": "2024-02-14T12:29:18Z", + "name": "Critical CodeQL alert", + "description": "Address critical alerts before they are exploited to prevent breaches, protect sensitive data, and mitigate financial and reputational damage.", + "managers": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + ], + "published_at": "2024-02-14T12:29:18Z", + "ends_at": "2024-03-14T12:29:18Z", + "closed_at": null, + "state": "open", + "alert_stats": { + "open_count": 10, + "closed_count": 3, + "in_progress_count": 3 + } + }, + "schema": { + "title": "Campaign summary", + "description": "The campaign metadata and alert stats.", + "type": "object", + "properties": { + "number": { + "type": "integer", + "description": "The number of the newly created campaign" + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "The date and time the campaign was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "The date and time the campaign was last updated, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ." + }, + "name": { + "type": "string", + "description": "The campaign name" + }, + "description": { + "type": "string", + "description": "The campaign description" + }, + "managers": { + "description": "The campaign managers", + "type": "array", + "items": { + "title": "Simple User", + "description": "A GitHub user.", + "type": "object", + "properties": { + "name": { + "type": [ + "string", + "null" + ] + }, + "email": { + "type": [ + "string", + "null" + ] + }, + "login": { + "type": "string", + "examples": [ + "octocat" + ] + }, + "id": { + "type": "integer", + "format": "int64", + "examples": [ + 1 + ] + }, + "node_id": { + "type": "string", + "examples": [ + "MDQ6VXNlcjE=" + ] + }, + "avatar_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/images/error/octocat_happy.gif" + ] + }, + "gravatar_id": { + "type": [ + "string", + "null" + ], + "examples": [ + "41d064eb2195891e12d0413f63227ea7" + ] + }, + "url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat" + ] + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/octocat" + ] + }, + "followers_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/followers" + ] + }, + "following_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/following{/other_user}" + ] + }, + "gists_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/gists{/gist_id}" + ] + }, + "starred_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/starred{/owner}{/repo}" + ] + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/subscriptions" + ] + }, + "organizations_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/orgs" + ] + }, + "repos_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/repos" + ] + }, + "events_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/events{/privacy}" + ] + }, + "received_events_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/received_events" + ] + }, + "type": { + "type": "string", + "examples": [ + "User" + ] + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "examples": [ + "\"2020-07-09T00:17:55Z\"" + ] + }, + "user_view_type": { + "type": "string", + "examples": [ + "public" + ] + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ] + } + }, + "team_managers": { + "description": "The campaign team managers", + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "privacy": { + "type": "string" + }, + "notification_setting": { + "type": "string" + }, + "permission": { + "type": "string" + }, + "permissions": { + "type": "object", + "properties": { + "pull": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "admin": { + "type": "boolean" + } + }, + "required": [ + "pull", + "triage", + "push", + "maintain", + "admin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/orgs/rails/teams/core" + ] + }, + "members_url": { + "type": "string" + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "parent": { + "anyOf": [ + { + "type": "null" + }, + { + "title": "Team Simple", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the team", + "type": "integer", + "examples": [ + 1 + ] + }, + "node_id": { + "type": "string", + "examples": [ + "MDQ6VGVhbTE=" + ] + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/organizations/1/team/1" + ] + }, + "members_url": { + "type": "string", + "examples": [ + "https://api.github.com/organizations/1/team/1/members{/member}" + ] + }, + "name": { + "description": "Name of the team", + "type": "string", + "examples": [ + "Justice League" + ] + }, + "description": { + "description": "Description of the team", + "type": [ + "string", + "null" + ], + "examples": [ + "A great team." + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string", + "examples": [ + "admin" + ] + }, + "privacy": { + "description": "The level of privacy this team should have", + "type": "string", + "examples": [ + "closed" + ] + }, + "notification_setting": { + "description": "The notification setting the team has set", + "type": "string", + "examples": [ + "notifications_enabled" + ] + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/orgs/rails/teams/core" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/organizations/1/team/1/repos" + ] + }, + "slug": { + "type": "string", + "examples": [ + "justice-league" + ] + }, + "ldap_dn": { + "description": "Distinguished Name (DN) that team maps to within LDAP environment", + "type": "string", + "examples": [ + "uid=example,ou=users,dc=github,dc=com" + ] + } + }, + "required": [ + "id", + "node_id", + "url", + "members_url", + "name", + "description", + "permission", + "html_url", + "repositories_url", + "slug" + ] + } + ] + } + }, + "required": [ + "id", + "node_id", + "url", + "members_url", + "name", + "description", + "permission", + "html_url", + "repositories_url", + "slug", + "parent" + ] + } + }, + "published_at": { + "description": "The date and time the campaign was published, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "type": "string", + "format": "date-time" + }, + "ends_at": { + "description": "The date and time the campaign has ended, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "type": "string", + "format": "date-time" + }, + "closed_at": { + "description": "The date and time the campaign was closed, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. Will be null if the campaign is still open.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "state": { + "title": "Campaign state", + "description": "Indicates whether a campaign is open or closed", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "contact_link": { + "description": "The contact link of the campaign.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "alert_stats": { + "type": "object", + "additionalProperties": false, + "properties": { + "open_count": { + "type": "integer", + "description": "The number of open alerts" + }, + "closed_count": { + "type": "integer", + "description": "The number of closed alerts" + }, + "in_progress_count": { + "type": "integer", + "description": "The number of in-progress alerts" + } + }, + "required": [ + "open_count", + "closed_count", + "in_progress_count" + ] + } + }, + "required": [ + "number", + "created_at", + "updated_at", + "description", + "managers", + "ends_at", + "state", + "contact_link" + ] + } + } + } + ], + "previews": [], + "descriptionHTML": "Gets a campaign for an organization.
\nThe authenticated user must be an owner or security manager for the organization to use this endpoint.
\nOAuth app tokens and personal access tokens (classic) need the security_events
scope to use this endpoint.
OK
" + }, + { + "httpStatusCode": "404", + "description": "Resource not found
" + }, + { + "httpStatusCode": "422", + "description": "Unprocessable Entity
" + }, + { + "httpStatusCode": "503", + "description": "Service unavailable
" + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "patch", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}", + "title": "Update a campaign", + "category": "campaigns", + "subcategory": "campaigns", + "parameters": [ + { + "name": "org", + "description": "The organization name. The name is not case sensitive.
", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "campaign_number", + "description": "The campaign number.
", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "bodyParameters": [ + { + "type": "string", + "name": "name", + "in": "body", + "description": "The name of the campaign
" + }, + { + "type": "string", + "name": "description", + "in": "body", + "description": "A description for the campaign
" + }, + { + "type": "array of strings", + "name": "managers", + "in": "body", + "description": "The logins of the users to set as the campaign managers. At this time, only a single manager can be supplied.
" + }, + { + "type": "array of strings", + "name": "team_managers", + "in": "body", + "description": "The slugs of the teams to set as the campaign managers.
" + }, + { + "type": "string", + "name": "ends_at", + "in": "body", + "description": "The end date and time of the campaign, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.
" + }, + { + "type": "string or null", + "name": "contact_link", + "in": "body", + "description": "The contact link of the campaign. Must be a URI.
" + }, + { + "type": "string", + "name": "state", + "in": "body", + "description": "Indicates whether a campaign is open or closed
", + "enum": [ + "open", + "closed" + ] + } + ], + "progAccess": { + "userToServerRest": true, + "serverToServer": true, + "fineGrainedPat": true, + "permissions": [ + { + "\"Campaigns\" organization permissions": "write" + } + ] + }, + "codeExamples": [ + { + "key": "default", + "request": { + "contentType": "application/json", + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "name": "Critical CodeQL alerts" + }, + "parameters": { + "org": "ORG", + "campaign_number": "CAMPAIGN_NUMBER" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "Response
", + "example": { + "number": 3, + "created_at": "2024-02-14T12:29:18Z", + "updated_at": "2024-02-14T12:29:18Z", + "name": "Critical CodeQL alert", + "description": "Address critical alerts before they are exploited to prevent breaches, protect sensitive data, and mitigate financial and reputational damage.", + "managers": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + ], + "published_at": "2024-02-14T12:29:18Z", + "ends_at": "2024-03-14T12:29:18Z", + "closed_at": null, + "state": "open", + "alert_stats": { + "open_count": 10, + "closed_count": 3, + "in_progress_count": 3 + } + }, + "schema": { + "title": "Campaign summary", + "description": "The campaign metadata and alert stats.", + "type": "object", + "properties": { + "number": { + "type": "integer", + "description": "The number of the newly created campaign" + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "The date and time the campaign was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "The date and time the campaign was last updated, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ." + }, + "name": { + "type": "string", + "description": "The campaign name" + }, + "description": { + "type": "string", + "description": "The campaign description" + }, + "managers": { + "description": "The campaign managers", + "type": "array", + "items": { + "title": "Simple User", + "description": "A GitHub user.", + "type": "object", + "properties": { + "name": { + "type": [ + "string", + "null" + ] + }, + "email": { + "type": [ + "string", + "null" + ] + }, + "login": { + "type": "string", + "examples": [ + "octocat" + ] + }, + "id": { + "type": "integer", + "format": "int64", + "examples": [ + 1 + ] + }, + "node_id": { + "type": "string", + "examples": [ + "MDQ6VXNlcjE=" + ] + }, + "avatar_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/images/error/octocat_happy.gif" + ] + }, + "gravatar_id": { + "type": [ + "string", + "null" + ], + "examples": [ + "41d064eb2195891e12d0413f63227ea7" + ] + }, + "url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat" + ] + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/octocat" + ] + }, + "followers_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/followers" + ] + }, + "following_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/following{/other_user}" + ] + }, + "gists_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/gists{/gist_id}" + ] + }, + "starred_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/starred{/owner}{/repo}" + ] + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/subscriptions" + ] + }, + "organizations_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/orgs" + ] + }, + "repos_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/repos" + ] + }, + "events_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/events{/privacy}" + ] + }, + "received_events_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/received_events" + ] + }, + "type": { + "type": "string", + "examples": [ + "User" + ] + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "examples": [ + "\"2020-07-09T00:17:55Z\"" + ] + }, + "user_view_type": { + "type": "string", + "examples": [ + "public" + ] + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ] + } + }, + "team_managers": { + "description": "The campaign team managers", + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "privacy": { + "type": "string" + }, + "notification_setting": { + "type": "string" + }, + "permission": { + "type": "string" + }, + "permissions": { + "type": "object", + "properties": { + "pull": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "admin": { + "type": "boolean" + } + }, + "required": [ + "pull", + "triage", + "push", + "maintain", + "admin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/orgs/rails/teams/core" + ] + }, + "members_url": { + "type": "string" + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "parent": { + "anyOf": [ + { + "type": "null" + }, + { + "title": "Team Simple", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the team", + "type": "integer", + "examples": [ + 1 + ] + }, + "node_id": { + "type": "string", + "examples": [ + "MDQ6VGVhbTE=" + ] + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/organizations/1/team/1" + ] + }, + "members_url": { + "type": "string", + "examples": [ + "https://api.github.com/organizations/1/team/1/members{/member}" + ] + }, + "name": { + "description": "Name of the team", + "type": "string", + "examples": [ + "Justice League" + ] + }, + "description": { + "description": "Description of the team", + "type": [ + "string", + "null" + ], + "examples": [ + "A great team." + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string", + "examples": [ + "admin" + ] + }, + "privacy": { + "description": "The level of privacy this team should have", + "type": "string", + "examples": [ + "closed" + ] + }, + "notification_setting": { + "description": "The notification setting the team has set", + "type": "string", + "examples": [ + "notifications_enabled" + ] + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/orgs/rails/teams/core" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/organizations/1/team/1/repos" + ] + }, + "slug": { + "type": "string", + "examples": [ + "justice-league" + ] + }, + "ldap_dn": { + "description": "Distinguished Name (DN) that team maps to within LDAP environment", + "type": "string", + "examples": [ + "uid=example,ou=users,dc=github,dc=com" + ] + } + }, + "required": [ + "id", + "node_id", + "url", + "members_url", + "name", + "description", + "permission", + "html_url", + "repositories_url", + "slug" + ] + } + ] + } + }, + "required": [ + "id", + "node_id", + "url", + "members_url", + "name", + "description", + "permission", + "html_url", + "repositories_url", + "slug", + "parent" + ] + } + }, + "published_at": { + "description": "The date and time the campaign was published, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "type": "string", + "format": "date-time" + }, + "ends_at": { + "description": "The date and time the campaign has ended, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "type": "string", + "format": "date-time" + }, + "closed_at": { + "description": "The date and time the campaign was closed, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. Will be null if the campaign is still open.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "state": { + "title": "Campaign state", + "description": "Indicates whether a campaign is open or closed", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "contact_link": { + "description": "The contact link of the campaign.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "alert_stats": { + "type": "object", + "additionalProperties": false, + "properties": { + "open_count": { + "type": "integer", + "description": "The number of open alerts" + }, + "closed_count": { + "type": "integer", + "description": "The number of closed alerts" + }, + "in_progress_count": { + "type": "integer", + "description": "The number of in-progress alerts" + } + }, + "required": [ + "open_count", + "closed_count", + "in_progress_count" + ] + } + }, + "required": [ + "number", + "created_at", + "updated_at", + "description", + "managers", + "ends_at", + "state", + "contact_link" + ] + } + } + } + ], + "previews": [], + "descriptionHTML": "Updates a campaign in an organization.
\nThe authenticated user must be an owner or security manager for the organization to use this endpoint.
\nOAuth app tokens and personal access tokens (classic) need the security_events
scope to use this endpoint.
OK
" + }, + { + "httpStatusCode": "400", + "description": "Bad Request
" + }, + { + "httpStatusCode": "404", + "description": "Resource not found
" + }, + { + "httpStatusCode": "422", + "description": "Unprocessable Entity
" + }, + { + "httpStatusCode": "503", + "description": "Service unavailable
" + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "delete", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}", + "title": "Delete a campaign for an organization", + "category": "campaigns", + "subcategory": "campaigns", + "parameters": [ + { + "name": "org", + "description": "The organization name. The name is not case sensitive.
", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "campaign_number", + "description": "The campaign number.
", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "bodyParameters": [], + "progAccess": { + "userToServerRest": true, + "serverToServer": true, + "fineGrainedPat": true, + "permissions": [ + { + "\"Campaigns\" organization permissions": "write" + } + ] + }, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "org": "ORG", + "campaign_number": "CAMPAIGN_NUMBER" + } + }, + "response": { + "statusCode": "204", + "description": "Deletion successful
" + } + } + ], + "previews": [], + "descriptionHTML": "Deletes a campaign in an organization.
\nThe authenticated user must be an owner or security manager for the organization to use this endpoint.
\nOAuth app tokens and personal access tokens (classic) need the security_events
scope to use this endpoint.
Deletion successful
" + }, + { + "httpStatusCode": "404", + "description": "Resource not found
" + }, + { + "httpStatusCode": "503", + "description": "Service unavailable
" + } + ] + } + ] + }, "checks": { "runs": [ { @@ -279996,6 +282683,12 @@ "type": "array", "items": { "type": "object", + "required": [ + "path", + "mode", + "type", + "sha" + ], "properties": { "path": { "type": "string", @@ -280042,42 +282735,13 @@ "type": "blob", "size": 30, "sha": "44b4fc6d56897b048c772eb4087f854f46256132", - "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132", - "properties": { - "path": { - "type": "string" - }, - "mode": { - "type": "string" - }, - "type": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "sha": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "path", - "mode", - "type", - "sha", - "url", - "size" - ] + "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132" } ] } }, "required": [ "sha", - "url", "tree", "truncated" ] @@ -280234,6 +282898,12 @@ "type": "array", "items": { "type": "object", + "required": [ + "path", + "mode", + "type", + "sha" + ], "properties": { "path": { "type": "string", @@ -280280,42 +282950,13 @@ "type": "blob", "size": 30, "sha": "44b4fc6d56897b048c772eb4087f854f46256132", - "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132", - "properties": { - "path": { - "type": "string" - }, - "mode": { - "type": "string" - }, - "type": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "sha": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "path", - "mode", - "type", - "sha", - "url", - "size" - ] + "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132" } ] } }, "required": [ "sha", - "url", "tree", "truncated" ] @@ -280372,6 +283013,12 @@ "type": "array", "items": { "type": "object", + "required": [ + "path", + "mode", + "type", + "sha" + ], "properties": { "path": { "type": "string", @@ -280418,42 +283065,13 @@ "type": "blob", "size": 30, "sha": "44b4fc6d56897b048c772eb4087f854f46256132", - "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132", - "properties": { - "path": { - "type": "string" - }, - "mode": { - "type": "string" - }, - "type": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "sha": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "path", - "mode", - "type", - "sha", - "url", - "size" - ] + "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132" } ] } }, "required": [ "sha", - "url", "tree", "truncated" ] @@ -406404,7 +409022,7 @@ }, "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -407555,7 +410173,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -408963,7 +411581,7 @@ }, "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -410338,7 +412956,7 @@ }, "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -411494,7 +414112,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -412903,7 +415521,7 @@ }, "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -539212,7 +541830,7 @@ }, "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -540956,7 +543574,7 @@ }, "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -541950,7 +544568,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -543339,7 +545957,7 @@ }, "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -544725,7 +547343,7 @@ }, "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -545724,7 +548342,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -547114,7 +549732,7 @@ }, "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", diff --git a/src/rest/data/ghec-2022-11-28/schema.json b/src/rest/data/ghec-2022-11-28/schema.json index cbf890aa8bb3..400c3f11e487 100644 --- a/src/rest/data/ghec-2022-11-28/schema.json +++ b/src/rest/data/ghec-2022-11-28/schema.json @@ -144431,6 +144431,2693 @@ } ] }, + "campaigns": { + "campaigns": [ + { + "serverUrl": "https://api.github.com", + "verb": "get", + "requestPath": "/orgs/{org}/campaigns", + "title": "List campaigns for an organization", + "category": "campaigns", + "subcategory": "campaigns", + "parameters": [ + { + "name": "org", + "description": "The organization name. The name is not case sensitive.
", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "page", + "description": "The page number of the results to fetch. For more information, see \"Using pagination in the REST API.\"
", + "in": "query", + "schema": { + "type": "integer", + "default": 1 + } + }, + { + "name": "per_page", + "description": "The number of results per page (max 100). For more information, see \"Using pagination in the REST API.\"
", + "in": "query", + "schema": { + "type": "integer", + "default": 30 + } + }, + { + "name": "direction", + "description": "The direction to sort the results by.
", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "desc" + } + }, + { + "name": "state", + "description": "If specified, only campaigns with this state will be returned.
", + "in": "query", + "required": false, + "schema": { + "title": "Campaign state", + "description": "Indicates whether a campaign is open or closed", + "type": "string", + "enum": [ + "open", + "closed" + ] + } + }, + { + "name": "sort", + "description": "The property by which to sort the results.
", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "created", + "updated", + "ends_at", + "published" + ], + "default": "created" + } + } + ], + "bodyParameters": [], + "progAccess": { + "userToServerRest": true, + "serverToServer": true, + "fineGrainedPat": true, + "permissions": [ + { + "\"Campaigns\" organization permissions": "read" + } + ] + }, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "org": "ORG" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "Response
", + "example": [ + { + "number": 3, + "created_at": "2024-02-14T12:29:18Z", + "updated_at": "2024-02-14T12:29:18Z", + "name": "Critical CodeQL alert", + "description": "Address critical alerts before they are exploited to prevent breaches, protect sensitive data, and mitigate financial and reputational damage.", + "managers": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + ], + "ends_at": "2024-03-14T12:29:18Z", + "closed_at": null, + "state": "open" + }, + { + "number": 4, + "created_at": "2024-03-30T12:29:18Z", + "updated_at": "2024-03-30T12:29:18Z", + "name": "Mitre top 10 KEV", + "description": "Remediate the MITRE Top 10 KEV (Known Exploited Vulnerabilities) to enhance security by addressing vulnerabilities actively exploited by attackers. This reduces risk, prevents breaches and can help protect sensitive data.", + "managers": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + ], + "ends_at": "2024-04-30T12:29:18Z", + "closed_at": null, + "state": "open" + } + ], + "schema": { + "type": "array", + "items": { + "title": "Campaign summary", + "description": "The campaign metadata and alert stats.", + "type": "object", + "properties": { + "number": { + "type": "integer", + "description": "The number of the newly created campaign" + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "The date and time the campaign was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "The date and time the campaign was last updated, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ." + }, + "name": { + "type": "string", + "description": "The campaign name" + }, + "description": { + "type": "string", + "description": "The campaign description" + }, + "managers": { + "description": "The campaign managers", + "type": "array", + "items": { + "title": "Simple User", + "description": "A GitHub user.", + "type": "object", + "properties": { + "name": { + "type": [ + "string", + "null" + ] + }, + "email": { + "type": [ + "string", + "null" + ] + }, + "login": { + "type": "string", + "examples": [ + "octocat" + ] + }, + "id": { + "type": "integer", + "format": "int64", + "examples": [ + 1 + ] + }, + "node_id": { + "type": "string", + "examples": [ + "MDQ6VXNlcjE=" + ] + }, + "avatar_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/images/error/octocat_happy.gif" + ] + }, + "gravatar_id": { + "type": [ + "string", + "null" + ], + "examples": [ + "41d064eb2195891e12d0413f63227ea7" + ] + }, + "url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat" + ] + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/octocat" + ] + }, + "followers_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/followers" + ] + }, + "following_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/following{/other_user}" + ] + }, + "gists_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/gists{/gist_id}" + ] + }, + "starred_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/starred{/owner}{/repo}" + ] + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/subscriptions" + ] + }, + "organizations_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/orgs" + ] + }, + "repos_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/repos" + ] + }, + "events_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/events{/privacy}" + ] + }, + "received_events_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/received_events" + ] + }, + "type": { + "type": "string", + "examples": [ + "User" + ] + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "examples": [ + "\"2020-07-09T00:17:55Z\"" + ] + }, + "user_view_type": { + "type": "string", + "examples": [ + "public" + ] + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ] + } + }, + "team_managers": { + "description": "The campaign team managers", + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "privacy": { + "type": "string" + }, + "notification_setting": { + "type": "string" + }, + "permission": { + "type": "string" + }, + "permissions": { + "type": "object", + "properties": { + "pull": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "admin": { + "type": "boolean" + } + }, + "required": [ + "pull", + "triage", + "push", + "maintain", + "admin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/orgs/rails/teams/core" + ] + }, + "members_url": { + "type": "string" + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "parent": { + "anyOf": [ + { + "type": "null" + }, + { + "title": "Team Simple", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the team", + "type": "integer", + "examples": [ + 1 + ] + }, + "node_id": { + "type": "string", + "examples": [ + "MDQ6VGVhbTE=" + ] + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/organizations/1/team/1" + ] + }, + "members_url": { + "type": "string", + "examples": [ + "https://api.github.com/organizations/1/team/1/members{/member}" + ] + }, + "name": { + "description": "Name of the team", + "type": "string", + "examples": [ + "Justice League" + ] + }, + "description": { + "description": "Description of the team", + "type": [ + "string", + "null" + ], + "examples": [ + "A great team." + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string", + "examples": [ + "admin" + ] + }, + "privacy": { + "description": "The level of privacy this team should have", + "type": "string", + "examples": [ + "closed" + ] + }, + "notification_setting": { + "description": "The notification setting the team has set", + "type": "string", + "examples": [ + "notifications_enabled" + ] + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/orgs/rails/teams/core" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/organizations/1/team/1/repos" + ] + }, + "slug": { + "type": "string", + "examples": [ + "justice-league" + ] + }, + "ldap_dn": { + "description": "Distinguished Name (DN) that team maps to within LDAP environment", + "type": "string", + "examples": [ + "uid=example,ou=users,dc=github,dc=com" + ] + } + }, + "required": [ + "id", + "node_id", + "url", + "members_url", + "name", + "description", + "permission", + "html_url", + "repositories_url", + "slug" + ] + } + ] + } + }, + "required": [ + "id", + "node_id", + "url", + "members_url", + "name", + "description", + "permission", + "html_url", + "repositories_url", + "slug", + "parent" + ] + } + }, + "published_at": { + "description": "The date and time the campaign was published, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "type": "string", + "format": "date-time" + }, + "ends_at": { + "description": "The date and time the campaign has ended, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "type": "string", + "format": "date-time" + }, + "closed_at": { + "description": "The date and time the campaign was closed, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. Will be null if the campaign is still open.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "state": { + "title": "Campaign state", + "description": "Indicates whether a campaign is open or closed", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "contact_link": { + "description": "The contact link of the campaign.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "alert_stats": { + "type": "object", + "additionalProperties": false, + "properties": { + "open_count": { + "type": "integer", + "description": "The number of open alerts" + }, + "closed_count": { + "type": "integer", + "description": "The number of closed alerts" + }, + "in_progress_count": { + "type": "integer", + "description": "The number of in-progress alerts" + } + }, + "required": [ + "open_count", + "closed_count", + "in_progress_count" + ] + } + }, + "required": [ + "number", + "created_at", + "updated_at", + "description", + "managers", + "ends_at", + "state", + "contact_link" + ] + } + } + } + } + ], + "previews": [], + "descriptionHTML": "Lists campaigns in an organization.
\nThe authenticated user must be an owner or security manager for the organization to use this endpoint.
\nOAuth app tokens and personal access tokens (classic) need the security_events
scope to use this endpoint.
OK
" + }, + { + "httpStatusCode": "404", + "description": "Resource not found
" + }, + { + "httpStatusCode": "503", + "description": "Service unavailable
" + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "post", + "requestPath": "/orgs/{org}/campaigns", + "title": "Create a campaign for an organization", + "category": "campaigns", + "subcategory": "campaigns", + "parameters": [ + { + "name": "org", + "description": "The organization name. The name is not case sensitive.
", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "bodyParameters": [ + { + "type": "string", + "name": "name", + "in": "body", + "description": "The name of the campaign
", + "isRequired": true + }, + { + "type": "string", + "name": "description", + "in": "body", + "description": "A description for the campaign
", + "isRequired": true + }, + { + "type": "array of strings", + "name": "managers", + "in": "body", + "description": "The logins of the users to set as the campaign managers. At this time, only a single manager can be supplied.
" + }, + { + "type": "array of strings", + "name": "team_managers", + "in": "body", + "description": "The slugs of the teams to set as the campaign managers.
" + }, + { + "type": "string", + "name": "ends_at", + "in": "body", + "description": "The end date and time of the campaign. The date must be in the future.
", + "isRequired": true + }, + { + "type": "string or null", + "name": "contact_link", + "in": "body", + "description": "The contact link of the campaign. Must be a URI.
" + }, + { + "type": "array of objects", + "name": "code_scanning_alerts", + "in": "body", + "description": "The code scanning alerts to include in this campaign
", + "isRequired": true, + "childParamsGroups": [ + { + "type": "integer", + "name": "repository_id", + "description": "The repository id
", + "isRequired": true + }, + { + "type": "array of integers", + "name": "alert_numbers", + "description": "The alert numbers
", + "isRequired": true + } + ] + }, + { + "type": "boolean", + "name": "generate_issues", + "in": "body", + "description": "If true, will automatically generate issues for the campaign. The default is false.
", + "default": false + } + ], + "progAccess": { + "userToServerRest": true, + "serverToServer": true, + "fineGrainedPat": true, + "permissions": [ + { + "\"Campaigns\" organization permissions": "write" + } + ] + }, + "codeExamples": [ + { + "key": "default", + "request": { + "contentType": "application/json", + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "name": "Critical CodeQL alerts", + "description": "Address critical alerts before they are exploited to prevent breaches, protect sensitive data, and mitigate financial and reputational damage.", + "managers": [ + "octocat" + ], + "ends_at": "2024-03-14T00:00:00Z", + "code_scanning_alerts": [ + { + "repository_id": 1296269, + "alert_numbers": [ + 1, + 2 + ] + } + ] + }, + "parameters": { + "org": "ORG" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "Response
", + "example": { + "number": 3, + "created_at": "2024-02-14T12:29:18Z", + "updated_at": "2024-02-14T12:29:18Z", + "name": "Critical CodeQL alert", + "description": "Address critical alerts before they are exploited to prevent breaches, protect sensitive data, and mitigate financial and reputational damage.", + "managers": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + ], + "published_at": "2024-02-14T12:29:18Z", + "ends_at": "2024-03-14T12:29:18Z", + "closed_at": null, + "state": "open", + "alert_stats": { + "open_count": 10, + "closed_count": 3, + "in_progress_count": 3 + } + }, + "schema": { + "title": "Campaign summary", + "description": "The campaign metadata and alert stats.", + "type": "object", + "properties": { + "number": { + "type": "integer", + "description": "The number of the newly created campaign" + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "The date and time the campaign was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "The date and time the campaign was last updated, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ." + }, + "name": { + "type": "string", + "description": "The campaign name" + }, + "description": { + "type": "string", + "description": "The campaign description" + }, + "managers": { + "description": "The campaign managers", + "type": "array", + "items": { + "title": "Simple User", + "description": "A GitHub user.", + "type": "object", + "properties": { + "name": { + "type": [ + "string", + "null" + ] + }, + "email": { + "type": [ + "string", + "null" + ] + }, + "login": { + "type": "string", + "examples": [ + "octocat" + ] + }, + "id": { + "type": "integer", + "format": "int64", + "examples": [ + 1 + ] + }, + "node_id": { + "type": "string", + "examples": [ + "MDQ6VXNlcjE=" + ] + }, + "avatar_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/images/error/octocat_happy.gif" + ] + }, + "gravatar_id": { + "type": [ + "string", + "null" + ], + "examples": [ + "41d064eb2195891e12d0413f63227ea7" + ] + }, + "url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat" + ] + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/octocat" + ] + }, + "followers_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/followers" + ] + }, + "following_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/following{/other_user}" + ] + }, + "gists_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/gists{/gist_id}" + ] + }, + "starred_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/starred{/owner}{/repo}" + ] + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/subscriptions" + ] + }, + "organizations_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/orgs" + ] + }, + "repos_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/repos" + ] + }, + "events_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/events{/privacy}" + ] + }, + "received_events_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/received_events" + ] + }, + "type": { + "type": "string", + "examples": [ + "User" + ] + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "examples": [ + "\"2020-07-09T00:17:55Z\"" + ] + }, + "user_view_type": { + "type": "string", + "examples": [ + "public" + ] + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ] + } + }, + "team_managers": { + "description": "The campaign team managers", + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "privacy": { + "type": "string" + }, + "notification_setting": { + "type": "string" + }, + "permission": { + "type": "string" + }, + "permissions": { + "type": "object", + "properties": { + "pull": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "admin": { + "type": "boolean" + } + }, + "required": [ + "pull", + "triage", + "push", + "maintain", + "admin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/orgs/rails/teams/core" + ] + }, + "members_url": { + "type": "string" + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "parent": { + "anyOf": [ + { + "type": "null" + }, + { + "title": "Team Simple", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the team", + "type": "integer", + "examples": [ + 1 + ] + }, + "node_id": { + "type": "string", + "examples": [ + "MDQ6VGVhbTE=" + ] + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/organizations/1/team/1" + ] + }, + "members_url": { + "type": "string", + "examples": [ + "https://api.github.com/organizations/1/team/1/members{/member}" + ] + }, + "name": { + "description": "Name of the team", + "type": "string", + "examples": [ + "Justice League" + ] + }, + "description": { + "description": "Description of the team", + "type": [ + "string", + "null" + ], + "examples": [ + "A great team." + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string", + "examples": [ + "admin" + ] + }, + "privacy": { + "description": "The level of privacy this team should have", + "type": "string", + "examples": [ + "closed" + ] + }, + "notification_setting": { + "description": "The notification setting the team has set", + "type": "string", + "examples": [ + "notifications_enabled" + ] + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/orgs/rails/teams/core" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/organizations/1/team/1/repos" + ] + }, + "slug": { + "type": "string", + "examples": [ + "justice-league" + ] + }, + "ldap_dn": { + "description": "Distinguished Name (DN) that team maps to within LDAP environment", + "type": "string", + "examples": [ + "uid=example,ou=users,dc=github,dc=com" + ] + } + }, + "required": [ + "id", + "node_id", + "url", + "members_url", + "name", + "description", + "permission", + "html_url", + "repositories_url", + "slug" + ] + } + ] + } + }, + "required": [ + "id", + "node_id", + "url", + "members_url", + "name", + "description", + "permission", + "html_url", + "repositories_url", + "slug", + "parent" + ] + } + }, + "published_at": { + "description": "The date and time the campaign was published, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "type": "string", + "format": "date-time" + }, + "ends_at": { + "description": "The date and time the campaign has ended, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "type": "string", + "format": "date-time" + }, + "closed_at": { + "description": "The date and time the campaign was closed, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. Will be null if the campaign is still open.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "state": { + "title": "Campaign state", + "description": "Indicates whether a campaign is open or closed", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "contact_link": { + "description": "The contact link of the campaign.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "alert_stats": { + "type": "object", + "additionalProperties": false, + "properties": { + "open_count": { + "type": "integer", + "description": "The number of open alerts" + }, + "closed_count": { + "type": "integer", + "description": "The number of closed alerts" + }, + "in_progress_count": { + "type": "integer", + "description": "The number of in-progress alerts" + } + }, + "required": [ + "open_count", + "closed_count", + "in_progress_count" + ] + } + }, + "required": [ + "number", + "created_at", + "updated_at", + "description", + "managers", + "ends_at", + "state", + "contact_link" + ] + } + } + } + ], + "previews": [], + "descriptionHTML": "Create a campaign for an organization.
\nThe authenticated user must be an owner or security manager for the organization to use this endpoint.
\nOAuth app tokens and personal access tokens (classic) need the security_events
scope to use this endpoint.
Fine-grained tokens must have the \"Code scanning alerts\" repository permissions (read) on all repositories included\nin the campaign.
", + "statusCodes": [ + { + "httpStatusCode": "200", + "description": "OK
" + }, + { + "httpStatusCode": "400", + "description": "Bad Request
" + }, + { + "httpStatusCode": "404", + "description": "Resource not found
" + }, + { + "httpStatusCode": "422", + "description": "Unprocessable Entity
" + }, + { + "httpStatusCode": "429", + "description": "Too Many Requests
" + }, + { + "httpStatusCode": "503", + "description": "Service unavailable
" + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "get", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}", + "title": "Get a campaign for an organization", + "category": "campaigns", + "subcategory": "campaigns", + "parameters": [ + { + "name": "org", + "description": "The organization name. The name is not case sensitive.
", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "campaign_number", + "description": "The campaign number.
", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "bodyParameters": [], + "progAccess": { + "userToServerRest": true, + "serverToServer": true, + "fineGrainedPat": true, + "permissions": [ + { + "\"Campaigns\" organization permissions": "read" + } + ] + }, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "org": "ORG", + "campaign_number": "CAMPAIGN_NUMBER" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "Response
", + "example": { + "number": 3, + "created_at": "2024-02-14T12:29:18Z", + "updated_at": "2024-02-14T12:29:18Z", + "name": "Critical CodeQL alert", + "description": "Address critical alerts before they are exploited to prevent breaches, protect sensitive data, and mitigate financial and reputational damage.", + "managers": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + ], + "published_at": "2024-02-14T12:29:18Z", + "ends_at": "2024-03-14T12:29:18Z", + "closed_at": null, + "state": "open", + "alert_stats": { + "open_count": 10, + "closed_count": 3, + "in_progress_count": 3 + } + }, + "schema": { + "title": "Campaign summary", + "description": "The campaign metadata and alert stats.", + "type": "object", + "properties": { + "number": { + "type": "integer", + "description": "The number of the newly created campaign" + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "The date and time the campaign was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "The date and time the campaign was last updated, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ." + }, + "name": { + "type": "string", + "description": "The campaign name" + }, + "description": { + "type": "string", + "description": "The campaign description" + }, + "managers": { + "description": "The campaign managers", + "type": "array", + "items": { + "title": "Simple User", + "description": "A GitHub user.", + "type": "object", + "properties": { + "name": { + "type": [ + "string", + "null" + ] + }, + "email": { + "type": [ + "string", + "null" + ] + }, + "login": { + "type": "string", + "examples": [ + "octocat" + ] + }, + "id": { + "type": "integer", + "format": "int64", + "examples": [ + 1 + ] + }, + "node_id": { + "type": "string", + "examples": [ + "MDQ6VXNlcjE=" + ] + }, + "avatar_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/images/error/octocat_happy.gif" + ] + }, + "gravatar_id": { + "type": [ + "string", + "null" + ], + "examples": [ + "41d064eb2195891e12d0413f63227ea7" + ] + }, + "url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat" + ] + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/octocat" + ] + }, + "followers_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/followers" + ] + }, + "following_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/following{/other_user}" + ] + }, + "gists_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/gists{/gist_id}" + ] + }, + "starred_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/starred{/owner}{/repo}" + ] + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/subscriptions" + ] + }, + "organizations_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/orgs" + ] + }, + "repos_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/repos" + ] + }, + "events_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/events{/privacy}" + ] + }, + "received_events_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/received_events" + ] + }, + "type": { + "type": "string", + "examples": [ + "User" + ] + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "examples": [ + "\"2020-07-09T00:17:55Z\"" + ] + }, + "user_view_type": { + "type": "string", + "examples": [ + "public" + ] + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ] + } + }, + "team_managers": { + "description": "The campaign team managers", + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "privacy": { + "type": "string" + }, + "notification_setting": { + "type": "string" + }, + "permission": { + "type": "string" + }, + "permissions": { + "type": "object", + "properties": { + "pull": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "admin": { + "type": "boolean" + } + }, + "required": [ + "pull", + "triage", + "push", + "maintain", + "admin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/orgs/rails/teams/core" + ] + }, + "members_url": { + "type": "string" + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "parent": { + "anyOf": [ + { + "type": "null" + }, + { + "title": "Team Simple", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the team", + "type": "integer", + "examples": [ + 1 + ] + }, + "node_id": { + "type": "string", + "examples": [ + "MDQ6VGVhbTE=" + ] + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/organizations/1/team/1" + ] + }, + "members_url": { + "type": "string", + "examples": [ + "https://api.github.com/organizations/1/team/1/members{/member}" + ] + }, + "name": { + "description": "Name of the team", + "type": "string", + "examples": [ + "Justice League" + ] + }, + "description": { + "description": "Description of the team", + "type": [ + "string", + "null" + ], + "examples": [ + "A great team." + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string", + "examples": [ + "admin" + ] + }, + "privacy": { + "description": "The level of privacy this team should have", + "type": "string", + "examples": [ + "closed" + ] + }, + "notification_setting": { + "description": "The notification setting the team has set", + "type": "string", + "examples": [ + "notifications_enabled" + ] + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/orgs/rails/teams/core" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/organizations/1/team/1/repos" + ] + }, + "slug": { + "type": "string", + "examples": [ + "justice-league" + ] + }, + "ldap_dn": { + "description": "Distinguished Name (DN) that team maps to within LDAP environment", + "type": "string", + "examples": [ + "uid=example,ou=users,dc=github,dc=com" + ] + } + }, + "required": [ + "id", + "node_id", + "url", + "members_url", + "name", + "description", + "permission", + "html_url", + "repositories_url", + "slug" + ] + } + ] + } + }, + "required": [ + "id", + "node_id", + "url", + "members_url", + "name", + "description", + "permission", + "html_url", + "repositories_url", + "slug", + "parent" + ] + } + }, + "published_at": { + "description": "The date and time the campaign was published, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "type": "string", + "format": "date-time" + }, + "ends_at": { + "description": "The date and time the campaign has ended, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "type": "string", + "format": "date-time" + }, + "closed_at": { + "description": "The date and time the campaign was closed, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. Will be null if the campaign is still open.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "state": { + "title": "Campaign state", + "description": "Indicates whether a campaign is open or closed", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "contact_link": { + "description": "The contact link of the campaign.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "alert_stats": { + "type": "object", + "additionalProperties": false, + "properties": { + "open_count": { + "type": "integer", + "description": "The number of open alerts" + }, + "closed_count": { + "type": "integer", + "description": "The number of closed alerts" + }, + "in_progress_count": { + "type": "integer", + "description": "The number of in-progress alerts" + } + }, + "required": [ + "open_count", + "closed_count", + "in_progress_count" + ] + } + }, + "required": [ + "number", + "created_at", + "updated_at", + "description", + "managers", + "ends_at", + "state", + "contact_link" + ] + } + } + } + ], + "previews": [], + "descriptionHTML": "Gets a campaign for an organization.
\nThe authenticated user must be an owner or security manager for the organization to use this endpoint.
\nOAuth app tokens and personal access tokens (classic) need the security_events
scope to use this endpoint.
OK
" + }, + { + "httpStatusCode": "404", + "description": "Resource not found
" + }, + { + "httpStatusCode": "422", + "description": "Unprocessable Entity
" + }, + { + "httpStatusCode": "503", + "description": "Service unavailable
" + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "patch", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}", + "title": "Update a campaign", + "category": "campaigns", + "subcategory": "campaigns", + "parameters": [ + { + "name": "org", + "description": "The organization name. The name is not case sensitive.
", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "campaign_number", + "description": "The campaign number.
", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "bodyParameters": [ + { + "type": "string", + "name": "name", + "in": "body", + "description": "The name of the campaign
" + }, + { + "type": "string", + "name": "description", + "in": "body", + "description": "A description for the campaign
" + }, + { + "type": "array of strings", + "name": "managers", + "in": "body", + "description": "The logins of the users to set as the campaign managers. At this time, only a single manager can be supplied.
" + }, + { + "type": "array of strings", + "name": "team_managers", + "in": "body", + "description": "The slugs of the teams to set as the campaign managers.
" + }, + { + "type": "string", + "name": "ends_at", + "in": "body", + "description": "The end date and time of the campaign, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.
" + }, + { + "type": "string or null", + "name": "contact_link", + "in": "body", + "description": "The contact link of the campaign. Must be a URI.
" + }, + { + "type": "string", + "name": "state", + "in": "body", + "description": "Indicates whether a campaign is open or closed
", + "enum": [ + "open", + "closed" + ] + } + ], + "progAccess": { + "userToServerRest": true, + "serverToServer": true, + "fineGrainedPat": true, + "permissions": [ + { + "\"Campaigns\" organization permissions": "write" + } + ] + }, + "codeExamples": [ + { + "key": "default", + "request": { + "contentType": "application/json", + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "bodyParameters": { + "name": "Critical CodeQL alerts" + }, + "parameters": { + "org": "ORG", + "campaign_number": "CAMPAIGN_NUMBER" + } + }, + "response": { + "statusCode": "200", + "contentType": "application/json", + "description": "Response
", + "example": { + "number": 3, + "created_at": "2024-02-14T12:29:18Z", + "updated_at": "2024-02-14T12:29:18Z", + "name": "Critical CodeQL alert", + "description": "Address critical alerts before they are exploited to prevent breaches, protect sensitive data, and mitigate financial and reputational damage.", + "managers": [ + { + "login": "octocat", + "id": 1, + "node_id": "MDQ6VXNlcjE=", + "avatar_url": "https://github.com/images/error/octocat_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": false + } + ], + "published_at": "2024-02-14T12:29:18Z", + "ends_at": "2024-03-14T12:29:18Z", + "closed_at": null, + "state": "open", + "alert_stats": { + "open_count": 10, + "closed_count": 3, + "in_progress_count": 3 + } + }, + "schema": { + "title": "Campaign summary", + "description": "The campaign metadata and alert stats.", + "type": "object", + "properties": { + "number": { + "type": "integer", + "description": "The number of the newly created campaign" + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "The date and time the campaign was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "The date and time the campaign was last updated, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ." + }, + "name": { + "type": "string", + "description": "The campaign name" + }, + "description": { + "type": "string", + "description": "The campaign description" + }, + "managers": { + "description": "The campaign managers", + "type": "array", + "items": { + "title": "Simple User", + "description": "A GitHub user.", + "type": "object", + "properties": { + "name": { + "type": [ + "string", + "null" + ] + }, + "email": { + "type": [ + "string", + "null" + ] + }, + "login": { + "type": "string", + "examples": [ + "octocat" + ] + }, + "id": { + "type": "integer", + "format": "int64", + "examples": [ + 1 + ] + }, + "node_id": { + "type": "string", + "examples": [ + "MDQ6VXNlcjE=" + ] + }, + "avatar_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/images/error/octocat_happy.gif" + ] + }, + "gravatar_id": { + "type": [ + "string", + "null" + ], + "examples": [ + "41d064eb2195891e12d0413f63227ea7" + ] + }, + "url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat" + ] + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/octocat" + ] + }, + "followers_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/followers" + ] + }, + "following_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/following{/other_user}" + ] + }, + "gists_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/gists{/gist_id}" + ] + }, + "starred_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/starred{/owner}{/repo}" + ] + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/subscriptions" + ] + }, + "organizations_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/orgs" + ] + }, + "repos_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/repos" + ] + }, + "events_url": { + "type": "string", + "examples": [ + "https://api.github.com/users/octocat/events{/privacy}" + ] + }, + "received_events_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/users/octocat/received_events" + ] + }, + "type": { + "type": "string", + "examples": [ + "User" + ] + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "examples": [ + "\"2020-07-09T00:17:55Z\"" + ] + }, + "user_view_type": { + "type": "string", + "examples": [ + "public" + ] + } + }, + "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ] + } + }, + "team_managers": { + "description": "The campaign team managers", + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "description": { + "type": [ + "string", + "null" + ] + }, + "privacy": { + "type": "string" + }, + "notification_setting": { + "type": "string" + }, + "permission": { + "type": "string" + }, + "permissions": { + "type": "object", + "properties": { + "pull": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "admin": { + "type": "boolean" + } + }, + "required": [ + "pull", + "triage", + "push", + "maintain", + "admin" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/orgs/rails/teams/core" + ] + }, + "members_url": { + "type": "string" + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "parent": { + "anyOf": [ + { + "type": "null" + }, + { + "title": "Team Simple", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the team", + "type": "integer", + "examples": [ + 1 + ] + }, + "node_id": { + "type": "string", + "examples": [ + "MDQ6VGVhbTE=" + ] + }, + "url": { + "description": "URL for the team", + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/organizations/1/team/1" + ] + }, + "members_url": { + "type": "string", + "examples": [ + "https://api.github.com/organizations/1/team/1/members{/member}" + ] + }, + "name": { + "description": "Name of the team", + "type": "string", + "examples": [ + "Justice League" + ] + }, + "description": { + "description": "Description of the team", + "type": [ + "string", + "null" + ], + "examples": [ + "A great team." + ] + }, + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string", + "examples": [ + "admin" + ] + }, + "privacy": { + "description": "The level of privacy this team should have", + "type": "string", + "examples": [ + "closed" + ] + }, + "notification_setting": { + "description": "The notification setting the team has set", + "type": "string", + "examples": [ + "notifications_enabled" + ] + }, + "html_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://github.com/orgs/rails/teams/core" + ] + }, + "repositories_url": { + "type": "string", + "format": "uri", + "examples": [ + "https://api.github.com/organizations/1/team/1/repos" + ] + }, + "slug": { + "type": "string", + "examples": [ + "justice-league" + ] + }, + "ldap_dn": { + "description": "Distinguished Name (DN) that team maps to within LDAP environment", + "type": "string", + "examples": [ + "uid=example,ou=users,dc=github,dc=com" + ] + } + }, + "required": [ + "id", + "node_id", + "url", + "members_url", + "name", + "description", + "permission", + "html_url", + "repositories_url", + "slug" + ] + } + ] + } + }, + "required": [ + "id", + "node_id", + "url", + "members_url", + "name", + "description", + "permission", + "html_url", + "repositories_url", + "slug", + "parent" + ] + } + }, + "published_at": { + "description": "The date and time the campaign was published, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "type": "string", + "format": "date-time" + }, + "ends_at": { + "description": "The date and time the campaign has ended, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "type": "string", + "format": "date-time" + }, + "closed_at": { + "description": "The date and time the campaign was closed, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ. Will be null if the campaign is still open.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "state": { + "title": "Campaign state", + "description": "Indicates whether a campaign is open or closed", + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "contact_link": { + "description": "The contact link of the campaign.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "alert_stats": { + "type": "object", + "additionalProperties": false, + "properties": { + "open_count": { + "type": "integer", + "description": "The number of open alerts" + }, + "closed_count": { + "type": "integer", + "description": "The number of closed alerts" + }, + "in_progress_count": { + "type": "integer", + "description": "The number of in-progress alerts" + } + }, + "required": [ + "open_count", + "closed_count", + "in_progress_count" + ] + } + }, + "required": [ + "number", + "created_at", + "updated_at", + "description", + "managers", + "ends_at", + "state", + "contact_link" + ] + } + } + } + ], + "previews": [], + "descriptionHTML": "Updates a campaign in an organization.
\nThe authenticated user must be an owner or security manager for the organization to use this endpoint.
\nOAuth app tokens and personal access tokens (classic) need the security_events
scope to use this endpoint.
OK
" + }, + { + "httpStatusCode": "400", + "description": "Bad Request
" + }, + { + "httpStatusCode": "404", + "description": "Resource not found
" + }, + { + "httpStatusCode": "422", + "description": "Unprocessable Entity
" + }, + { + "httpStatusCode": "503", + "description": "Service unavailable
" + } + ] + }, + { + "serverUrl": "https://api.github.com", + "verb": "delete", + "requestPath": "/orgs/{org}/campaigns/{campaign_number}", + "title": "Delete a campaign for an organization", + "category": "campaigns", + "subcategory": "campaigns", + "parameters": [ + { + "name": "org", + "description": "The organization name. The name is not case sensitive.
", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "campaign_number", + "description": "The campaign number.
", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "bodyParameters": [], + "progAccess": { + "userToServerRest": true, + "serverToServer": true, + "fineGrainedPat": true, + "permissions": [ + { + "\"Campaigns\" organization permissions": "write" + } + ] + }, + "codeExamples": [ + { + "key": "default", + "request": { + "description": "Example", + "acceptHeader": "application/vnd.github.v3+json", + "parameters": { + "org": "ORG", + "campaign_number": "CAMPAIGN_NUMBER" + } + }, + "response": { + "statusCode": "204", + "description": "Deletion successful
" + } + } + ], + "previews": [], + "descriptionHTML": "Deletes a campaign in an organization.
\nThe authenticated user must be an owner or security manager for the organization to use this endpoint.
\nOAuth app tokens and personal access tokens (classic) need the security_events
scope to use this endpoint.
Deletion successful
" + }, + { + "httpStatusCode": "404", + "description": "Resource not found
" + }, + { + "httpStatusCode": "503", + "description": "Service unavailable
" + } + ] + } + ] + }, "checks": { "runs": [ { @@ -283280,7 +285967,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -284654,7 +287341,7 @@ }, "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -286010,7 +288697,7 @@ }, "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -287334,7 +290021,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -288709,7 +291396,7 @@ }, "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -312205,6 +314892,12 @@ "type": "array", "items": { "type": "object", + "required": [ + "path", + "mode", + "type", + "sha" + ], "properties": { "path": { "type": "string", @@ -312251,42 +314944,13 @@ "type": "blob", "size": 30, "sha": "44b4fc6d56897b048c772eb4087f854f46256132", - "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132", - "properties": { - "path": { - "type": "string" - }, - "mode": { - "type": "string" - }, - "type": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "sha": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "path", - "mode", - "type", - "sha", - "url", - "size" - ] + "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132" } ] } }, "required": [ "sha", - "url", "tree", "truncated" ] @@ -312443,6 +315107,12 @@ "type": "array", "items": { "type": "object", + "required": [ + "path", + "mode", + "type", + "sha" + ], "properties": { "path": { "type": "string", @@ -312489,42 +315159,13 @@ "type": "blob", "size": 30, "sha": "44b4fc6d56897b048c772eb4087f854f46256132", - "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132", - "properties": { - "path": { - "type": "string" - }, - "mode": { - "type": "string" - }, - "type": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "sha": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "path", - "mode", - "type", - "sha", - "url", - "size" - ] + "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132" } ] } }, "required": [ "sha", - "url", "tree", "truncated" ] @@ -312581,6 +315222,12 @@ "type": "array", "items": { "type": "object", + "required": [ + "path", + "mode", + "type", + "sha" + ], "properties": { "path": { "type": "string", @@ -312627,42 +315274,13 @@ "type": "blob", "size": 30, "sha": "44b4fc6d56897b048c772eb4087f854f46256132", - "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132", - "properties": { - "path": { - "type": "string" - }, - "mode": { - "type": "string" - }, - "type": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "sha": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "path", - "mode", - "type", - "sha", - "url", - "size" - ] + "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132" } ] } }, "required": [ "sha", - "url", "tree", "truncated" ] @@ -443766,7 +446384,7 @@ }, "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -444918,7 +447536,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -446327,7 +448945,7 @@ }, "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -447703,7 +450321,7 @@ }, "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -448860,7 +451478,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -450270,7 +452888,7 @@ }, "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -577755,7 +580373,7 @@ }, "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -579500,7 +582118,7 @@ }, "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -580495,7 +583113,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -581885,7 +584503,7 @@ }, "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -583272,7 +585890,7 @@ }, "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -584272,7 +586890,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -585663,7 +588281,7 @@ }, "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", diff --git a/src/rest/data/ghes-3.12-2022-11-28/schema.json b/src/rest/data/ghes-3.12-2022-11-28/schema.json index d59d08e33501..ae1519136ebc 100644 --- a/src/rest/data/ghes-3.12-2022-11-28/schema.json +++ b/src/rest/data/ghes-3.12-2022-11-28/schema.json @@ -237847,6 +237847,12 @@ "type": "array", "items": { "type": "object", + "required": [ + "path", + "mode", + "type", + "sha" + ], "properties": { "path": { "type": "string", @@ -237893,42 +237899,13 @@ "type": "blob", "size": 30, "sha": "44b4fc6d56897b048c772eb4087f854f46256132", - "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132", - "properties": { - "path": { - "type": "string" - }, - "mode": { - "type": "string" - }, - "type": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "sha": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "path", - "mode", - "type", - "sha", - "url", - "size" - ] + "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132" } ] } }, "required": [ "sha", - "url", "tree", "truncated" ] @@ -238085,6 +238062,12 @@ "type": "array", "items": { "type": "object", + "required": [ + "path", + "mode", + "type", + "sha" + ], "properties": { "path": { "type": "string", @@ -238131,42 +238114,13 @@ "type": "blob", "size": 30, "sha": "44b4fc6d56897b048c772eb4087f854f46256132", - "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132", - "properties": { - "path": { - "type": "string" - }, - "mode": { - "type": "string" - }, - "type": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "sha": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "path", - "mode", - "type", - "sha", - "url", - "size" - ] + "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132" } ] } }, "required": [ "sha", - "url", "tree", "truncated" ] @@ -238223,6 +238177,12 @@ "type": "array", "items": { "type": "object", + "required": [ + "path", + "mode", + "type", + "sha" + ], "properties": { "path": { "type": "string", @@ -238269,42 +238229,13 @@ "type": "blob", "size": 30, "sha": "44b4fc6d56897b048c772eb4087f854f46256132", - "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132", - "properties": { - "path": { - "type": "string" - }, - "mode": { - "type": "string" - }, - "type": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "sha": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "path", - "mode", - "type", - "sha", - "url", - "size" - ] + "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132" } ] } }, "required": [ "sha", - "url", "tree", "truncated" ] @@ -348456,7 +348387,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -349246,7 +349177,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -350261,7 +350192,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -351239,7 +351170,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -352034,7 +351965,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -353040,7 +352971,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -475579,7 +475510,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -476796,7 +476727,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -477521,7 +477452,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -478507,7 +478438,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -479496,7 +479427,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -480226,7 +480157,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -481213,7 +481144,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", diff --git a/src/rest/data/ghes-3.13-2022-11-28/schema.json b/src/rest/data/ghes-3.13-2022-11-28/schema.json index 68bd99c8dc16..b62b97f9e92d 100644 --- a/src/rest/data/ghes-3.13-2022-11-28/schema.json +++ b/src/rest/data/ghes-3.13-2022-11-28/schema.json @@ -238047,6 +238047,12 @@ "type": "array", "items": { "type": "object", + "required": [ + "path", + "mode", + "type", + "sha" + ], "properties": { "path": { "type": "string", @@ -238093,42 +238099,13 @@ "type": "blob", "size": 30, "sha": "44b4fc6d56897b048c772eb4087f854f46256132", - "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132", - "properties": { - "path": { - "type": "string" - }, - "mode": { - "type": "string" - }, - "type": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "sha": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "path", - "mode", - "type", - "sha", - "url", - "size" - ] + "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132" } ] } }, "required": [ "sha", - "url", "tree", "truncated" ] @@ -238285,6 +238262,12 @@ "type": "array", "items": { "type": "object", + "required": [ + "path", + "mode", + "type", + "sha" + ], "properties": { "path": { "type": "string", @@ -238331,42 +238314,13 @@ "type": "blob", "size": 30, "sha": "44b4fc6d56897b048c772eb4087f854f46256132", - "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132", - "properties": { - "path": { - "type": "string" - }, - "mode": { - "type": "string" - }, - "type": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "sha": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "path", - "mode", - "type", - "sha", - "url", - "size" - ] + "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132" } ] } }, "required": [ "sha", - "url", "tree", "truncated" ] @@ -238423,6 +238377,12 @@ "type": "array", "items": { "type": "object", + "required": [ + "path", + "mode", + "type", + "sha" + ], "properties": { "path": { "type": "string", @@ -238469,42 +238429,13 @@ "type": "blob", "size": 30, "sha": "44b4fc6d56897b048c772eb4087f854f46256132", - "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132", - "properties": { - "path": { - "type": "string" - }, - "mode": { - "type": "string" - }, - "type": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "sha": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "path", - "mode", - "type", - "sha", - "url", - "size" - ] + "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132" } ] } }, "required": [ "sha", - "url", "tree", "truncated" ] @@ -350152,7 +350083,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -351034,7 +350965,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -352166,7 +352097,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -353261,7 +353192,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -354148,7 +354079,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -355271,7 +355202,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -478263,7 +478194,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -479597,7 +479528,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -480323,7 +480254,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -481426,7 +481357,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -482532,7 +482463,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -483263,7 +483194,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -484367,7 +484298,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", diff --git a/src/rest/data/ghes-3.14-2022-11-28/schema.json b/src/rest/data/ghes-3.14-2022-11-28/schema.json index ab2a980b7fc2..5cee0e4a1b12 100644 --- a/src/rest/data/ghes-3.14-2022-11-28/schema.json +++ b/src/rest/data/ghes-3.14-2022-11-28/schema.json @@ -238047,6 +238047,12 @@ "type": "array", "items": { "type": "object", + "required": [ + "path", + "mode", + "type", + "sha" + ], "properties": { "path": { "type": "string", @@ -238093,42 +238099,13 @@ "type": "blob", "size": 30, "sha": "44b4fc6d56897b048c772eb4087f854f46256132", - "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132", - "properties": { - "path": { - "type": "string" - }, - "mode": { - "type": "string" - }, - "type": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "sha": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "path", - "mode", - "type", - "sha", - "url", - "size" - ] + "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132" } ] } }, "required": [ "sha", - "url", "tree", "truncated" ] @@ -238285,6 +238262,12 @@ "type": "array", "items": { "type": "object", + "required": [ + "path", + "mode", + "type", + "sha" + ], "properties": { "path": { "type": "string", @@ -238331,42 +238314,13 @@ "type": "blob", "size": 30, "sha": "44b4fc6d56897b048c772eb4087f854f46256132", - "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132", - "properties": { - "path": { - "type": "string" - }, - "mode": { - "type": "string" - }, - "type": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "sha": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "path", - "mode", - "type", - "sha", - "url", - "size" - ] + "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132" } ] } }, "required": [ "sha", - "url", "tree", "truncated" ] @@ -238423,6 +238377,12 @@ "type": "array", "items": { "type": "object", + "required": [ + "path", + "mode", + "type", + "sha" + ], "properties": { "path": { "type": "string", @@ -238469,42 +238429,13 @@ "type": "blob", "size": 30, "sha": "44b4fc6d56897b048c772eb4087f854f46256132", - "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132", - "properties": { - "path": { - "type": "string" - }, - "mode": { - "type": "string" - }, - "type": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "sha": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "path", - "mode", - "type", - "sha", - "url", - "size" - ] + "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132" } ] } }, "required": [ "sha", - "url", "tree", "truncated" ] @@ -353011,7 +352942,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -353957,7 +353888,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -355156,7 +355087,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -356318,7 +356249,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -357269,7 +357200,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -358459,7 +358390,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -481512,7 +481443,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -482939,7 +482870,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -483729,7 +483660,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -484899,7 +484830,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -486072,7 +486003,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -486867,7 +486798,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -488038,7 +487969,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", diff --git a/src/rest/data/ghes-3.15-2022-11-28/schema.json b/src/rest/data/ghes-3.15-2022-11-28/schema.json index 43a12f5f0a1e..35cbab17d49f 100644 --- a/src/rest/data/ghes-3.15-2022-11-28/schema.json +++ b/src/rest/data/ghes-3.15-2022-11-28/schema.json @@ -240968,6 +240968,12 @@ "type": "array", "items": { "type": "object", + "required": [ + "path", + "mode", + "type", + "sha" + ], "properties": { "path": { "type": "string", @@ -241014,42 +241020,13 @@ "type": "blob", "size": 30, "sha": "44b4fc6d56897b048c772eb4087f854f46256132", - "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132", - "properties": { - "path": { - "type": "string" - }, - "mode": { - "type": "string" - }, - "type": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "sha": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "path", - "mode", - "type", - "sha", - "url", - "size" - ] + "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132" } ] } }, "required": [ "sha", - "url", "tree", "truncated" ] @@ -241206,6 +241183,12 @@ "type": "array", "items": { "type": "object", + "required": [ + "path", + "mode", + "type", + "sha" + ], "properties": { "path": { "type": "string", @@ -241252,42 +241235,13 @@ "type": "blob", "size": 30, "sha": "44b4fc6d56897b048c772eb4087f854f46256132", - "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132", - "properties": { - "path": { - "type": "string" - }, - "mode": { - "type": "string" - }, - "type": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "sha": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "path", - "mode", - "type", - "sha", - "url", - "size" - ] + "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132" } ] } }, "required": [ "sha", - "url", "tree", "truncated" ] @@ -241344,6 +241298,12 @@ "type": "array", "items": { "type": "object", + "required": [ + "path", + "mode", + "type", + "sha" + ], "properties": { "path": { "type": "string", @@ -241390,42 +241350,13 @@ "type": "blob", "size": 30, "sha": "44b4fc6d56897b048c772eb4087f854f46256132", - "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132", - "properties": { - "path": { - "type": "string" - }, - "mode": { - "type": "string" - }, - "type": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "sha": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "path", - "mode", - "type", - "sha", - "url", - "size" - ] + "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132" } ] } }, "required": [ "sha", - "url", "tree", "truncated" ] @@ -356474,7 +356405,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -357497,7 +357428,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -358773,7 +358704,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -360012,7 +359943,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -361040,7 +360971,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -362307,7 +362238,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -485724,7 +485655,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -487228,7 +487159,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -488095,7 +488026,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -489342,7 +489273,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -490592,7 +490523,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -491464,7 +491395,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -492712,7 +492643,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", diff --git a/src/rest/data/ghes-3.16-2022-11-28/schema.json b/src/rest/data/ghes-3.16-2022-11-28/schema.json index 94b7a68c9dfe..5d5f95ec2838 100644 --- a/src/rest/data/ghes-3.16-2022-11-28/schema.json +++ b/src/rest/data/ghes-3.16-2022-11-28/schema.json @@ -246199,6 +246199,12 @@ "type": "array", "items": { "type": "object", + "required": [ + "path", + "mode", + "type", + "sha" + ], "properties": { "path": { "type": "string", @@ -246245,42 +246251,13 @@ "type": "blob", "size": 30, "sha": "44b4fc6d56897b048c772eb4087f854f46256132", - "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132", - "properties": { - "path": { - "type": "string" - }, - "mode": { - "type": "string" - }, - "type": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "sha": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "path", - "mode", - "type", - "sha", - "url", - "size" - ] + "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132" } ] } }, "required": [ "sha", - "url", "tree", "truncated" ] @@ -246437,6 +246414,12 @@ "type": "array", "items": { "type": "object", + "required": [ + "path", + "mode", + "type", + "sha" + ], "properties": { "path": { "type": "string", @@ -246483,42 +246466,13 @@ "type": "blob", "size": 30, "sha": "44b4fc6d56897b048c772eb4087f854f46256132", - "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132", - "properties": { - "path": { - "type": "string" - }, - "mode": { - "type": "string" - }, - "type": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "sha": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "path", - "mode", - "type", - "sha", - "url", - "size" - ] + "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132" } ] } }, "required": [ "sha", - "url", "tree", "truncated" ] @@ -246575,6 +246529,12 @@ "type": "array", "items": { "type": "object", + "required": [ + "path", + "mode", + "type", + "sha" + ], "properties": { "path": { "type": "string", @@ -246621,42 +246581,13 @@ "type": "blob", "size": 30, "sha": "44b4fc6d56897b048c772eb4087f854f46256132", - "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132", - "properties": { - "path": { - "type": "string" - }, - "mode": { - "type": "string" - }, - "type": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "sha": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "path", - "mode", - "type", - "sha", - "url", - "size" - ] + "url": "https://api.github.com/repos/octocat/Hello-World/git/blobs/44b4fc6d56897b048c772eb4087f854f46256132" } ] } }, "required": [ "sha", - "url", "tree", "truncated" ] @@ -361803,7 +361734,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -362827,7 +362758,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -364104,7 +364035,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -365344,7 +365275,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -366373,7 +366304,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -367641,7 +367572,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -491927,7 +491858,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -493432,7 +493363,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -494300,7 +494231,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -495548,7 +495479,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -496799,7 +496730,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", @@ -497672,7 +497603,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -498921,7 +498852,7 @@ "properties": { "automatic_copilot_code_review_enabled": { "type": "boolean", - "description": "> [!NOTE]\n> `automatic_copilot_code_review_enabled` is in beta and subject to change.\n\nAutomatically request review from Copilot for new pull requests, if the author has access to Copilot code review." + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review." }, "dismiss_stale_reviews_on_push": { "type": "boolean", diff --git a/src/rest/lib/config.json b/src/rest/lib/config.json index 4f1f6231a67e..ab7971d19c60 100644 --- a/src/rest/lib/config.json +++ b/src/rest/lib/config.json @@ -47,5 +47,5 @@ ] } }, - "sha": "de5a105f53c1182f15963b5109b5c6ad4adeadc5" + "sha": "1cd73ab20b4ba8355d380bd1f422ddf49c47a7af" } \ No newline at end of file diff --git a/src/search/components/input/SearchOverlay.tsx b/src/search/components/input/SearchOverlay.tsx index 075622f6df8d..ed8d0e2fa479 100644 --- a/src/search/components/input/SearchOverlay.tsx +++ b/src/search/components/input/SearchOverlay.tsx @@ -332,6 +332,9 @@ export function SearchOverlay({ if (searchParams.has('search-overlay-open')) { searchParams.delete('search-overlay-open') } + if (searchParams.has('search-overlay-input')) { + searchParams.delete('search-overlay-input') + } router.push(`${selectedOption.url}?${searchParams.toString()}` || '') onClose() } @@ -373,11 +376,8 @@ export function SearchOverlay({ eventGroupId: askAIEventGroupId.current, }) setSelectedIndex(-1) - const searchParams = new URLSearchParams((router.query as RecordNote
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -214388,7 +214388,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -215493,7 +215493,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -216571,7 +216571,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -217461,7 +217461,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -218356,7 +218356,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", diff --git a/src/webhooks/data/ghec/schema.json b/src/webhooks/data/ghec/schema.json index a17490234fd4..fb89d7c53d31 100644 --- a/src/webhooks/data/ghec/schema.json +++ b/src/webhooks/data/ghec/schema.json @@ -216945,7 +216945,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -218051,7 +218051,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -219157,7 +219157,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -220235,7 +220235,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -221125,7 +221125,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -222020,7 +222020,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", diff --git a/src/webhooks/data/ghes-3.12/schema.json b/src/webhooks/data/ghes-3.12/schema.json index e6e49b3f7432..876e1d114aa6 100644 --- a/src/webhooks/data/ghes-3.12/schema.json +++ b/src/webhooks/data/ghes-3.12/schema.json @@ -196311,7 +196311,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -197139,7 +197139,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -197967,7 +197967,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -198770,7 +198770,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -199385,7 +199385,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -200005,7 +200005,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", diff --git a/src/webhooks/data/ghes-3.13/schema.json b/src/webhooks/data/ghes-3.13/schema.json index 99c4b82796fc..8a663f8464b7 100644 --- a/src/webhooks/data/ghes-3.13/schema.json +++ b/src/webhooks/data/ghes-3.13/schema.json @@ -196327,7 +196327,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -197156,7 +197156,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -197985,7 +197985,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -198788,7 +198788,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -199403,7 +199403,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -200023,7 +200023,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", diff --git a/src/webhooks/data/ghes-3.14/schema.json b/src/webhooks/data/ghes-3.14/schema.json index ad01fcf481bd..e42e6565de2b 100644 --- a/src/webhooks/data/ghes-3.14/schema.json +++ b/src/webhooks/data/ghes-3.14/schema.json @@ -197394,7 +197394,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -198287,7 +198287,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -199180,7 +199180,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -200048,7 +200048,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -200728,7 +200728,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -201413,7 +201413,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", diff --git a/src/webhooks/data/ghes-3.15/schema.json b/src/webhooks/data/ghes-3.15/schema.json index 429abcb3f135..d2b37915e53b 100644 --- a/src/webhooks/data/ghes-3.15/schema.json +++ b/src/webhooks/data/ghes-3.15/schema.json @@ -197644,7 +197644,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -198614,7 +198614,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -199584,7 +199584,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -200529,7 +200529,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -201286,7 +201286,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -202048,7 +202048,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", diff --git a/src/webhooks/data/ghes-3.16/schema.json b/src/webhooks/data/ghes-3.16/schema.json index 20db9d6fde51..3fe443f9a5d6 100644 --- a/src/webhooks/data/ghes-3.16/schema.json +++ b/src/webhooks/data/ghes-3.16/schema.json @@ -198829,7 +198829,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -199800,7 +199800,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -200771,7 +200771,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -201716,7 +201716,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -202473,7 +202473,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", @@ -203235,7 +203235,7 @@ { "type": "boolean", "name": "automatic_copilot_code_review_enabled", - "description": "Note
\n\nautomatic_copilot_code_review_enabled
is in beta and subject to change.
Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" + "description": "Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review.
" }, { "type": "boolean", diff --git a/src/webhooks/lib/config.json b/src/webhooks/lib/config.json index d2d2fbbbad77..da2a0e67d5d2 100644 --- a/src/webhooks/lib/config.json +++ b/src/webhooks/lib/config.json @@ -1,3 +1,3 @@ { - "sha": "de5a105f53c1182f15963b5109b5c6ad4adeadc5" + "sha": "1cd73ab20b4ba8355d380bd1f422ddf49c47a7af" } \ No newline at end of file