santari
Version:
Dependency Watcher
78 lines (48 loc) • 3.38 kB
Markdown
# Santari
[](https://app.codacy.com/app/jeremyrajan/santari?utm_source=github.com&utm_medium=referral&utm_content=remicass/santari&utm_campaign=Badge_Grade_Settings)
[](https://travis-ci.org/remicass/santari)
[](https://badge.fury.io/js/santari)
[](https://david-dm.org/jeremyrajan/santari)
[](https://nodei.co/npm/santari/)
## About
Santari (a.k.a sentry. Refer: http://www.dictionary4edu.com/santari-english-meaning.html) stands for guardsman/watchman in hindi.
Santari looks for dependencies in your project and creates a PR with the latest dependency changes.
## What it does
1. Gets your package.json file from your project and runs `npm-check-updates` in background.
2. If there are dependencies to be updated. It creates a new branch with updated dependencies package.json.
3. If a branch exists with the updated dependencies, branch and PR creation is avoided.
4. If you have locked version for deps, they are not overrided.

## Usage
Create an environment variable `GITHUB_KEY` with your github access token. For more
details visit https://github.com/blog/1509-personal-api-tokens.
Please make sure, you have read-write access to the repo(s).
```
[sudo] npm i -g santari
santari --repo jeremyrajan/santari
```
Replace the repo option with `username/repo-name`.
#### Options
You can pass the following options:
1. `--dry`: If you pass this as argument then, santari will not create PR/branches and will only display the latest
packages to be updated.
ex: `santari --repo <author>/<repo> --dry`
2. `--c`: From version > 2.5.0 you can pass a config file option wherein you can set PR details. Check [`.santari.json`](.santari.json) in
this repo.
ex: `santari --repo <author>/<repo> --c .santari.json`
## Automatic Checking
> Please note that this example uses travis CI.
1. Add `GITHUB_KEY` with your access token as `ENV` variable.
2. Add `npm i -g santari` to [`before_install`](https://github.com/jeremyrajan/santari/blob/master/.travis.yml#L12)
3. Add `santari --repo <author>/<name_of_repo>` to [`after_success`](https://github.com/jeremyrajan/santari/blob/master/.travis.yml#L13)
4. Configure cron in travis CI for the repo. You have a choice between daily, weekly or monthly.
This repo, is configured for automatic updates on a daily basis, [.travis.yml](https://github.com/jeremyrajan/santari/blob/master/.travis.yml). For more details on cron jobs for travis, please refer [here](https://docs.travis-ci.com/user/cron-jobs/).

The setup is the same, if your CI supports cron jobs.
## Feedback/contributions
1. Open a issue tracker/PR for contributions.
2. Send an email jeremyrajan[at]gmail[dot]com.
---
Thanks to [Tomas Junnonen][1] for [npm-check-updates][2].
[1]: https://github.com/tjunnone
[2]: https://github.com/tjunnone/npm-check-updates