Skip to content

feat: add get_file_blame tool for retrieving git blame information - #1538

Merged
SamMorrowDrums merged 7 commits into
github:mainfrom
MayorFaj:feat/git-blame-tool
Jun 11, 2026
Merged

feat: add get_file_blame tool for retrieving git blame information#1538
SamMorrowDrums merged 7 commits into
github:mainfrom
MayorFaj:feat/git-blame-tool

Conversation

@MayorFaj

@MayorFaj MayorFaj commented Dec 4, 2025

Copy link
Copy Markdown
Contributor

This pull request adds a new tool for retrieving git blame information for files in a GitHub repository, along with comprehensive tests and documentation updates. The main focus is on enabling users to see who last modified each line in a file, with support for specifying branches, tags, or commit SHAs.

New Git Blame Tool Integration

  • Added the get_file_blame tool to the codebase, which uses the GitHub GraphQL API to fetch blame information for a file, including author details, commit SHA, message, and line ranges. The tool supports specifying the repository owner, name, file path, and git reference, defaulting to the repository's default branch if not provided. (pkg/github/repositories.go)
  • Registered the new get_file_blame tool in the default toolset group so it is available for use alongside other repository tools. (pkg/github/tools.go)

Documentation and Tool Snapshots

  • Updated README.md to document the new get_file_blame tool, including its parameters and usage.
  • Added a tool snapshot definition for get_file_blame for validation and testing purposes. (pkg/github/__toolsnaps__/get_file_blame.snap)
Screenshot 2025-12-04 at 18 09 06 Screenshot 2025-12-04 at 18 11 28

Closes: #504

Copilot AI review requested due to automatic review settings December 4, 2025 18:26
@MayorFaj
MayorFaj requested a review from a team as a code owner December 4, 2025 18:26

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a new get_file_blame tool that enables users to retrieve git blame information for files in GitHub repositories using the GraphQL API. The implementation includes comprehensive test coverage, proper error handling, and complete documentation updates.

Key Changes

  • Added GetFileBlame function that queries GitHub's GraphQL API to retrieve blame information showing who last modified each line of a file
  • Integrated the new tool into the default toolset alongside other repository management tools
  • Created comprehensive unit tests covering successful operations, error scenarios, and edge cases like missing default branches

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.

Show a summary per file
File Description
pkg/github/repositories.go Implements the GetFileBlame tool with GraphQL queries for default branch resolution and blame data retrieval, including proper type conversions and JSON response formatting
pkg/github/tools.go Registers GetFileBlame in the DefaultToolsetGroup for availability in the standard tool collection
pkg/github/repositories_test.go Adds comprehensive test coverage including tool schema validation, default branch handling, specific ref queries, and error scenarios
pkg/github/toolsnaps/get_file_blame.snap Tool schema snapshot documenting the API surface with ReadOnly annotation
README.md Documents the new tool with parameter descriptions and usage information

@MayorFaj
MayorFaj marked this pull request as draft December 4, 2025 18:36
@MayorFaj
MayorFaj force-pushed the feat/git-blame-tool branch from 1222293 to 8e494d9 Compare December 4, 2025 19:15
@MayorFaj
MayorFaj marked this pull request as ready for review December 4, 2025 19:16
@MayorFaj

MayorFaj commented Dec 5, 2025

Copy link
Copy Markdown
Contributor Author

cc @SamMorrowDrums, @JoannaaKL

@gallejesus

Copy link
Copy Markdown

Just wanted to add a +1 to this PR! 👍

Having a git blame tool would be incredibly helpful for giving AI agents much better context. I understand you are busy, but I would love to see this merged when a maintainer has some bandwidth.

Thanks for the hard work!

@JoannaaKL

Copy link
Copy Markdown
Collaborator

Hi @MayorFaj could you please resolve conflicts in this pr? :)

@MayorFaj

Copy link
Copy Markdown
Contributor Author

Hi @MayorFaj could you please resolve conflicts in this pr? :)

Hi @JoannaaKL , conflicts resolved

JoannaaKL