Skip to content

feat(gitignore): add .gitignore and .gitattributes templates for proj…#405

Merged
samtrion merged 4 commits intomainfrom
feature/gitignore
May 1, 2026
Merged

feat(gitignore): add .gitignore and .gitattributes templates for proj…#405
samtrion merged 4 commits intomainfrom
feature/gitignore

Conversation

@samtrion
Copy link
Copy Markdown
Contributor

@samtrion samtrion commented May 1, 2026

…ect configuration

Summary by CodeRabbit

  • Chores
    • Added standardized Git ignore and attributes templates to enforce consistent repository rules and exclude per-project/tool artifacts (e.g., MemPalace and Beads/Dolt artifacts).
    • Enhanced build automation to distribute those Git configuration templates automatically.
    • Enforced LF line endings and explicit binary file handling to improve cross-platform compatibility.

@samtrion samtrion self-assigned this May 1, 2026
@samtrion samtrion requested a review from a team as a code owner May 1, 2026 11:20
@samtrion samtrion requested review from benwirren and removed request for a team May 1, 2026 11:20
@samtrion samtrion added state:ready for merge Indicates that a pull request has been reviewed and approved, and is ready to be merged into the mai type:feature Indicates a new feature or enhancement to be added. labels May 1, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 1, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 51df15e6-48bb-44c3-9561-421c867f7c60

📥 Commits

Reviewing files that changed from the base of the PR and between e0459bb and c182120.

📒 Files selected for processing (3)
  • .gitignore
  • src/NetEvolve.Defaults/configurations/template.gitattributes
  • src/NetEvolve.Defaults/configurations/template.gitignore
✅ Files skipped from review due to trivial changes (3)
  • .gitignore
  • src/NetEvolve.Defaults/configurations/template.gitattributes
  • src/NetEvolve.Defaults/configurations/template.gitignore

Walkthrough

Appended MemPalace and Beads/Dolt ignores to the repository root .gitignore, added template.gitignore and template.gitattributes to standard configurations, and updated the MSBuild UpdateEditorConfig target to copy those templates into projects via cross-platform shell commands.

Changes

Cohort / File(s) Summary
Root .gitignore
\.gitignore
Appended rules to ignore MemPalace artifacts (.mempalace/, mempalace.yaml, entities.json) and Beads/Dolt artifacts (.dolt/, *.db, .beads-credential-key).
MSBuild Build System
src/NetEvolve.Defaults/buildMultiTargeting/SupportAdditionalFiles.targets
Extended UpdateEditorConfig to also provision .gitignore and .gitattributes from ..\configurations\template.*; computes destination paths and invokes OS-specific copy commands (pwsh on Windows, bash on non-Windows) with error suppression via Exec.
Git Configuration Templates
src/NetEvolve.Defaults/configurations/template.gitattributes, src/NetEvolve.Defaults/configurations/template.gitignore
Added template.gitattributes (enforce LF, mark many extensions as binary, special rules for VerifyTests) and a comprehensive template.gitignore covering IDE, build, test, NuGet, and tool caches. Large new .gitignore content may need spot-review for desired exceptions.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐇 I hopped through configs, light and spry,

dropped ignore rules where they should lie.
Templates tucked into projects' nook,
LF whispers in each saved book.
A tiny rabbit's tidy commit—hop!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically describes the main change: adding .gitignore and .gitattributes templates for project configuration, which aligns with all the file changes shown in the raw summary.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
Review rate limit: 0/1 reviews remaining, refill in 60 minutes.

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/NetEvolve.Defaults/configurations/template.gitattributes`:
- Around line 1-2: Remove the global "text" override line so the repository uses
the intended automatic text detection; specifically delete the second entry ("*
text eol=lf") and keep the first rule ("* text=auto eol=lf") so binary files
still rely on explicit binary exclusions rather than being forced to text.

In `@src/NetEvolve.Defaults/configurations/template.gitignore`:
- Line 13: The gitignore contains backup-file globs with a stray space ("*-
[Bb]ackup.*") so they only match names with a literal space; update all
occurrences of that pattern (e.g., the shown pattern and the ones around lines
276-278) to remove the space so they read "*-[Bb]ackup.*" (matching filenames
like "foo-backup.ext"); ensure you replace every instance of the incorrect "*-
[Bb]ackup.*" pattern in the file.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: a451a625-84a7-4e2c-b153-e376fe281860

📥 Commits

Reviewing files that changed from the base of the PR and between e730305 and e0459bb.

📒 Files selected for processing (4)
  • .gitignore
  • src/NetEvolve.Defaults/buildMultiTargeting/SupportAdditionalFiles.targets
  • src/NetEvolve.Defaults/configurations/template.gitattributes
  • src/NetEvolve.Defaults/configurations/template.gitignore

Comment thread src/NetEvolve.Defaults/configurations/template.gitattributes Outdated
Comment thread src/NetEvolve.Defaults/configurations/template.gitignore
@samtrion samtrion enabled auto-merge (squash) May 1, 2026 11:58
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Signed-off-by: Martin Stühmer <me@samtrion.net>
@samtrion samtrion disabled auto-merge May 1, 2026 16:56
@samtrion samtrion merged commit 5b90979 into main May 1, 2026
12 checks passed
@samtrion samtrion deleted the feature/gitignore branch May 1, 2026 16:56
@codecov
Copy link
Copy Markdown

codecov Bot commented May 1, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 0.00%. Comparing base (e730305) to head (c182120).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@     Coverage Diff     @@
##   main   #405   +/-   ##
===========================
===========================

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

state:ready for merge Indicates that a pull request has been reviewed and approved, and is ready to be merged into the mai type:feature Indicates a new feature or enhancement to be added.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant