An open API service indexing awesome lists of open source software.

https://github.com/jeremyrajan/santari

NPM Dependency checker & Updater
https://github.com/jeremyrajan/santari

cron cron-jobs dependency-manager npm package-json package-tracker travis travis-ci

Last synced: 5 days ago
JSON representation

NPM Dependency checker & Updater

Awesome Lists containing this project

README

          

# Santari

[![Codacy Badge](https://api.codacy.com/project/badge/Grade/b24ceaee9b6e4188b06a9b005299bd3d)](https://app.codacy.com/app/jeremyrajan/santari?utm_source=github.com&utm_medium=referral&utm_content=remicass/santari&utm_campaign=Badge_Grade_Settings)
[![Build Status](https://travis-ci.org/remicass/santari.svg?branch=tests)](https://travis-ci.org/remicass/santari)
[![npm version](https://badge.fury.io/js/santari.svg)](https://badge.fury.io/js/santari)
[![david.dm](https://david-dm.org/jeremyrajan/santari.svg)](https://david-dm.org/jeremyrajan/santari)

[![NPM](https://nodei.co/npm/santari.png?downloads=true&downloadRank=true&stars=true)](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.

![image](https://cloud.githubusercontent.com/assets/2890683/19828761/93546cc4-9e01-11e6-8840-a931ce7f6711.png)

## 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 / --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 / --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 /` 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/).

![image](https://cloud.githubusercontent.com/assets/2890683/21299994/9fac86a8-c5db-11e6-9ff3-d9aa29e1c4e4.png)

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