MCPcopy
hub / github.com/Aider-AI/aider / get_commit_message

Method get_commit_message

aider/repo.py:326–373  ·  view source on GitHub ↗
(self, diffs, context, user_language=None)

Source from the content-addressed store, hash-verified

324 return self.repo.git_dir
325
326 def get_commit_message(self, diffs, context, user_language=None):
327 diffs = "# Diffs:\n" + diffs
328
329 content = ""
330 if context:
331 content += context + "\n"
332 content += diffs
333
334 system_content = self.commit_prompt or prompts.commit_system
335
336 language_instruction = ""
337 if user_language:
338 language_instruction = f"\n- Is written in {user_language}."
339 system_content = system_content.format(language_instruction=language_instruction)
340
341 commit_message = None
342 for model in self.models:
343 spinner_text = f"Generating commit message with {model.name}"
344 with WaitingSpinner(spinner_text):
345 if model.system_prompt_prefix:
346 current_system_content = model.system_prompt_prefix + "\n" + system_content
347 else:
348 current_system_content = system_content
349
350 messages = [
351 dict(role="system", content=current_system_content),
352 dict(role="user", content=content),
353 ]
354
355 num_tokens = model.token_count(messages)
356 max_tokens = model.info.get("max_input_tokens") or 0
357
358 if max_tokens and num_tokens > max_tokens:
359 continue
360
361 commit_message = model.simple_send_with_retries(messages)
362 if commit_message:
363 break # Found a model that could generate the message
364
365 if not commit_message:
366 self.io.tool_error("Failed to generate commit message!")
367 return
368
369 commit_message = commit_message.strip()
370 if commit_message and commit_message[0] == '"' and commit_message[-1] == '"':
371 commit_message = commit_message[1:-1].strip()
372
373 return commit_message
374
375 def get_diffs(self, fnames=None):
376 # We always want diffs of index and working dir

Calls 4

WaitingSpinnerClass · 0.85
token_countMethod · 0.45
tool_errorMethod · 0.45