No description
  • JavaScript 54.1%
  • CSS 32.6%
  • HTML 13.3%
Find a file
2026-03-02 09:20:05 +08:00
background feat: implement initial Forgejo MR Watchlist Chrome extension with background polling and notifications. 2026-03-02 09:20:05 +08:00
content feat: implement initial Forgejo MR Watchlist Chrome extension with background polling and notifications. 2026-03-02 09:20:05 +08:00
icons feat: implement initial Forgejo MR Watchlist Chrome extension with background polling and notifications. 2026-03-02 09:20:05 +08:00
options feat: implement initial Forgejo MR Watchlist Chrome extension with background polling and notifications. 2026-03-02 09:20:05 +08:00
popup feat: implement initial Forgejo MR Watchlist Chrome extension with background polling and notifications. 2026-03-02 09:20:05 +08:00
utils feat: implement initial Forgejo MR Watchlist Chrome extension with background polling and notifications. 2026-03-02 09:20:05 +08:00
manifest.json feat: implement initial Forgejo MR Watchlist Chrome extension with background polling and notifications. 2026-03-02 09:20:05 +08:00
README.md feat: implement initial Forgejo MR Watchlist Chrome extension with background polling and notifications. 2026-03-02 09:20:05 +08:00

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#42 shorthand
  • 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

  1. Clone or download this repository
  2. Open chrome://extensions in Chrome
  3. Enable Developer mode (top-right toggle)
  4. Click Load unpacked → select the project folder

Setup

  1. Click the extension icon → ⚙️ gear icon
  2. Enter your default Forgejo base URL (e.g. https://git.example.com)
  3. (Optional) Add API tokens for private repos — one per instance
  4. 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#42Add (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