WatchDog - new must have Tool for GitHub/GitLab
Tags: javascript, vue, github, programming
Published: 2022-08-01 21:54:00

**WatchDog** - tool for **GitHub** and **GitLab** to keep **Repositories/Projects** you are interested in and their **Pull/Merge Requests** in your desktop **Tray Menu**.

![First look](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6xk52bc8oog7qlrq3hjl.png)

Thanks to this tool you will be able to:
- see all your PRs and PRs where your review is requested in one place
- open needed repository or PR just in two clicks

**WatchDog** can be useful for you if:
- you are working in a big team
- you are working in several teams or organizations in same time
- project code consists of many repositories
- every day you receive a lot of PRs(some of them are long playing and it's hard to keep attention)
- you would like to have ability to open favorite(or needed for work) repositories in two clicks

## Functionality

After you launch app you see app icon in **tray**.
On icon click will be opened pop up window with main menu.

![Main Menu](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4lmf48o3zscbfc6mav3o.png)

Main menu contains **navigation panel** between **organizations**(you will provide in [config file](https://alexwhitecorp.github.io/watchdog/#install-config)) and list of **repositories**(also configurable) in this **organization** you are interested in.

## Repositories
By clicking on repository name your open it's **GitHub/GitLab** page in **Browser**.
In case if there are opened **Pull Requests** in repository you see their number in this format:
_(approved PRs/total opened PRs in repository) repository-name_

![approved PRs/total opened PRs in repository) repository-name](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/674ifwb2xze9s4juizlw.png)

**Notice**: PR is approved = at least one approval review

## Pull Requests
On mouse hover on repository name you see all opened PRs in this repository.

![Pull Requests](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aqywxfzlc167q45e0qon.png)

For each PR provides next info:
- PR title and author
- Number of approval requests
- Resolved Discussions count/Total Discussions count
- Time and Date of last update

By clicking on pull request card your open it's GitHub/GitLab page in Browser.

If you have approved PR you will see '✓' near PR title or '👁' if you leave at least one comment and haven't received answer yet(code review without approve)

**Notice**: you don't see next PRs in this list:
- drafts
- Bump Bot PRs
- you are not author or reviewer of pull request

## Refreshing and Icon color
Data is re-fetched every 5 minutes using GitHub/GitLab API to keep information up to date.

By default icon color is black. But if there is at least one PR not approved(at least one approval review) and you haven't reviewed it(or reviewed but already received answers from PR's author) icon color will be changed to blue.

So if you take a look on icon and it's blue - it means at least one PR needs your attention.

After all PRs become approved(or closed) icon color will be settled back to black.

You can temporally pause/resume refreshing using button in the top right corner. For example: on weekends to don't quit app at all.

## Future features
- Dialog Window with CRUD operations on organizations/repositories list (now user need to use text editor to fill in config file to provide list of organizations and repositories)
- Notifications (notify user about events on GitHub/GitLab)

## Used Technologies
Electron + Vue.js, Jest, GitHub Actions

## In conclusion
I will be very happy if this tool become useful for **DEV community** in everyday programming activity and you provide feedback or decide to take a part in app development :)

If you are already interested in and you work on Linux - you can join to our team and help with implementation App support for Linux platforms.

**Official page**(download links and more info): https://alexwhitecorp.github.io/watchdog
**Project repository**: 
https://github.com/AlexWhiteCorp/watchdog

Hit the ⭐ button if you found this useful.