DEV Community

Martin Humlund Clausen
Martin Humlund Clausen

Posted on • Edited on

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

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

Top comments (0)

Some comments may only be visible to logged-in visitors. Sign in to view all comments. Some comments have been hidden by the post's author - find out more