A Python package that logs the details of a specific set of events made to a GitHub repository. Logs are saved into a CSV
file and can optionally be sent in a request to a web app, such as a Google Apps Script attached to a Google Sheet where the data can be stored.
This package is designed to be used in a GitHub Actions workflow, where the workflow is triggered by a push or pull request to the repository. Details of the commits included in the push will then be logged.
A sample GitHub Actions workflow is included in .github/workflows/
event-logger.yml
. This example stores the logs into a Google Sheet by first posting them as JSON
data to a web app attached to the Google Sheet. The URL of the web app is presumed be stored in a GitHub Actions Secret named COMMIT_LOG_API
.
In order to save the logs into a Google Sheet, the following steps are required:
- Create a Google Sheet.
- Attach an Apps Script to the sheet by clicking the
Extensions
->Apps Scripts
menu option in Google Sheets. - Copy/paste the example Apps Script in
apps-script-example
/code.js
into the Apps Script editor and save. This sets up the script as a web app so it can respond toGET
orPOST
requests. - Click the buton to
Deploy
->New Deployment
in the Apps Scripts editor. Note the web app URL that is generated once deployed. - Add the URL of the Apps Script web app to the GitHub repository as a secret named
COMMIT_LOG_API
. - The
gitcommitlogger
command in the example GitHub Action will send aPOST
request to the Google Sheet web app whenever a push or pull request is made on the repository. - The web app will then add a row to the Google Sheet with the details of the commit, including the commit id, author, number of files changed in the commit, number of lines added and deleted.