Awesome Open Source
Awesome Open Source

aggregit

Contributor Covenant

This action gathers metrics about the repository and loads them to a Firebase database that you specify.

Repo metrics will be saved into a collection named repos.

Inputs

githubToken

Required GitHub secret token. Provide ${{ secrets.GITHUB_TOKEN }} or a defined secret with a personal access token.

If you provide ${{ secrets.GITHUB_TOKEN }} as the githubToken input, totalViews and uniqueViews will always be recorded as 0. This is due to the fact that the GITHUB_TOKEN secret does not have adequate permission to retrieve view data for repos. Instead, provide a personal access token that has push access to the repo.

project_id

Required Firebase project id provided in your Firebase Admin SDK private key JSON file.

private_key

Required Firebase private key provided in your Firebase Admin SDK private key JSON file.

client_email

Required Firebase client email provided in your Firebase Admin SDK private key JSON file.

firebaseDbUrl

Required Url of your Firebase database.

Example usage

uses: michaeljolley/[email protected]
with:
  githubToken: ${{ secrets.GITHUB_TOKEN }}
  project_id: ${{ secrets.project_id }}
  private_key: ${{ secrets.private_key }}
  client_email: ${{ secrets.client_email }}
  firebaseDbUrl: ${{ secrets.firebaseDbUrl }}

Sample data

The following schema represents the data that will be saved for each repo document in the Firebase database.

{
    name: 'repoName',
    url: 'https://github.com/owner/repoName',
    contributors:  {
        '2020-04-14': 4,
        '2020-04-15': 3
    },
    issues: {
        '2020-04-14': 4,
        '2020-04-15': 3
    },
    forks: {
        '2020-04-14': 4,
        '2020-04-15': 3
    },
    pullRequests: {
        '2020-04-14': 4,
        '2020-04-15': 3
    },
    stars:  {
        '2020-04-14': 4,
        '2020-04-15': 3
    },
    watchers:  {
        '2020-04-14': 4,
        '2020-04-15': 3
    },
    totalIssues:  {
        '2020-04-14': 4,
        '2020-04-15': 3
    },
    totalPullRequests: {
        '2020-04-14': 4,
        '2020-04-15': 3
    },
    healthPercentage: {
        '2020-04-14': 64,
        '2020-04-15': 83
    },
    commits: {
        '2020-04-14': 4,
        '2020-04-15': 6
    },
    codeOfConductExists: {
        '2020-04-14': false,
        '2020-04-15': true
    },
    contributingExists: {
        '2020-04-14': true,
        '2020-04-15': true
    },
    issueTemplateExists: {
        '2020-04-14': false,
        '2020-04-15': false
    },
    pullRequestTemplateExists: {
        '2020-04-14': false,
        '2020-04-15': true
    },
    licenseExists: {
        '2020-04-14': true,
        '2020-04-15': true
    },
    readMeExists: {
        '2020-04-14': true,
        '2020-04-15': true
    },
    totalViews: {
        '2020-04-14': 110,
        '2020-04-15': 89
    },
    uniqueViews: {
        '2020-04-14': 45,
        '2020-04-15': 23
    }
}
Alternatives To Aggregit
Select To Compare


Alternative Project Comparisons
Related Awesome Lists
Top Programming Languages
Top Projects

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Typescript (268,309
Database (92,876
Sdk (32,762
Admin (21,854
Firebase (21,615
Metrics (13,662
Firebase Admin (106