A Chrome extension that processes merged pull requests from Bitbucket for the current month and formats them for easy reporting.
The extension works only with merged PRs. It counts the day the PR was merged as the task completion date.
It does not process your open/pending PRs nor current task(-s) in progress, so you have to process them manually in case those have to be reported.
Ensure the correctness of results before submitting time report.
- Configurable organization and project settings - Works with any Bitbucket repository
- Automatically detects your Bitbucket user UUID
- Navigates to your merged pull requests for the current month
- Processes data from all pages (handles pagination)
- Skips weekend days (Saturday and Sunday), as these are typically non-working days
- Formats output as:
(D) <F/B>, <P/D>: <PR Title>- D = Date in the format:
<Month> <Day Of Month>, <Day Of Week>, e.g. January 1, Monday - F = Feature, B = Bug (auto-detected based on branch name/title)
- P = In Progress, D = Done
- D = Date in the format:
- Provides copy-to-clipboard functionality
Install directly from the Chrome Web Store.
- Open Chrome and navigate to
chrome://extensions/ - Enable "Developer mode" in the top right
- Click "Load unpacked" and select this folder
- The extension will appear in your toolbar
- Right-click the extension icon and select "Options" (or go to
chrome://extensions/→ click "Details" on this extension → click "Extension options") - Enter your Bitbucket organization name (e.g.,
mycompany) - Enter your repository/project name (e.g.,
my-project) - Click "Save Settings"
The URL format will be: https://bitbucket.org/<organization>/<project>/pull-requests/...
Example: If your Bitbucket URL is https://bitbucket.org/acme-corp/web-app/pull-requests/, then:
- Organization:
acme-corp - Project:
web-app
- Configure the extension (see Configuration section above)
- Make sure you're logged into Bitbucket
- Click the extension icon in your Chrome toolbar
- Click "Generate Report" (The extension will operate in the current tab, run the extension in a new tab if you don't want to lose the progress):

- The extension will:
- Click "Copy to Clipboard" to copy the formatted list
Each report entry is formatted as:
(August 4, Thursday) F, D: ABC-1010: Add new feature for user authentication
(August 3, Wednesday) F, P: ABC-1010: Add new feature for user authentication
(August 2, Tuesday) B, D: ABC-5050: Fix login validation issue
(August 1, Monday) B, P: ABC-5050: Fix login validation issue
Where:
D= Date (auto-detected)F= Feature,B= Bug (auto-detected)P= In Progress (assumed to occupy dates between the completion of the previous task and the current one, but can also be done in the same day along with other task(-s)),D= Done (PR is created, task is considered as Done)- Title is the PR title
The extension requires:
activeTab- To interact with the current tabstorage- To store temporary data- Host permission for
bitbucket.org- To access Bitbucket pages
The extension includes a comprehensive test suite to ensure reliability and correctness. The tests cover all core functionality including date parsing, timeline generation, error handling, and UI interactions.
-
Navigate to the
testsdirectory:cd tests -
Install test dependencies:
npm install
-
Run all tests:
npm test -
Run tests with verbose output:
npm run test:verbose
-
Run tests in watch mode (for development):
npm run test:watch
-
Generate test coverage report:
npm run test:coverage
content.test.js- Tests for the content script functionality (date parsing, PR extraction, timeline generation)popup.test.js- Tests for the popup UI controller (settings, error handling, user interactions)integration.test.js- End-to-end integration tests simulating real-world usage scenarios
The test suite includes:
- ✅ 69 total tests covering all core functionality
- ✅ Date extraction from various formats (relative dates, absolute dates, title attributes)
- ✅ Timeline generation with progress and completion entries
- ✅ Error handling and edge cases
- ✅ UI interactions and user workflows
- ✅ Integration scenarios with mock Bitbucket DOM structures
- ✅ Performance testing with large datasets
- Configuration Issues:
- Make sure you've configured your organization and project in the extension options
- Verify the organization and project names match your Bitbucket URL exactly
- Check that you have access to the configured repository
- General Issues:
- Make sure you're logged into Bitbucket
- If the extension fails to find your UUID, try refreshing the Bitbucket page first
- The extension works best on the main Bitbucket domain (bitbucket.org)
- Avoid clicking or typing while extension generating reports to prevent cases when the extension popup disappears along with results
- If Pull Requests page gets opened but nothing happens (extensions popup may disappear as well), try to re-run the report generation by opening the extension popup and clicking "Generate Report"



