diff --git a/.github/read.txt b/.github/read.txt new file mode 100644 index 0000000..3900098 --- /dev/null +++ b/.github/read.txt @@ -0,0 +1,2 @@ +The files in this directory contain configuration settings for continuous integration and other automated processes using GitHub Actions (https://docs.github.com/en/actions). +Do not modify the given files, although you are welcome to add additional files as needed. \ No newline at end of file diff --git a/.github/workflows/event-logger.yml b/.github/workflows/event-logger.yml new file mode 100644 index 0000000..cce34ad --- /dev/null +++ b/.github/workflows/event-logger.yml @@ -0,0 +1,58 @@ +name: log github events +on: + push: + branches: [main, master] + pull_request: + types: [opened, closed] + branches: [main, master] +jobs: + log: + runs-on: ubuntu-latest + env: + COMMIT_LOG_API: ${{ secrets.COMMIT_LOG_API }} + COMMITS: ${{ toJSON(github.event.commits) }} + REPOSITORY_URL: ${{ github.repositoryUrl }} + EVENT_TYPE: ${{ github.event_name }} + EVENT_ACTION: ${{ github.event.action }} + EVENT_USERNAME: ${{ github.actor }} + EVENT_EMAIL: "${{ github.event.pull_request.sender.email }}" + PR_MERGED: ${{ github.event.pull_request.merged }} + PR_CREATED_AT: ${{ github.event.pull_request.created_at}} + PR_CLOSED_AT: ${{ github.event.pull_request.closed_at}} + PR_MERGE_USER: ${{ github.event.pull_request.merged_by.login}} + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 # this is important so git fetches all history.. the actions/checkout by default fetches all history as one commit which throws off stats + - uses: actions/setup-python@v3 + with: + python-version: "^3.9" + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install --user pipenv + pipenv install pytz + pipenv install python-dateutil + pipenv install build + pipenv install requests + pipenv install gitcommitlogger + - name: Log pull request opened + if: github.event_name == 'pull_request' && github.event.action == 'opened' + run: | + pipenv run gitcommitlogger -r $(echo $REPOSITORY_URL) -t pull_request_opened -d $(echo $PR_CREATED_AT) -un $(echo $EVENT_USERNAME) -o commit_stats.csv -u $(echo $COMMIT_LOG_API) -v + - name: Log pull request closed and merged + if: github.event_name == 'pull_request' && github.event.action == 'closed' && github.event.pull_request.merged == true + run: | + echo $COMMITS > commits.json + cat commits.json # debugging + pipenv run gitcommitlogger -r $(echo $REPOSITORY_URL) -t pull_request_merged -d $(echo $PR_CLOSED_AT) -un $(echo $PR_MERGE_USER) -i commits.json -o commit_stats.csv -u $(echo $COMMIT_LOG_API) -v + - name: Log pull request closed without merge + if: github.event_name == 'pull_request' && github.event.action == 'closed' && github.event.pull_request.merged == false + run: | + pipenv run gitcommitlogger -r $(echo $REPOSITORY_URL) -t pull_request_closed -d $(echo $PR_CLOSED_AT) -un $(echo $EVENT_USERNAME) -o commit_stats.csv -u $(echo $COMMIT_LOG_API) -v + - name: Log push + if: github.event_name == 'push' + run: | + echo $COMMITS > commits.json + cat commits.json # debugging + pipenv run gitcommitlogger -r $(echo $REPOSITORY_URL) -t $(echo $EVENT_TYPE) -i commits.json -o commit_stats.csv -u $(echo $COMMIT_LOG_API) -v