{"id":26345363,"url":"https://github.com/masterlittle/prinder","last_synced_at":"2025-06-23T15:36:26.039Z","repository":{"id":50206825,"uuid":"138021593","full_name":"masterlittle/Prinder","owner":"masterlittle","description":"Free Pull Request reminder for Github. Has configurations to post reminders to Slack and email along with jinja templating","archived":false,"fork":false,"pushed_at":"2022-12-08T02:09:34.000Z","size":239,"stargazers_count":22,"open_issues_count":5,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-03T16:30:15.707Z","etag":null,"topics":["github","jinja2","pull-requests","python","slack","templating","yaml"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/masterlittle.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-06-20T11:10:23.000Z","updated_at":"2023-10-20T09:44:36.000Z","dependencies_parsed_at":"2023-01-25T03:00:56.022Z","dependency_job_id":null,"html_url":"https://github.com/masterlittle/Prinder","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/masterlittle/Prinder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masterlittle%2FPrinder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masterlittle%2FPrinder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masterlittle%2FPrinder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masterlittle%2FPrinder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/masterlittle","download_url":"https://codeload.github.com/masterlittle/Prinder/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masterlittle%2FPrinder/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261505417,"owners_count":23169031,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["github","jinja2","pull-requests","python","slack","templating","yaml"],"created_at":"2025-03-16T06:18:06.788Z","updated_at":"2025-06-23T15:36:26.012Z","avatar_url":"https://github.com/masterlittle.png","language":"Python","readme":"# Prinder\nPull Request reminder for Github with numerous configurations and templating feature using the powerful Jinja2\n\n## Installation and Configuration\nOn *nix systems:-\n\n1. Install Prinder using pip. \n```bash\npip install prinder\n```\n2. 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)\n\n3. 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)\n\n4. 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. \n```bash\nprinder --config_file=\u003cyour-configuration-file-path\u003e\neg -\n    1. prinder\n    2. prinder --config_file=prinder_config.yml\n    3. prinder --debug\n```\n\n5. The logs of the service can be found at prinder.log in the working directory.\n\n### Prinder has a number of configurations using which you can configure hooks to Slack or Email. Some important ones are:\n\n1. *organization_name*: The organization name for which to get pull requests.\n2. *list_of_repos*: Provide a list of repos for which to get pending pull requests.\n3. *topics*: Provide a list of topics attached to repositories for which to get pending pull requests.\n4. *ignore_repos*: List of repos which should be ignored.\n5. *ignore_labels*: List of labels assigned to pull requests to be ignored.\n6. *slack:post_as_user*: The name which will be shown on Slack.\n7. *initial_message*: The text that will appear at the the top in the notification hooks.\n\n### Formatting the notifications\n 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.\n\n **For Slack**\n 1. Create a template file. You can have a look at slack_template.template which is the default.\n 2. Give the path to the template file in your configuration file.\n\n  **For Mail**\n 1. Create a template file. You can have a look at mail_template.html which is the default.\n 2. Give the path to the template file in your configuration file.\n\n List of available information is :-\n  1. Owner\n  2. Initial Message\n  3. List of pull request object\n  4. A dictionary having pull requests with the repository name as the key\n  5. *time_delta* function to calculate the number of days since pull request created\n\n\n### Send pull request reminders to Slack\nGet 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)\n\n### Send pull request reminders in email\nConfigure a SMTP on your host and provide the details in the configuration file. \n\n# CONTRIBUTING\nThis 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  \n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmasterlittle%2Fprinder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmasterlittle%2Fprinder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmasterlittle%2Fprinder/lists"}