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

https://github.com/jamieweavis/contribution

GitHub contribution graph parser - contribution streak & statistic calculator with zero dependencies
https://github.com/jamieweavis/contribution

contribution contribution-graph github statistics stats streak

Last synced: about 2 months ago
JSON representation

GitHub contribution graph parser - contribution streak & statistic calculator with zero dependencies

Awesome Lists containing this project

README

        

# Contribution

GitHub contribution graph parser - contribution streak & statistic calculator with zero dependencies

[![ci](https://github.com/jamieweavis/contribution/workflows/ci/badge.svg)](https://github.com/jamieweavis/contribution/actions)
[![downloads](https://img.shields.io/npm/dt/contribution.svg)](https://npmjs.com/package/contribution)
[![version](https://img.shields.io/npm/v/contribution.svg)](https://github.com/jamieweavis/contribution/releases)
[![license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/jamieweavis/contribution/blob/main/LICENSE)
[![zero dependencies](https://img.shields.io/badge/dependencies-0-violet)](https://npmjs.com/package/contribution)

## Install

```sh
npm install contribution
```

## Usage

```javascript
import { fetchGitHubStats } from 'contribution';

// Promise chaining
fetchGitHubStats('jamieweavis')
.then((gitHubStats) => console.info(gitHubStats))
.catch((error) => console.error(error));

// Try catch with async/await
try {
const gitHubStats = await fetchGitHubStats('jamieweavis');
console.info(gitHubStats);
} catch (error) {
console.error(error);
}
```

```typescript
interface GitHubStats {
bestStreak: number;
currentStreak: number;
previousStreak: number;

isStreakAtRisk: boolean;

mostContributions: number;
todaysContributions: number;
totalContributions: number;

contributions: Contributions;
}

interface Contributions {
[date: string]: Day; // YYYY-MM-DD
}

interface Day {
contributions: number;
gitHubLegendLevel: number;
}
```

## Built with

- [Node.js](https://github.com/nodejs/node)
- [TypeScript](https://github.com/microsoft/TypeScript)
- [Parcel](https://github.com/parcel-bundler/parcel)

## Related

- [Streaker](https://github.com/jamieweavis/streaker) - Cross-platform GitHub contribution streak/statistic tracking menu bar application with reminder notification
- [Streaker CLI](https://github.com/jamieweavis/streaker-cli) - GitHub contribution streak/statistic tracking command line application with ASCII contribution graph

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.