Skip to main content

Bitbucket

This article explains how Pensero connects to Bitbucket to understand how work flows through Pull Requests, without reading or storing your code.

Written by Wayne

Overview

Pensero connects to your Bitbucket workspace to understand what work is being delivered and how much effort it takes to move it to production.

By analyzing Pull Request metadata, reviews, and timelines, Pensero builds a clear picture of delivery without accessing your source code.

Administrators can set up the integration directly from the Integrations section.

What Pensero Reads from Bitbucket

Pensero reads Pull Request metadata only.

It never reads, stores, or processes your source code.

From each Pull Request, Pensero captures:

  • Title & Number

  • State (open, closed, draft, locked, merged)

  • Description

  • Key timestamps (creation, merge, approval, closure)

  • Author

  • Source & target branches

  • Linked tickets or issues

  • Diff metrics (lines changed, files changed, summary of the PR, not the code itself)

The metadata allows Pensero to understand:

  • How work is structured

  • How it moves through reviews

  • How teams collaborate around delivery

To process contributions correctly, Pensero requires:

  • Read access to repository metadata and hooks

  • Read/Write access to Pull Requests (needed to read comments and reviews)

Important

Pensero requests access to all repositories, but it only reads the work of the contributors listed in your Organization Settings. Everything else is skipped.

You can limit which repositories Pensero syncs, but this can cause missing data over time.

Review the data processing rules in this link.

What Pensero derives from Pull Requests

Based on the data above, Pensero derives:

  • Diff summaries for code insights

  • Time to merge

  • Time to approve

  • Time to first comment

These metrics help evaluate engineering workflows, responsiveness, and collaboration patterns.

How to Add Your Bitbucket Repositories

First-Time Setup

Step 1 - Go to Integrations

From the sidebar, open the Integrations page. Click Connect in the Bitbucket card.

Step 2 - Complete Bitbucket Authentication

Follow the installation steps and grant the required permissions.

You must be a Workspace Admin to authorize the installation.

Permissions can be adjusted later from Bitbucket settings.

Step 3 - Select Repositories

Choose which repositories Pensero should ingest.

You must be an owner or admin of each repository you connect.

Adding new Repositories Later

Step 1 - Go to Integrations

Open the Integrations page.

Step 2 - Click “Manage Bitbucket”

This opens the Bitbucket management panel.

Step 3 - Select Additional Repositories

Choose the new repositories you want to connect.

Repository sync settings

After connecting your code repository integration, you can manage how Pensero syncs repositories from here.

Note: Repository sync settings are only available for users with an Admin role in Pensero.

Sync options

No sync

Pensero will not automatically connect new repositories. Use this if you prefer to manage repositories manually.

New repositories only

Pensero will automatically detect and connect new repositories created after this setting is enabled.

All repositories

Pensero will sync all available repositories from your code provider, except those excluded by patterns.

When you connect repositories with All

If you select All for a workspace when you connect repositories, Pensero also sets the sync option to New repositories only, so new repositories connect automatically. Pensero does not change the option if it is already on, or if someone changed it before. You can change it at any time in the sync settings.

The sync option applies to all connected workspaces, also to workspaces where you chose Select repositories.

Bitbucket Data Center does not always send the repository creation date, so for Data Center the option stays on No sync. Use All repositories to connect new repositories automatically.

Excluded repositories

You can add patterns to exclude repositories that should not be tracked, such as test, sandbox, personal, or experimental repositories.

Patterns match the full repository path.

Examples:

  • org-x/*

  • org-x/api-*

  • group/sub/*

  • group/sub/project

The * wildcard must be at the end of the pattern.

Did this answer your question?