This tool allows an LLM stage files and create a git commit. This tool uses a
combination of gert::git_add() to stage files and gert::git_commit() to
commit them, which is equivalent to git add and git commit in the
terminal, respectively.
btw_tool_git_commit(message, files = NULL, `_intent` = "")A commit message describing the changes.
Optional character vector of file paths to stage and commit.
Use "." to stage all changed files. If NULL, commits currently staged files.
An optional string describing the intent of the tool use. When the tool is used by an LLM, the model will use this argument to explain why it called the tool.
Returns the commit SHA.
withr::with_tempdir({
gert::git_init()
gert::git_config_set("user.name", "R Example")
gert::git_config_set("user.email", "ex@example.com")
writeLines("hello, world", "hello.md")
res <- btw_tool_git_commit("Initial commit", files = "hello.md")
# What the LLM sees
cat(res@value)
})
#> Created commit: f9d5069
#> Message: Initial commit