From afc55c0eeddd708a94300f2baf0877a265d2a5e8 Mon Sep 17 00:00:00 2001 From: Nicco Kunzmann Date: Sun, 21 Jun 2026 10:25:39 +0100 Subject: [PATCH] fix: ensure newline before gitignore entry --- ai_prompt_auto_commit/prepare_repository.py | 5 ++++- tests/test_prepare_repository.py | 8 ++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/ai_prompt_auto_commit/prepare_repository.py b/ai_prompt_auto_commit/prepare_repository.py index 6c8b238..dcea87f 100644 --- a/ai_prompt_auto_commit/prepare_repository.py +++ b/ai_prompt_auto_commit/prepare_repository.py @@ -56,9 +56,12 @@ def prepare_repository( # Add .prompts/ to the root .gitignore root_gitignore = repo_root / ".gitignore" pattern = f"/{prompts_directory}/" - existing = root_gitignore.read_text(encoding="utf-8").splitlines() if root_gitignore.exists() else [] + existing_text = root_gitignore.read_text(encoding="utf-8") if root_gitignore.exists() else "" + existing = existing_text.splitlines() if pattern not in existing: with root_gitignore.open("a", encoding="utf-8") as fh: + if existing_text and not existing_text.endswith("\n"): + fh.write("\n") fh.write(f"{pattern}\n") print(f"Added '{pattern}' to {root_gitignore}") else: diff --git a/tests/test_prepare_repository.py b/tests/test_prepare_repository.py index 84089c0..d9ff0fd 100644 --- a/tests/test_prepare_repository.py +++ b/tests/test_prepare_repository.py @@ -44,6 +44,14 @@ def test_root_gitignore_existing_content_preserved(repo: Path) -> None: assert f"/{PROMPTS_DIRECTORY}/" in content +def test_root_gitignore_newline_added_when_missing(repo: Path) -> None: + (repo / ".gitignore").write_text("*.pyc", encoding="utf-8") # no trailing newline + prepare_repository() + lines = (repo / ".gitignore").read_text(encoding="utf-8").splitlines() + assert f"/{PROMPTS_DIRECTORY}/" in lines + assert lines[0] == "*.pyc" + + # --------------------------------------------------------------------------- # get_default_claude_settings # ---------------------------------------------------------------------------