Metadata-Version: 2.1
Name: prinder
Version: 1.2.2
Summary: Posts a list of open pull requests for an organization
Home-page: http://github.com/masterlittle/Prinder
Author: Shitij Goyal
Author-email: goyalshitij@gmail.com
License: MIT
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 2.7
Classifier: License :: OSI Approved :: MIT License
Description-Content-Type: text/markdown
Requires-Dist: Jinja2 (==2.10)
Requires-Dist: MarkupSafe (==1.0)
Requires-Dist: asn1crypto (==0.24.0)
Requires-Dist: certifi (==2018.4.16)
Requires-Dist: cffi (==1.11.5)
Requires-Dist: chardet (==3.0.4)
Requires-Dist: click (==6.7)
Requires-Dist: cryptography (==2.2.2)
Requires-Dist: enum34 (==1.1.6)
Requires-Dist: github3.py (==1.1.0)
Requires-Dist: idna (==2.7)
Requires-Dist: ipaddress (==1.0.22)
Requires-Dist: ndg-httpsclient (==0.5.0)
Requires-Dist: pyasn1 (==0.4.3)
Requires-Dist: pycparser (==2.18)
Requires-Dist: pyOpenSSL (==18.0.0)
Requires-Dist: python-dateutil (==2.7.3)
Requires-Dist: PyYAML (==3.13)
Requires-Dist: requests (==2.19.1)
Requires-Dist: six (==1.11.0)
Requires-Dist: slacker (==0.9.65)
Requires-Dist: uritemplate (==3.0.0)
Requires-Dist: urllib3 (==1.23)

# Prinder
Pull Request reminder for Github with numerous configurations and templating feature using the powerful Jinja2

## Installation and Configuration
On *nix systems:-

1. Install Prinder using pip. 
```bash
pip install prinder
```
2. Create a configuration file. The default filename is **prinder_config.yaml** but you can name it whatever you want. Fill in all the fields or leave them empty if you don't need them. Copy the config template from here - [prinder_config.yaml.template](https://github.com/masterlittle/Prinder/blob/master/prinder_config.yaml.template)

3. Get a github auth token with relevant access and assign it to the environment variable **PRINDER_GITHUB_API_TOKEN** or assign it in the configuration file to **github_api_token**. (Copying the token to the file is not recommended)![token](https://github.com/masterlittle/Prinder/blob/master/github_token_permissions.png)

4. Run the command with the file name as argument if required. If no argument is passed, it will try to find prinder_config.yaml in the working directory. The debug parameter can be passed to turn on detailed logging. 
```bash
prinder --config_file=<your-configuration-file-path>
eg -
    1. prinder
    2. prinder --config_file=prinder_config.yml
    3. prinder --debug
```

5. The logs of the service can be found at prinder.log in the working directory.

### Prinder has a number of configurations using which you can configure hooks to Slack or Email. Some important ones are:

1. *organization_name*: The organization name for which to get pull requests.
2. *list_of_repos*: Provide a list of repos for which to get pending pull requests.
3. *topics*: Provide a list of topics attached to repositories for which to get pending pull requests.
4. *ignore_repos*: List of repos which should be ignored.
5. *ignore_labels*: List of labels assigned to pull requests to be ignored.
6. *slack:post_as_user*: The name which will be shown on Slack.
7. *initial_message*: The text that will appear at the the top in the notification hooks.

### Formatting the notifications
 You can set your own look and feel of notifications and override the default using the templating files. The templating uses Jinja2 so everything is highly configurable.

 **For Slack**
 1. Create a template file. You can have a look at slack_template.template which is the default.
 2. Give the path to the template file in your configuration file.

  **For Mail**
 1. Create a template file. You can have a look at mail_template.html which is the default.
 2. Give the path to the template file in your configuration file.

 List of available information is :-
  1. Owner
  2. Initial Message
  3. List of pull request object
  4. A dictionary having pull requests with the repository name as the key
  5. *time_delta* function to calculate the number of days since pull request created


### Send pull request reminders to Slack
Get a slack token and assign it to the environment variable **PRINDER_SLACK_API_TOKEN** or assign it in the configuration file to **slack_api_token**. (Copying the token to the file is not recommended)

### Send pull request reminders in email
Configure a SMTP on your host and provide the details in the configuration file. 

# CONTRIBUTING
This started as a side project for a requirement that I had and as a way to improve my Python skills. I would warmly welcome any Pull requests and feature requests that you may have. Thanks  


