- Add .gitattributes to force LF in mock files (Windows autocrlf)
- Fix parse.go: detect line endings from content instead of runtime.GOOS
- Add fail-fast: false to CI matrix; trigger on all branch pushes
- Skip chmod-based tests on Windows (permissions work differently)
- Use filepath.Join for expected paths in Windows path tests
- Use platform-appropriate invalid paths in error tests
- Add Windows absolute path test case for ValidateSheetName
- Skip Unix-specific integration tests on Windows
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Resolve symlinks in temp dir paths (macOS /var -> /private/var)
- Pre-create non-empty community dir to ensure clone fails reliably
regardless of network access on CI runners
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Bump Go from 1.19 to 1.26 and update all dependencies
- Rewrite CI workflow with matrix strategy (Linux, macOS, Windows)
- Update GitHub Actions to current versions (checkout@v4, setup-go@v5)
- Update CodeQL actions from v1 to v3
- Fix cross-platform bug in mock/path.go (path.Join -> filepath.Join)
- Clean up dependabot config (weekly schedule, remove stale ignore)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Refactor `installer.clone` into new `repo.Clone` package and method.
- Refactor `sheets.isGitDir` into `repo.GitDir`.
Both of these changes read better, and will facilitate cleaner
architecture when `--update` is implemented.
Integrate `go-git` into the application, and use it to `git clone`
cheatsheets when the installer runs.
Previously, the installer required that `git` be installed on the system
`PATH`, so this change has to big advantages:
1. It removes that system dependency on `git`
2. It paves the way for implementing the `--update` command
Additionally, `cheat` now performs a `--depth=1` clone when installing
cheatsheets, which should at least somewhat improve installation times
(especially on slow network connections).
- Fix an issue whereby `make clean` filed to remove assets created by
`make generate`.
- Fix a subsequent issue whereby `make generate` was being run too late
in the `make build` target, which resulted in a build failure.
Fix an issue whereby a default installation (as created by the
installer) would (seemingly) fail to output colorized text, even when
the `-c` flag was passed.
The root cause of the problem was that the installer did not set a
default `style` for `chroma`, which in turn defaulted to using the `bw`
(black-and-white) style.
Thus, colorization actually *was* being applied with `-c` - it was
simply black and white!
Fix an issue whereby colorization would output ANSI codes if a pager was
not configured.
The solution here is to stop guessing about the state of the user's
system at runtime, as well as the user's intention. The installer now
chooses an appropriate installer when generating configs, and no longer
bothers searching for pagers at runtime.