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-analyzer

v1.1.1

Published

An npm module that will all user to analyze pull requests to organizations repositories.

Downloads

30

Readme

github-analyzer

An npm module that will allow user to search through pull requests to an organizations repositories.

Installation

$ npm install github-analyzer

Usage

github-analyzer will fetch every pull-request associated with the repos in the organization specified on instantiation. Through the searchPulls method the user can filter the organization's pull requests by any top level member variable on the pull request. Pull request response structure can be found at https://developer.github.com/v3/pulls/. The result is returned in a Promise. Additionally through the options passed in searchPulls you can filter by the user who submitted the pull request and who merged the pull request. You can filter pull requests by providing a date range in ISO8601 format that you would like restrict your results within. Instantiating with Github credentials is recommended to prevent Github Rate Limiting issues. Please see https://developer.github.com/v3/#rate-limiting for more details on Rate Limiting. Examples of how to specify the various query parameters are provided below.

Example app.js:

const analyzer = require('github-analyzer')

var myAnalyzer = new analyzer("lodash",
                              {'authorization': 'basic',
                                'username': <your_username>,
                                'password': <your_password>,
                                'useragent':'test app for github-analyzer'});

//Search within a date range, specifying to restrict results to pulls
//within the lodash.com and lodash repos.
var result = myAnalyzer.searchPulls(
                                  {

                                    'state':['closed'],
                                    'user':['veksen', 'jdalton'],
                                    "created_at":{
                                                  "range_start": "2012-12-02T07:42:33Z",
                                                  "range_end": "2016-12-02T07:42:33Z"
                                                }
                                  },
                                    ["lodash.com", "lodash"]
                                )

Not specifying any repository searches all the repositories in the organization. Passing "start" as range_start tells the module to make the date range filter from the beginning of the repository until to the specified end date. Similarly, passing "end" as range_end tells the module to use the end of time as the upper time range limit.

var result_two = myAnalyzer.searchPulls(
                                  {

                                    'state':['open'],
                                    'merged_by':['jdalton'],
                                    "created_at":{
                                                  "range_start": "start",
                                                  "range_end": "2016-12-02T07:42:33Z"
                                                }
                                  }  
                                  )

Note: Whether you want to restrict the pulls returned to match a single or multiple parameter such as 'user', the value of the parameter must be in an array.

Future Improvements

The main improvements that are immediately needed are a test suite and better error handling.