npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

github-repo-tools

v2.6.0

Published

Useful tool to get versions (node or npm package) from repo(s) of Github user/org

Downloads

289

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:

# Search node version from .nvmrc
grt -u <github-user> -n

# Search npm package in package.json
grt -u <github-user> -p <npm-package>

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

# Show rate limits
grt -l

# Show report in pretty json format
grt -o <github-org> -n --json

# Show report in raw json format without whitespaces
grt -o <github-org> -n --raw-json

# Show report about npm package in Bitbucket repos (workspace and token)
grt -R bitbucket -w <bitbucket-workspace> -t <bitbucker-user:app-password> -p <npm-package>

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

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

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

TODO: Add more descriptive exmaple