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.
Built With
- argparse
- json
- pickle
- python
- python-package-index
- webhook
Log in or sign up for Devpost to join the conversation.