No description
- JavaScript 54.1%
- CSS 32.6%
- HTML 13.3%
| background | ||
| content | ||
| icons | ||
| options | ||
| popup | ||
| utils | ||
| manifest.json | ||
| README.md | ||
Forgejo MR Watchlist
A Chrome extension to track Merge Requests on Forgejo instances. Get notified when new commits are pushed, statuses change, or new comments appear — so you never miss a follow-up after a code review.
Features
- Add MRs from the current browser tab, by URL, or by
owner/repo#42shorthand - Multi-instance — works with any number of self-hosted or public Forgejo instances
- Background polling — periodically checks all watched MRs via the Forgejo API
- Desktop notifications — alerts for new commits, status changes (merged/closed), and new comments
- Per-MR update indicators — see exactly which MRs have new activity and what changed
- Optional API tokens — works without a token for public repos; add per-instance tokens for private repos
Install
- Clone or download this repository
- Open
chrome://extensionsin Chrome - Enable Developer mode (top-right toggle)
- Click Load unpacked → select the project folder
Setup
- Click the extension icon → ⚙️ gear icon
- Enter your default Forgejo base URL (e.g.
https://git.example.com) - (Optional) Add API tokens for private repos — one per instance
- Choose your poll interval and notification preferences
Usage
| Action | How |
|---|---|
| Add from current page | Navigate to a Forgejo MR → click extension → Add current page |
| Add by URL | Paste a full MR URL into the input field → Add |
| Add by shorthand | Type owner/repo#42 → Add (uses default instance) |
| View updates | Open the popup — cards with updates glow amber with change details |
| Mark as seen | Click ✓ on a card, or open the MR in browser |
| Remove | Click ✕ on any card |
Project Structure
├── manifest.json # Chrome MV3 manifest
├── background/
│ └── service-worker.js # Alarm polling, change detection, notifications
├── content/
│ └── content.js # Extracts MR info from current Forgejo page
├── popup/
│ ├── popup.html
│ ├── popup.css
│ └── popup.js # Watchlist UI and interaction logic
├── options/
│ ├── options.html
│ ├── options.css
│ └── options.js # Settings page
├── utils/
│ ├── api.js # Forgejo API client and URL parser
│ └── storage.js # chrome.storage wrappers
└── icons/
├── icon16.png
├── icon48.png
└── icon128.png
Permissions
| Permission | Why |
|---|---|
storage |
Persist watchlist and settings |
alarms |
Schedule background polling |
notifications |
Desktop alerts on MR changes |
activeTab + scripting |
Read and inject into the active tab to detect MR pages |
<all_urls> |
Call the Forgejo API on any instance |
License
MIT