Productivity hack of the day: Creating pull requests descriptions from Git diff

martinhc

Martin Humlund Clausen

Posted on September 10, 2024

Productivity hack of the day: Creating pull requests descriptions from Git diff

As developers, we create a lot of pull requests, and I must admit that sometimes I neglect to write a detailed description to help my team review the changes efficiently.

To assist my team, I use ChatGPT to generate richer pull request descriptions, giving me a little more time to focus on coding.

Here’s the simple trick:

  1. On your current feature branch, run the following PowerShell script from within your root repository folder. It will output a diff.patch file .
  2. Paste that file into ChatGPT and use the following prompt:
    • "As a software developer, I’ve made the changes in the attached git diff file. Please write a pull request description for my team to help them review it efficiently, with an emphasis on {Insert your bullet points}."

Here is the gist

# Check if the git command is available
if (-not (Get-Command git -ErrorAction SilentlyContinue)) {
    Write-Host "Git is not installed or not available in the PATH." -ForegroundColor Red
    exit
}

# Ensure we're in a git repository
$gitStatus = git rev-parse --is-inside-work-tree 2>&1
if ($gitStatus -ne "true") {
    Write-Host "This is not a git repository." -ForegroundColor Red
    exit
}

# Get the current branch name
$currentBranch = git rev-parse --abbrev-ref HEAD
if ($currentBranch -eq "main") {
    Write-Host "You are on the 'main' branch. Please switch to a feature branch." -ForegroundColor Yellow
    exit
}

# Fetch the latest changes for the main branch
git fetch origin main

# Get the latest commit on the main branch
$mainCommit = git rev-parse origin/main

# Get the latest commit on the current branch
$currentBranchCommit = git rev-parse HEAD

# Generate the diff between the latest commit on main and the current branch
$diffFileName = "diff.patch"
git diff $mainCommit $currentBranchCommit > $diffFileName

# Check if the diff file was generated successfully
if (Test-Path $diffFileName) {
    Write-Host "Diff file generated successfully: $diffFileName" -ForegroundColor Green
} else {
    Write-Host "Failed to generate diff file." -ForegroundColor Red
}
Enter fullscreen mode Exit fullscreen mode

As a generel rule of thumb, keep your Pull Request small! Not only does that help your team reviewing your changes and it also makes writing Pull request descriptions easier.

Disclaimer

  • As alway, when using gpt is that you OWN the output, so dont forget to check it.
  • The output is only for scaffolding a pull request description, so modify the output accordingly
💖 💪 🙅 🚩
martinhc
Martin Humlund Clausen

Posted on September 10, 2024

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related