git-tellme: a custom Github notifications for the CLI
I want my own git notifications using the Github API without the browser.
For the moment I will return the data to the terminal. Maybe later I can put a frontend dunst style. The project is still a work in progress. The main idea its to have a small program to subscribe to github user repositories, user profiles and manage all your notifications from the comfort of your terminal. Subscribe to users/projects to get notified when a new repository is created will be possible too.
For the terminal fonts with ligatures like FiraCode are recommended.
Main commands
To get your notifications:
# click on the link to open the issue
To get your repositories:
To get someone else repositories:
)
)
If you want to get your notifications when you open your terminal you can add
git-tellme
to you're ~/.bashrc
, ~/.zshrc
or ~/.config/fish/config.fish
The performance will get better, I promise.
Before you start
1. First of all you will need a personal access token from github.
- How to do get one here, you only can see the token one time after its creation.
git-tellme
uses the GitHub API so that token has to be accesible for the whole
system. The best way to do that is with pass
and gpg
.
Here
you have a better explanation but basically you will need to run this commands:
# Identify and create your database
# ...
# The command will return something like this
# /home/user/.gnupg/pubring.gpg
# ------------------------------
# pub 4096R/68214821 2015-06-24
# uid First Middle Last Suffix <first.last@host.tld>
# sub 4096R/36A6F06D 2015-06-24
# mkdir: created directory ‘/home/user/.password-store/’
# Password store initialized for 68214821
Extra: I really recommend to create a ~/.gnupg/gpg-agent.conf
file with this content inside:
So the gpg-agent stops asking every second for the master password.
2. Then to save your GitHub token:
# PASTE_YOUR_TOKEN_HERE
To learn more about pass
: https://wiki.archlinux.org/title/Pass
To learn more about gpg
: https://www.gnupg.org/gph/en/manual/c14.html
I know, too much ? This will be easier later, give me time...
Installation
First install rustup
+cargo
: https://rustup.rs/
From crates.io:
From the repository source:
PATH= :
Commands
Main Todos
- Ask for username and authentication token or password and write it on the .env
- Get notifications from the user
- Draw dynamic boxes for the CLI
- Open issue on the browser when clicking on the issue id ( on CLI)
- Get user profile on the browser when clicking on the user.
- Same with repos.
- Create cronos to check for new repos from other users.
- Frontend with Gtk (?)
- Notification Bell 🔔
- Work with FZF, FZY