mirror of
https://github.com/Aider-AI/aider.git
synced 2025-06-01 10:14:59 +00:00
Merge 1f3a9cf984
into 3caab85931
This commit is contained in:
commit
929f58f645
4 changed files with 44 additions and 4 deletions
|
@ -398,6 +398,12 @@ def get_parser(default_config_files, git_root):
|
||||||
|
|
||||||
##########
|
##########
|
||||||
group = parser.add_argument_group("Git settings")
|
group = parser.add_argument_group("Git settings")
|
||||||
|
group.add_argument(
|
||||||
|
"--auto-commit-message",
|
||||||
|
action=argparse.BooleanOptionalAction,
|
||||||
|
default=True,
|
||||||
|
help="Enable/disable automatic LLM commit message generation for auto-commits and '/commit' without message.",
|
||||||
|
)
|
||||||
group.add_argument(
|
group.add_argument(
|
||||||
"--git",
|
"--git",
|
||||||
action=argparse.BooleanOptionalAction,
|
action=argparse.BooleanOptionalAction,
|
||||||
|
|
|
@ -335,6 +335,7 @@ class Coder:
|
||||||
file_watcher=None,
|
file_watcher=None,
|
||||||
auto_copy_context=False,
|
auto_copy_context=False,
|
||||||
auto_accept_architect=True,
|
auto_accept_architect=True,
|
||||||
|
auto_commit_message=True,
|
||||||
):
|
):
|
||||||
# Fill in a dummy Analytics if needed, but it is never .enable()'d
|
# Fill in a dummy Analytics if needed, but it is never .enable()'d
|
||||||
self.analytics = analytics if analytics is not None else Analytics()
|
self.analytics = analytics if analytics is not None else Analytics()
|
||||||
|
@ -348,6 +349,7 @@ class Coder:
|
||||||
|
|
||||||
self.auto_copy_context = auto_copy_context
|
self.auto_copy_context = auto_copy_context
|
||||||
self.auto_accept_architect = auto_accept_architect
|
self.auto_accept_architect = auto_accept_architect
|
||||||
|
self.auto_commit_message = auto_commit_message
|
||||||
|
|
||||||
self.ignore_mentions = ignore_mentions
|
self.ignore_mentions = ignore_mentions
|
||||||
if not self.ignore_mentions:
|
if not self.ignore_mentions:
|
||||||
|
@ -434,6 +436,7 @@ class Coder:
|
||||||
fnames,
|
fnames,
|
||||||
None,
|
None,
|
||||||
models=main_model.commit_message_models(),
|
models=main_model.commit_message_models(),
|
||||||
|
auto_commit_message=self.auto_commit_message,
|
||||||
)
|
)
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
pass
|
pass
|
||||||
|
|
|
@ -74,6 +74,7 @@ class GitRepo:
|
||||||
subtree_only=False,
|
subtree_only=False,
|
||||||
git_commit_verify=True,
|
git_commit_verify=True,
|
||||||
attribute_co_authored_by=False, # Added parameter
|
attribute_co_authored_by=False, # Added parameter
|
||||||
|
auto_commit_message=True,
|
||||||
):
|
):
|
||||||
self.io = io
|
self.io = io
|
||||||
self.models = models
|
self.models = models
|
||||||
|
@ -86,6 +87,7 @@ class GitRepo:
|
||||||
self.attribute_commit_message_author = attribute_commit_message_author
|
self.attribute_commit_message_author = attribute_commit_message_author
|
||||||
self.attribute_commit_message_committer = attribute_commit_message_committer
|
self.attribute_commit_message_committer = attribute_commit_message_committer
|
||||||
self.attribute_co_authored_by = attribute_co_authored_by # Assign from parameter
|
self.attribute_co_authored_by = attribute_co_authored_by # Assign from parameter
|
||||||
|
self.auto_commit_message = auto_commit_message
|
||||||
self.commit_prompt = commit_prompt
|
self.commit_prompt = commit_prompt
|
||||||
self.subtree_only = subtree_only
|
self.subtree_only = subtree_only
|
||||||
self.git_commit_verify = git_commit_verify
|
self.git_commit_verify = git_commit_verify
|
||||||
|
@ -208,10 +210,11 @@ class GitRepo:
|
||||||
if message:
|
if message:
|
||||||
commit_message = message
|
commit_message = message
|
||||||
else:
|
else:
|
||||||
user_language = None
|
if coder and self.auto_commit_message:
|
||||||
if coder:
|
user_language = coder.get_user_language() if coder else None
|
||||||
user_language = coder.get_user_language()
|
commit_message = self.get_commit_message(diffs, context, user_language)
|
||||||
commit_message = self.get_commit_message(diffs, context, user_language)
|
else:
|
||||||
|
commit_message = None
|
||||||
|
|
||||||
# Retrieve attribute settings, prioritizing coder.args if available
|
# Retrieve attribute settings, prioritizing coder.args if available
|
||||||
if coder and hasattr(coder, "args"):
|
if coder and hasattr(coder, "args"):
|
||||||
|
|
|
@ -1433,6 +1433,34 @@ This command will print 'Hello, World!' to the console."""
|
||||||
# (because user rejected the changes)
|
# (because user rejected the changes)
|
||||||
mock_editor.run.assert_not_called()
|
mock_editor.run.assert_not_called()
|
||||||
|
|
||||||
|
def test_auto_commit_message_flag(self):
|
||||||
|
with GitTemporaryDirectory():
|
||||||
|
repo = git.Repo()
|
||||||
|
fname = Path("test.txt")
|
||||||
|
fname.touch()
|
||||||
|
|
||||||
|
# Test with auto_commit_message=True (default)
|
||||||
|
io = InputOutput(yes=True)
|
||||||
|
coder = Coder.create(
|
||||||
|
self.GPT35,
|
||||||
|
"diff",
|
||||||
|
io=io,
|
||||||
|
fnames=[str(fname)],
|
||||||
|
auto_commit_message=True,
|
||||||
|
)
|
||||||
|
assert coder.repo.auto_commit_message is True
|
||||||
|
|
||||||
|
# Test with auto_commit_message=False
|
||||||
|
io = InputOutput(yes=True)
|
||||||
|
coder = Coder.create(
|
||||||
|
self.GPT35,
|
||||||
|
"diff",
|
||||||
|
io=io,
|
||||||
|
fnames=[str(fname)],
|
||||||
|
auto_commit_message=False,
|
||||||
|
)
|
||||||
|
assert coder.repo.auto_commit_message is False
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue