Skip to content

Conversation

@MayorFaj
Copy link
Contributor

@MayorFaj MayorFaj commented Dec 4, 2025

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 finished reviewing on behalf of MayorFaj December 4, 2025 18:28
Copy link
Contributor

Copilot AI left a comment

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
Copy link
Contributor Author

MayorFaj commented Dec 5, 2025

cc @SamMorrowDrums

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

git blame tool (to get the latest contributors of the class)

1 participant