Skip to content

Commit a522856

Browse files
committed
Merge branch 'main' into armchairlinguist/triage-by-comment-support
2 parents b3a81b7 + 8f9fd78 commit a522856

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+1802
-39
lines changed

docs/deployment/deployment-checklist.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ Semgrep requires the following permissions (scopes) to enable the authentication
318318

319319
The [Semgrep Network Broker](/docs/semgrep-ci/network-broker) facilities secure access with Semgrep, and its use can replace the allowlisting of the IP addresses required for ingress. The Network Broker, however, only facilitates requests from Semgrep to your network and *doesn't* assist with requests originating from your network, including those from your network to Semgrep.
320320

321-
In other words, the only address you would have to allow inbound is `wireguard.semgrep.dev` on UDP port `51820`, but depending on how restrictive your network is, you may need to modify your allowlist to include the egress IP addresses provided in [IP addresses](#ip-addresses).
321+
In other words, the only address you would have to allow inbound is `wireguard.semgrep.dev` on UDP port `51820`, or your tenant's equivalent. Depending on how restrictive your network is, you may also need to modify your allowlist to include the egress IP addresses provided in [IP addresses](#ip-addresses).
322322

323323
#### Features that require inbound network connectivity
324324

docs/deployment/manage-projects.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ tags:
88
- Semgrep AppSec Platform
99
---
1010

11+
import DeleteAProject from "/src/components/procedure/_delete-a-project.md"
12+
1113
# Manage projects
1214

1315
View, sort, and tag your projects through the **Projects** page. Refer to this page to manage and troubleshoot thousands of repositories by identifying scan issues or scans with a high number of findings.
@@ -91,3 +93,9 @@ See the following pages for more information:
9193
- For Semgrep Managed Scans users: [configure your scans](/deployment/managed-scanning/overview).
9294
- [Set a primary branch](/deployment/primary-branch).
9395
- [Set tags](/semgrep-appsec-platform/tags).
96+
97+
## Delete a project
98+
99+
Deleting a project removes all of its findings, metadata, and other records from Semgrep AppSec Platform.
100+
101+
<DeleteAProject />

docs/index.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -128,14 +128,16 @@ See the [Supported languages](/supported-languages#language-maturity-summary) do
128128
</div>
129129
-->
130130

131-
<h3>November 2025 release notes summary</h3>
131+
<h3>December 2025 release notes summary</h3>
132132
<!-- 5-7 bullets across the product suite -->
133133

134-
- **Cortex** and **Sysdig** integrations are now generally available. Semgrep now uses deployment status and, for Cortex, internet-exposure data from these CNAPP providers to better prioritize findings.
135-
- Malicious dependency detection is now generally available. Semgrep detects malicious packages, including malware, typosquatting, and credential-stealing dependencies, using over 80,000 rules.
136-
- Assistant now automatically analyzes **all new Critical and High-severity findings** with **Medium or High confidence** in full scans, removing the previous 10-issue limit.
137-
- The **Settings > General** tab now displays all Semgrep product settings on a single page.
134+
- Added a new **Priority** tab on **Findings** page to display high-priority findings. Each product has default priority categories, and Semgrep admins can customize the **Priority** tab to control which findings appear. Admins can save **Priority** tab filters for all users.
135+
- Added a new **Provisionally ignored** finding status.
136+
- Semgrep Secrets findings are now assigned a severity of **Critical**. This applies to Secrets findings from scans performed after November 2025. Any existing findings from those rules will be updated to **Critical** after the project's next full scan.
137+
- Pull request comments for findings generated using Semgrep-authored rules now include Assistant-generated explanations to help developers understand the findings. The summary message can be expanded to show additional details.
138+
- Added support for Cursor post-generation hooks, enabling Semgrep to integrate with Cursor workflows after code generation.
139+
- The **Findings** page now has improved navigation and more intuitive links. The code path now opens the finding's **Details** page, and an in-product tour introduces the new layout.
138140

139141
[See the latest release notes <i class="fa-solid fa-arrow-right"></i>](/release-notes)
140142

141-
<div style={{textAlign: 'right'}}>[<i class="fa-solid fa-rss"></i> Subscribe to RSS feed ](https://semgrep.dev/docs/release-notes/rss.xml)</div>
143+
<div style={{textAlign: 'right'}}>[<i class="fa-solid fa-rss"></i> Subscribe to RSS feed ](https://semgrep.dev/docs/release-notes/rss.xml)</div>

docs/mcp.md

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ This article includes instructions for setting up the MCP server with Cursor and
5151
semgrep --version
5252
```
5353
54-
1. Log in to Semgrep and install Semgrep Pro
54+
1. Log in to Semgrep and install Semgrep Pro:
5555
5656
```
5757
semgrep login && semgrep install-semgrep-pro
@@ -96,21 +96,27 @@ This article includes instructions for setting up the MCP server with Cursor and
9696
```bash
9797
semgrep --version
9898
```
99+
3. Start a new Claude Code instance in the terminal:
100+
```bash
101+
claude
102+
```
99103
100-
3. Sign in to your Semgrep account. Running this command launches a browser window, but you can also use the link that's returned in the CLI to proceed:
104+
4. Add the Semgrep marketplace to Claude:
101105
```bash
102-
semgrep login
106+
/plugin marketplace add semgrep/mcp-marketplace
103107
```
104-
In the **Semgrep CLI login**, click **Activate** to proceed.
105108
106-
4. Return to the CLI, and install the Semgrep Pro engine:
109+
5. Install the Semgrep plugin:
107110
```bash
108-
semgrep install-semgrep-pro
111+
/plugin install semgrep-plugin@semgrep
109112
```
110113
111-
5. Add the Semgrep MCP Server to Claude:
114+
6. Set up the Semgrep plugin:
112115
```bash
113-
claude mcp add --scope user semgrep semgrep mcp
116+
/semgrep-plugin:setup_semgrep_plugin
117+
118+
# if the preceding command doesn't work, try:
119+
/plugin enable semgrep-plugin@semgrep
114120
```
115121

116122
</TabItem>

docs/semgrep-appsec-platform/jira.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,8 @@ The Jira integration automatically detects other Jira projects in your subdomain
8181
- Those projects have the same **Issue type** as the default project. [When you triage a finding](#code), you can choose which project to create the tickets in.
8282

8383
:::caution Same name, different ID
84-
Issue types may have the same name, but a different Issue type ID. When creating tickets, only company-managed Jira projects with the same issue type ID as the default project selected in the integration will appear. If you can't select other Jira projects when creating tickets, check that the Issue type ID is the same across Jira projects. See the [<i class="fas fa-external-link fa-xs"></i> How to identify the Jira Issue ID in Cloud](https://support.atlassian.com/jira/kb/how-to-identify-the-jira-issue-id-in-cloud/) for details.
84+
Issue types may have the same name but different Issue type IDs. When creating tickets, only company-managed Jira projects whose issue type ID matches the default project selected in the integration will appear in the list of available projects.
85+
If you don't see other Jira projects when creating tickets, check that the Issue type ID is the same across Jira projects. See the [<i class="fas fa-external-link fa-xs"></i>Finding the Issue Type ID in Jira Cloud](https://support.atlassian.com/jira/kb/finding-the-issue-type-id-in-jira-cloud/) for details.
8586
:::
8687

8788
### Create mappings

docs/semgrep-assistant/overview.md

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,20 +30,35 @@ Semgrep Assistant:
3030
- Requires the Semgrep AppSec Platform for its use
3131
- Auto-analyzes many, but not all, findings during scans
3232
- For full scans, all *new* issues that have **Critical** or **High** severity AND **High** or **Medium** confidence are auto-analyzed
33-
- For diff-aware scans (pull pequest or merge request scans), up to 10 new issues are auto-analyzed per scan
33+
- For diff-aware scans (pull request or merge request scans), up to 10 new issues are auto-analyzed per scan
3434

3535
## Features
3636

37+
38+
### Explanation
39+
40+
Semgrep Assistant explains why a finding is a true positive by connecting the rule’s message to the code that triggered it. It highlights the relevant lines of code along with the surrounding context and describes how the rule applies in this specific case. For security rules, Assistant also connects the finding back to the threat model, showing the potential risk and why the code behavior matters.
41+
42+
The explanation helps you understand not just *which* rule triggered a finding, but *why* the code is considered problematic.
43+
44+
On the finding’s **Details** page:
45+
46+
* Semgrep Assistant’s explanation appears in the **Finding description** tab.
47+
* The rule that triggered the finding is described in the **Rule description** tab.
48+
* The exact lines of code that caused the finding are displayed in the **Your code** tab. Click a line to highlight the relevant code in context.
49+
50+
For true positive findings, the same Assistant-generated explanations are also included in pull request or merge request comments. A brief summary appears in the default view. Expand **More details about this** to view the full Assistant-generated explanation.
51+
52+
Note that Assistant-generated explanations are **not** available for custom rules or community rules.
53+
3754
### Remediation
3855

3956
Semgrep Assistant can provide remediation advice and autofixes, or suggested fixes, for Semgrep Code findings.
4057

4158
#### Guidance
4259

43-
With Assistant enabled, PR or MR comments from Semgrep include step-by-step remediation instructions for the finding identified by Semgrep Code.
60+
With Assistant enabled, pull request or merge request comments from Semgrep include step-by-step remediation instructions for the finding identified by Semgrep Code.
4461

45-
![PR comments with remediation advice](/img/assistant-guidance.png#md-width)
46-
_**Figure.** PR comment displaying the rule message followed by a comment that contains Assistant-generated remediation guidance._
4762

4863
Semgrep also displays remediation information on Semgrep AppSec Platform's **Findings page** under **Your code & fix** in the [finding's details](/semgrep-code/findings#view-details-about-a-specific-finding) page.
4964

docs/semgrep-supply-chain/license-compliance.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,17 @@ To change the policies of packages based on the license:
5353
1. Click the permission (**Allow**, **Comment**, or **Block**) you want to set the license to.
5454
2. **Optional**: Block entire categories of licenses by clicking on the **Set all to** drop-down box next to the license category.
5555

56+
## License information
57+
58+
License information is often stored in the package's repository alongside the source code. You can generally find this information in:
59+
60+
- A license file, such as `LICENSE` or `LICENSE.txt`
61+
- The manifest file, such as the `pyproject.toml` or `package.json`, which typically specifies a `license` field
62+
63+
Semgrep uses [deps.dev](https://deps.dev/) as the primary source for license data, which is then displayed in Semgrep AppSec Platform.
64+
65+
[deps.dev](https://deps.dev/) aggregates license metadata from package registry APIs, such as PyPI and npm. This metadata is provided by package maintainers through their manifest files and may be missing, incomplete, or inaccurate. If the license data displayed in Semgrep AppSec Platform for a particular package is missing or doesn't show the expected value, the data provided by the package maintainer to populate the package registry API is likely incomplete or incorrect.
66+
5667
## License categories
5768

5869
Semgrep Supply Chain can identify the following licenses and license categories.

docs/semgrep-supply-chain/triage-remediation.md

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -106,17 +106,6 @@ The following chart illustrates the steps Semgrep performs, from scanning to ana
106106

107107
<ViewDetailsSsc />
108108

109-
<dl>
110-
<dt>A - Upgrade badge</dt>
111-
<dd>Indicates if an upgrade is safe or may break your codebase.</dd>
112-
<dt>B - The line of code (LOC) of the finding</dt>
113-
<dd>This shows the LOC that caused the finding; this does <strong>not</strong> show the LOC where the breaking changes occur.</dd>
114-
<dt>C - Link to change list drawer</dt>
115-
<dd>Click this link to display the LOC where a breaking change may occur.</dd>
116-
<dt>D - Open fix PR button</dt>
117-
<dd>Click this button to open a PR with the code to upgrade the dependency to a safe version, if any.</dd>
118-
</dl>
119-
120109
### Create a pull request with fixes
121110

122111
1. Navigate to the **Details** page of the finding for which you want to make a pull request.

netlify.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,13 @@
1313
[context.branch-deploy]
1414
# Netlify automatically sets: CONTEXT, DEPLOY_PRIME_URL, BRANCH
1515

16+
[[redirects]]
17+
from = "/"
18+
to = "/docs"
19+
status = 302
20+
1621
[[redirects]]
1722
from = "/*"
1823
to = "/docs/404.html"
1924
status = 404
25+

0 commit comments

Comments
 (0)