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.
Arguments
- message
A commit message describing the changes.
- files
Optional character vector of file paths to stage and commit. Use
"."to stage all changed files. IfNULL, commits currently staged files.- _intent
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.
See also
Other git tools:
btw_tool_git_branch_checkout(),
btw_tool_git_branch_create(),
btw_tool_git_branch_list(),
btw_tool_git_diff(),
btw_tool_git_log(),
btw_tool_git_status()
Examples
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: 9b5b3f9
#> Message: Initial commit
