Skip to content

Files

Failed to load latest commit information.

Latest commit

 Cannot retrieve latest commit at this time.

History

History

automations

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

Automation used to track developer contributions

The developer activity in this repository is tracked using a combination of custom tools. Any action on this repository triggers a sequence of automated steps:

  1. A GitHub Actions workflow is set up to detect actions on this repository, such as push, pull request, etc.
  2. This workflow executes a Python package named gitcommitlogger that parses the git logs and determines what has changed and who made the changes.
  3. The Python package then posts this data to a "container-bound" Google Apps Script attached to a Google Sheet and set up as a web app to receive such incoming HTTP POST requests. The web app URL where the data is posted is stored in a GitHub secret named, COMMIT_LOG_API within this repository.
  4. The Google Apps Script inserts the data posted by the Python package into a new row in the bound spreadsheet.
  5. The Google Sheet contains formulae to add up the number of pull requests opened, pull requests closed, commits, files changed, lines of code added. lines of code removed, etc, by each developer, over a given time period, based on these logs.
  6. The sums of these metrics are capped for each developer at reasonable, relatively low levels.
  7. Based on all developers' activity, an average score for each of these metrics is computed, and each developer's own score is compared to the average of all developers.
  8. A contribution score is calculated for each developer: those who perform average or better on all metrics are given a perfect score; those who perform less than average for any metric have their score scaled down in proportion to how much lower than average they performed.
  9. Charts of the developers' contributions over a given time period are made automatically available in the web app via HTTP GET requests.
  10. These contribution scores are also automatically pulled into a separate gradebook spreadsheet.