Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/lightness/github-repo-tools

A set of useful tools helping search dependencies in all repos of github user/org
https://github.com/lightness/github-repo-tools

github github-api octokit version-manager versioning

Last synced: about 2 months ago
JSON representation

A set of useful tools helping search dependencies in all repos of github user/org

Awesome Lists containing this project

README

        

# Github Repo Tools

Main goal is check versions of some npm package in all repos of single github user/org.

## Examples

#### You can specify command line arguments

#### Or just answer some questions

#### Some usage examples:

```sh
# Search node version from .nvmrc
grt -u -n

# Search npm package in package.json
grt -u -p

# Search npm package just in package.json "devDependencies" field
grt -u -p --no-deps --no-peer-deps

# Show rate limits
grt -l

# Show report in pretty json format
grt -o -n --json

# Show report in raw json format without whitespaces
grt -o -n --raw-json

# Show report about npm package in Bitbucket repos (workspace and token)
grt -R bitbucket -w -t -p
```

## Usage

```
$ grt -h
Search npm packages in all org/workspace repos. You can set token via env var,
if public access restricted

Owner:
--repo-service, -R code repository service (github, bitbucket)
[string] [default: "github"]
--user, -u user name (github) [string]
--org, -o org name (github) [string]
--workspace, -w workspace name (bitbucket) [string]
--repos, -r repos where search applied [array]
--token, -t token to auth. Env var strongly recommented [string]
--token-name, --tn name of env variable with token. GITHUB_TOKEN /
BITBUCKET_TOKEN by default. [string]

NPM package:
--package, -p package to search [string]
--deps disable search in "dependencies" package.json field
[boolean] [default: true]
--dev-deps disable search in "devDependencies" package.json field
[boolean] [default: true]
--peer-deps disable search in "peerDependencies" package.json field
[boolean] [default: true]
--yarn-lock disable search in yarn.lock [boolean] [default: true]
--package-lock disable search in package-lock.json [boolean] [default: true]

Node version:
--node, -n search node version based on .nvmrc and package.json engines
--nvm disable search in .nvmrc [boolean] [default: true]
--engines disable search in package.json engines [boolean] [default: true]

Options:
-v, --version Show version number [boolean]
--rate-limit, -l show rate limit
--skip-empty skip repo, if package/node not found
[boolean] [default: true]
--skip-error skip repo, if error with such code occured
[array] [default: [404,"404"]]
--raw-json show output as json without whitespaces
[boolean] [default: false]
--json show output as prettified json [boolean] [default: false]
--csv show output as csv [boolean] [default: false]
--md show output as markdown table [boolean] [default: false]
-h, --help Show help [boolean]
```

## Use in your app

```js
const { grt } = require('github-repo-tools');

const response = await grt({
user: 'lightness',
package: 'typescript',
yarnLock: false,
token: '',
});
```

> TODO: Add more descriptive exmaple