Skip to content

kyliemckinleydemo/github-contribution-tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

GitHub Contribution Tracker with Smart Scoring

Intelligent analysis of GitHub contributions that goes beyond simple line counts.

A Google Sheets-based tool that provides fair, nuanced evaluation of developer contributions by intelligently categorizing work into 8 types and applying customizable weights to reflect the true value of different kinds of contributions.

License Platform Version


🎯 The Problem

GitHub's built-in analytics are misleading:

  • Treats all lines equally (1 line of config = 1 line of critical algorithm)
  • Easy to game with many tiny commits
  • Counts starter code and auto-generated files
  • Doesn't distinguish features from bug fixes from documentation
  • Encourages quantity over quality

This tool solves these problems by understanding what kind of work was done, not just how much.


✨ Key Features

Smart Work Type Categorization

Automatically categorizes commits into 8 types:

Work Type Default Weight What It Measures
✨ Feature Creation 3.0x New functionality and components
πŸ› Bug Fixing 2.0x Fixes to existing code
πŸ”§ High Refactoring 0.7x Major code improvements
πŸ”¨ Medium Refactoring 0.3x Moderate improvements
πŸ“ Low Refactoring 0.1x Minor cleanup
πŸ§ͺ Testing 0.4x Test scripts and validation
πŸ“š Documentation 0.3x READMEs, comments, guides
πŸ”© Support Code 0.5x Build scripts, configs, utilities

Customizable Weights

Adjust weights to match your project priorities:

  • Building MVP? β†’ Increase Feature weight
  • Mature product? β†’ Boost Refactoring and Testing
  • Compliance-heavy? β†’ Increase Documentation weight

Gaming-Resistant

Multiple safeguards prevent inflating scores:

  • Minimum line thresholds (tiny commits don't count)
  • Merge commit exclusion (no credit for merges)
  • External code filtering (starter code excluded)
  • Net change tracking (repeated edits don't inflate)

Beautiful Visualization

6-color stacked column chart shows:

  • Work type composition per contributor
  • Team balance (builders vs maintainers)
  • Specializations vs generalists

Complete Transparency

Every point is explainable:

  • Work type breakdown with exact lines and percentages
  • Most active files showing focus areas
  • Full commit history with co-authors
  • PR, review, and issue tracking

πŸ“Š Example Output

Contributor Summary

TeamMemberA                                Total Score: 2,189.7

Summary:
β€’ 43 commits
β€’ 0 PRs created, 0 merged
β€’ 0 PRs reviewed, 0 review comments
β€’ 0 issues created, 0 issue comments

Work Type Breakdown:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Type               β”‚ Lines β”‚ Weight β”‚ Points  β”‚ % of Scoreβ”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ ✨ Feature Creation β”‚  511  β”‚  3.0x  β”‚ 1,533.0 β”‚   70.00%  β”‚
β”‚ πŸ› Bug Fixing       β”‚  274  β”‚  2.0x  β”‚   548.0 β”‚   25.00%  β”‚
β”‚ πŸ“š Documentation    β”‚  177  β”‚  0.3x  β”‚    53.1 β”‚    2.40%  β”‚
β”‚ πŸ”¨ Medium Refactor  β”‚  149  β”‚  0.3x  β”‚    44.7 β”‚    2.00%  β”‚
β”‚ πŸ§ͺ Testing          β”‚   26  β”‚  0.4x  β”‚    10.4 β”‚    0.50%  β”‚
β”‚ πŸ”© Support Code     β”‚    1  β”‚  0.5x  β”‚     0.5 β”‚    0.00%  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
TOTAL                    959            2,189.7     100.00%

Most Active Files:
1. querier/querier.c
2. crawler/crawler.c
3. common/index.c
4. indexer/indexer.c
5. common/pagedir.c

Visual Chart

The stacked column chart shows at a glance who does what type of work:

     β”‚                          β”Œβ”€β”€β”€β”€ Features (green)
     β”‚    β–ˆβ–ˆβ–ˆβ–ˆ                  β”‚
     β”‚    β–ˆβ–ˆβ–ˆβ–ˆ  β–ˆβ–ˆβ–ˆβ–ˆ            β”œβ”€β”€β”€β”€ Bug Fixes (yellow)
     β”‚    β–ˆβ–ˆβ–ˆβ–ˆ  β–ˆβ–ˆβ–ˆβ–ˆ  β–ˆβ–ˆ        β”‚
     β”‚    β–ˆβ–ˆβ–ˆβ–ˆ  β–ˆβ–ˆβ–ˆβ–ˆ  β–ˆβ–ˆ        └──── Other types (various colors)
     └────────────────────
          A     B     C
        Contributors

πŸš€ Quick Start

1. Create a New Google Sheet

Go to Google Sheets and create a new spreadsheet.

2. Open Script Editor

Click Extensions β†’ Apps Script

3. Paste the Code

Copy the entire contents of Code.gs and paste it into the script editor.

4. Save and Refresh

  • Save the script (Ctrl/Cmd + S)
  • Close the script editor
  • Refresh your spreadsheet page

5. Run Setup

From the menu bar: GitHub Tracker β†’ 1. Setup Sheets

  • Authorize the script when prompted

6. Add Your GitHub Token

7. Select Repository

  • Run GitHub Tracker β†’ 3. Auto-Fill My Username
  • Run GitHub Tracker β†’ 4. List Available Repos
  • Click on the repo you want to analyze
  • Run GitHub Tracker β†’ 5. Set Selected Repo

8. Fetch Contributions

Run GitHub Tracker β†’ Fetch Contributions

Done! Check the Summary sheet for results.


πŸ“– Documentation

Document Description
Setup Guide Detailed installation instructions
User Guide How to use all features
Fairness & Equity Why this tool is fair
Configuration Customizing weights and settings
FAQ Common questions

πŸ†š vs. GitHub Insights

Feature GitHub Insights This Tool
Work type breakdown ❌ No βœ… 8 categories
Customizable weights ❌ No βœ… Full control
Filter external code ❌ No βœ… Auto-detect
Gaming prevention ❌ None βœ… Multiple safeguards
Visual breakdown by type ❌ No βœ… Stacked chart
Recalculate scores ❌ N/A βœ… Instant
Minimum thresholds ❌ No βœ… Configurable
Co-author credit ❌ No βœ… Full tracking
Export/share ❌ Screenshots βœ… Google Sheets

GitHub shows: TeamMemberB: 1,913 additions (MOST LINES)

This tool reveals:

TeamMemberA: 2,189.7 pts (MOST VALUE)
β”œβ”€β”€ 70% high-impact features
└── 25% bug fixes

TeamMemberB: 1,810.4 pts
β”œβ”€β”€ 40% features
β”œβ”€β”€ 32% bug fixes  
└── 10% testing (quality-focused)

TeamMemberC: 438.8 pts
β”œβ”€β”€ 46% support code (infrastructure)
└── 29% refactoring (code quality)

GitHub's raw line count makes TeamMemberB look like top contributor, but this tool shows TeamMemberA delivered the most value, and reveals TeamMemberC's specialized infrastructure role.


πŸŽ“ Ideal Use Cases

  • CS Courses - Fair grading for team projects
  • Small Dev Teams - Understand team dynamics
  • Open Source Projects - Recognize diverse contributors
  • Performance Reviews - Data-driven evaluation
  • Bootcamps - Track student progress

βš™οΈ Configuration Options

Weights (Config Sheet)

Feature Creation:    3.0x  (default)
Bug Fixing:          2.0x
High Refactoring:    0.7x
Medium Refactoring:  0.3x
Low Refactoring:     0.1x
Testing:             0.4x
Documentation:       0.3x
Support Code:        0.5x

Date Range

Set a start date to exclude:

  • Instructor-provided starter code
  • Initial repository setup
  • Work before the project officially began

Instant Recalculation

Changed weights? Run GitHub Tracker β†’ Recalculate Scores to update all points without re-fetching from GitHub.


πŸ›‘οΈ Privacy & Security

  • Your token stays in your sheet - Never sent anywhere except GitHub's API
  • No external servers - Everything runs in Google Apps Script
  • No data collection - We don't track anything
  • Open source - Inspect the code yourself

🀝 Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

Ideas for Contributions

  • Support for additional languages/file types
  • New work type categories
  • GitLab/Bitbucket support
  • Improved commit message parsing
  • Additional visualizations
  • Multi-repo aggregation

πŸ“„ License

This project is licensed under the MIT License - see LICENSE for details.


πŸ™ Acknowledgments

Built to promote fair evaluation of diverse contribution styles in software development.

Special thanks to:

  • CS educators who need better tools for team project grading
  • Open source maintainers who recognize that not all contributions are code
  • Everyone who believes quality matters more than quantity

πŸ“¬ Support


Made with ❀️ for fair contribution tracking

About

Intelligent GitHub contribution analysis with smart work type categorization and customizable weights

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published