Awesome
GitHub Notifications
GitHub Notifications was created by, and is maintained by
The Dragon Code
, and is a simple command line tool to mark all notifications about issues or rejected PRs as read on a given organization.
Installation
PHP 8.2+ is required. To get the latest version, simply require the project using Composer:
composer global require dragon-code/github-notifications:*
Alternatively, you can simply clone the repo and run composer install
in the folder.
Update global dependencies
To update global dependencies, use the console command:
composer global update
Authentication
You'll also need to create yourself a
personal access token
for GitHub's API with access to the notifications
scope.
By default, we check several places for the presence of a token in the following order:
- The
token
parameter passed when calling the console command - The
GITHUB_TOKEN
environment variable ~/.composer/auth.json
file~/.config/.composer/auth.json
file~/.config/composer/auth.json
file~/AppData/Roaming/Composer/auth.json
file~/composer/auth.json
file%USERPROFILE%/AppData/Roaming/Composer/auth.json
file
If the token is not found, you will receive a message about this.
Usage
To read all issue notifications:
notifications read
To clear all issue notifications for the Laravel organization:
notifications read laravel
Or, if you are specifying a token:
notifications read laravel --token {...}
In addition, you can use any part of the organization name and/or repository name to check against the template:
notifications read laravel/framework
# or
notifications read lara*/fra
# or
notifications read framework
# or
notifications read work
# or
notifications read fra*rk
Pattern matching is implemented using the Str::is
method.
You can also specify several names:
notifications read laravel/framework laravel/jet
When determining the name, the str_starts_with
function is
used.
Options
By default, only those Issues and Pull Requests that have been closed or merged are marked as read.
But you can define the parameters yourself:
-r, --except-repository Exclude repositories from processing
-i, --except-issues Exclude issues from processing
-p, --except-pulls Exclude Pull Requests from processing
-m, --except-mentions Exclude notifications with your mention from processing
-o, --with-open Process including open Issues and Pull Requests
-n, --no-interaction Do not ask any interactive question
-q, --quiet Do not output any message
For example:
# except issues + with open
notifications read laravel -ion
With this set of options, notifications that have:
- whose repository name begins with the word
laravel
- Pull Requests only, both open and closed
- will not be asked to continue in the console
You can call the console command to display help information:
notifications read --help
You can also exclude certain repositories:
notifications read laravel -ion -r laravel/framework -r laravel/breeze
With this set of options, notifications that have:
- whose repository name begins with the word
laravel
- Pull Requests only, both open and closed
- will not be asked to continue in the console
- repositories
laravel/framework
andlaravel/breeze
will not be processed
Result
Before
Execute a console command with the following parameters:
notifications read -n --except-mentions
After
After with --with-open
option
Execute a console command with the following parameters:
notifications read -n --except-mentions --with-open
Support Us
❤️ The Dragon Code? Please consider supporting our collective on Boosty.
License
This package is licensed under the MIT License.