Skip to main content
  • Semgrep Cloud Platform
  • Team & Enterprise Tier

Enabling Bitbucket pull request comments

Your deployment journey

Semgrep can create pull request (PR) comments in your Bitbucket repository. These comments provide a description of the issue detected by Semgrep and may offer possible solutions. These comments are a means for security teams, or any team responsible for creating standards to help their fellow developers write safe and standards-compliant code.

Automated comments on Bitbucket pull requests are displayed as follows:

Semgrep Bitbucket PR comment Figure An inline Bitbucket pull request comment.

Conditions for PR comment creation

PR comments appear for the following types of scans under these conditions:

Type of scanProduct nameTrigger conditionHow to set up
Static application security testing (SAST)Semgrep CodeA comment appears when a finding is generated by a rule in Comment or Block mode. This means you can fully customize what comments your developers receive.Complete the steps in the following sections:
  1. Confirm your Semgrep account's connection and access to your source code manager.
  2. Configure comments for Semgrep Code.
Software composition analysis (SCA)Semgrep Supply Chain (SSC)A comment appears only when the finding is reachable.Complete the steps in Confirm account connection and access.
SecretsSemgrep Secrets (beta)A comment appears on validated secrets.This product is in beta.
Contact support@semgrep.com to enable comments.

Comments from Supply Chain scans include the following information:

Risk
A description of the vulnerability, including the types of attack it is vulnerable to.
Fix
Indicates what versions to upgrade to, if any, that resolves or eliminates the vulnerability.
Reference
A link to additional information about the vulnerability from GitHub Advisory Database and the National Vulnerability Database (NVD), if available.
info

Pull or merge requests with vulnerabilities detected by SSC are not blocked from merging.

Supported Bitbucket plans

  • Any of the following Bitbucket plans are supported:
    • Cloud Free
    • Standard
    • Premium
  • Bitbucket Data Center is not supported.

There are two ways in which you can integrate Semgrep comments into Bitbucket Cloud depending on the Bitbucket plan you use:

  • Workspace access token: If you use the Bitbucket Cloud Premium plan, you can create a workspace access token. This option saves time because you can create one access token for all repositories in the workspace. With one workspace access token, you can bulk-onboard more repositories at once from a whole workspace. See Creating a workspace access token. However, you can also use the option of a repository access token to onboard repositories one by one.
  • Repository access token: If you do not have the Bitbucket Cloud Premium plan, create a separate repository access token for each repository where you want to use Semgrep. This configuration option is also useful if you have the Bitbucket Cloud Premium plan, but prefer to onboard repositories one by one instead of bulk onboarding. See Creating a repository access token.

Creating and adding a workspace access token

Prerequisite
  • Bitbucket Cloud Premium plan. If you do not have a Bitbucket Cloud Premium plan, create a repository access token.

Create a workspace access token in Bitbucket (only available if you have a Bitbucket Cloud Premium plan). Fulfill these general steps to create a workspace access token:

  1. Create a workspace access token in Bitbucket with Read and Write permissions for pull requests. Follow the instructions in Create a workspace Access Token in Bitbucket documentation.
  2. Add the workspace access token as a workspace variable with the Secured option.

To complete the configuration, follow the Enabling PR comments in Bitbucket Cloud section.

Enable PR comments in Bitbucket

Prerequisites

  • In addition to finishing the previous steps in your deployment journey, it is recommended to have completed a full scan on your default branch for the repository in which you want to receive comments.
  • You must have a Bitbucket Cloud workspace access token or a repository access token.

Define the BITBUCKET_TOKEN environment variable

To enable PR comments, define the BITBUCKET_TOKEN environment variable in your CI configuration file. Its syntax and placement in your CI configuration file depends on your CI provider. For example, in Bitbucket Pipelines, its syntax is the following:

- export BITBUCKET_TOKEN=$PAT

The following snippet is a sample with BITBUCKET_TOKEN defined in a bitbucket-pipelines.yml file:

image: atlassian/default-image:latest

pipelines:
branches:
main:
# ...
pull-requests:
'**':
- step:
name: 'Run Semgrep diff scan with PR branch'
image: semgrep/semgrep
script:
# ...
- export BITBUCKET_TOKEN=$PAT

Receive comments in your VPN or on-premise SCM

Bitbucket Premium provides access control features for content that your individual account owns. If you use this feature, you need to add several IP addresses into your allowlist.

To enable comments within self-hosted SCMs behind firewalls or VPNs (Virtual Private Networks):

  1. Add the following IP addresses to your VPN's ingress allowlist and egress allowlist, if you have one.
    # These IP addresses are inbound and outbound:
    35.166.231.235
    52.35.248.246
    52.34.137.110
    44.225.64.41
  2. Test that you are able to receive findings by manually triggering a scan through your CI provider.

Receiving PR or MR comments may require additional steps depending on the custom configuration of your VPN or SCM (for example, if you use a static IP without a hostname). Reach out to Semgrep support through the Semgrep Community Slack or send an email to support@semgrep.com for any concerns.

info

Only rules set to the Comment and Block rule modes in the Policies page create PR comments.

Next steps

You've finished setting up a core deployment of Semgrep 🎉.

Additional references


Not finding what you need in this doc? Ask questions in our Community Slack group, or see Support for other ways to get help.