Commit historik

Denna action genererar en markdown-fil med en lista över alla commits som har gjorts i repot och av vem.

name: Generate Commit History
on:
push:
branches:
- main
jobs:
generate-history:
runs-on: ubuntu-latest
permissions:
contents: write
if: "github.event.pusher.email != 'action@github.com'"
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
- name: Set up Git user
run: |
git config user.name "GitHub Action"
git config user.email "action@github.com"
- name: Generate commit history
run: |
echo "# Commit historik" > HISTORY.md
echo "| Date | Author | Email | Message | Commit Hash |" > HISTORY.md
echo "|------|--------|-------|---------|--------------|" >> HISTORY.md
git log --pretty=format:'| %cd | %an | %ae | %s | %h |' --date=short | grep -v 'action@github.com' >> HISTORY.md
- name: Add and commit HISTORY.md file
run: |
git add HISTORY.md
git commit -m "Update HISTORY.md file" || echo "No changes to commit"
- name: Push changes
run: |
git push
- name: Yay!
run: echo Marcus Was Here!

Förklaring av koden

Förklaring av koden

Name

Namnet på actionen.

On

När actionen ska köras. I detta fall när någon pushar till main-branchen. Man kan även köra den när någon pushar till en pull request eller när någon skapar en pull request.

Exempelvis:

on:
pull_request:
branches:
- main

Jobs

En jobb är en samling av steg som ska köras. I detta fall har vi bara ett jobb som heter generate-stats.

Runs-on

Vilken typ av maskin som jobbet ska köras på. I detta fall kör vi på en ubuntu-maskin, men kan även köra på en windows-maskin eller en mac-maskin.

Exempelvis:

runs-on: windows-latest

eller

runs-on: macos-latest

Permissions

Vilka rättigheter actionen ska ha. I detta fall behöver vi rättigheten contents: write för att kunna skriva till repot.

If

Villkor för när actionen ska köras. I detta fall vill vi inte att actionen ska köras när vi pushar till repot, utan bara när någon annan pushar till repot. Därför kollar vi om github.event.pusher.email är action@github.com och om det är det så kör vi inte actionen. Detta för att slippa att automatiserade commits triggar actionen.

Steps

Stegen som ska köras i jobbet. I detta fall har vi 7 steg. Varje steg har ett namn, en beskrivning och en kommando som ska köras.

Checkout code

Detta steg klonar repot till den maskin som actionen körs på.

Set up Git user

Detta steg sätter upp en användare för git som actionen kan använda för att göra commits. Du kan ange dina egna uppgifter här om du vill, men då rekommenderas att du använder en github secret för att inte lägga ut dina uppgifter publikt.

Generate commit history

Detta steg genererar en markdown-fil med en lista över alla commits som har gjorts i repot och av vem.

Add and commit HISTORY.md file

Detta steg lägger till och committar den genererade markdown-filen.

Push changes

Detta steg pushar ändringarna till repot.

Yay!

Detta steg skriver ut en glad hälsning i loggen.

Exempel på resultat

DateAuthorEmailMessageCommit Hash
2021-10-08Batmanbatman@cave.orgFixed Riddler’s riddle in README7d7e8f9
2021-10-08Robinrobin@batcave.orgAdded a riddle to the README by the Riddler, seems legit?6e6f7g8
2021-10-08Batmanbatman@cave.orgRefactored Bat-Signal integration5d5e6f7
2021-10-07Robinrobin@batcave.orgAdded support for Bat-Signal via SMS. Cool, right?4c4d5e6
2021-10-07Batmanbatman@cave.orgCorrected typos in Bat-Comments, Robin…3c3d4f5
2021-10-06Robinrobin@batcave.orgAdded awesom comments to the code!!2b2c3d4
2021-10-06Batmanbatman@cave.orgAdded API connection to batmobile3b3d4e5
2021-10-06Batmanbatman@cave.orgRemoved API key from code :-/2a2b3c4
2021-10-05Robinrobin@batcave.orgAdded support to API for sidekick1a1b2c3
2021-10-05Batmanbatman@cave.orgReplaced Joker’s laugh with proper error handling9g9h0i1
2021-10-04Robinrobin@batcave.orgAdded Joker’s laugh as an error sound. Haha, fun, right?8f8g9h0
2021-10-04Batmanbatman@cave.orgRenamed variables: batSomething instead of robinsIdea7e7f8g9
2021-10-03Robinrobin@batcave.orgRenamed all variables to robinsIdea to make it clear whose idea it was!6d6e7f8
2021-10-02Batmanbatman@cave.orgRemoved Robin’s “Super Cool Dance Function.” This is serious business.5c5d6e7
2021-10-01Robinrobin@batcave.orgAdded a super cool dance function for the Batmobile, check it out!4b4c5d6
2021-10-01Batmanbatman@cave.orgSecurity patch: Disabled Two-Bats Authentication for Penguin3a3b4c5
2021-09-30Robinrobin@batcave.orgEnabled Two-Bats Authentication for everyone, even the Penguin!2a2b3c4
2021-09-30Batmanbatman@cave.orgReverted “Batmobile Flight Mode.” We’re not there yet, Robin.1a1b2c3
2021-09-29Robinrobin@batcave.orgAdded Batmobile Flight Mode. Fly, Batmobile, Fly!!0a0b1c2