gitnotus
Manage the github events and notify the users
gitnotus Command Line Interface
gitnotus is a set of API's/tools written to manage github events. Event updates will be notified through web hooks.
The following are the core functionalities of the gitnotus CLI:
usage: gitnotus [-h] [-v]
{addrepo,listinfo,userinfo,list}
Commands
Option | Specification |
---|---|
addrepo | add new repository |
listinfo | get all user and repo info |
userinfo | display user info |
$ gitnotus addrepo -h
usage: gitnotus addrepo [-h] username reponame email
positional arguments:
username get the user name
reponame get the repository name
email get the email address
$ gitnotus listinfo -h
usage: gitnotus listinfo [-h]
$ gitnotus userinfo -h
usage: gitnotus userinfo [-h] username
positional arguments:
username get the user name
Configuration
- Make apache tomcat web server up and running
- Make an public URl to post the hook
- In local use ngrok.com to make an URL. Next two steps are required in case if you do not have an public domain
- download and install ngrok
- ./ngrok 8080
- Add the webhook URL to the git repo
- Start the webhook_handler to recieve json ./weghook_handler.py
- Start the local smtp server on port 1025 using the following command 'python -m smtpd -n -c DebuggingServer localhost:1025' to send emails
Modules:
Webhook POST Listener:
- This module listens to the POST url which is hooked with the github api. And invoke mail api to send the notification
JSON Parser
- This module the takes post request as JSON object and parse the commit/push information.
- And it includes commit message, files added, deleted, modified etc.
Repo Maintainer
- This module stores and maintains the user and repo information as a pickle file. This also can be maintained in YAML or JSON files
- Every post request will be compared against this dictionary
Licensing
gitnotus is licensed under MIT License. See LICENSE for full license text.
Log in or sign up for Devpost to join the conversation.