- Add git-credential-oauth package for OAuth authentication - Configure OAuth helpers for GitHub, GitLab, BitBucket - Add token-based authentication for Overleaf - Remove disabled credential helper configuration - Support secure browser-based OAuth flows and token storage 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
157 lines
No EOL
3.2 KiB
Nix
157 lines
No EOL
3.2 KiB
Nix
{ config, pkgs, ... }:
|
|
|
|
{
|
|
# Enable git-credential-oauth for GitHub, GitLab, BitBucket
|
|
programs.git-credential-oauth = {
|
|
enable = true;
|
|
};
|
|
programs.git = {
|
|
enable = true;
|
|
|
|
userName = "Yan Lin";
|
|
userEmail = "github@yanlincs.com";
|
|
|
|
ignores = [
|
|
# Claude Code
|
|
"**/.claude/settings.local.json"
|
|
|
|
# macOS
|
|
".DS_Store"
|
|
".AppleDouble"
|
|
".LSOverride"
|
|
"Icon"
|
|
"._*"
|
|
".DocumentRevisions-V100"
|
|
".fseventsd"
|
|
".Spotlight-V100"
|
|
".TemporaryItems"
|
|
".Trashes"
|
|
".VolumeIcon.icns"
|
|
".com.apple.timemachine.donotpresent"
|
|
|
|
# Editors
|
|
".vscode/"
|
|
".idea/"
|
|
"*.swp"
|
|
"*.swo"
|
|
"*~"
|
|
".vim/"
|
|
|
|
# Development
|
|
"node_modules/"
|
|
".env"
|
|
".env.local"
|
|
".env.*.local"
|
|
"*.log"
|
|
"npm-debug.log*"
|
|
"yarn-debug.log*"
|
|
"yarn-error.log*"
|
|
|
|
# Python
|
|
"__pycache__/"
|
|
"*.py[cod]"
|
|
"*$py.class"
|
|
".Python"
|
|
"build/"
|
|
"develop-eggs/"
|
|
"dist/"
|
|
"downloads/"
|
|
"eggs/"
|
|
".eggs/"
|
|
"lib/"
|
|
"lib64/"
|
|
"parts/"
|
|
"sdist/"
|
|
"var/"
|
|
"wheels/"
|
|
"*.egg-info/"
|
|
".installed.cfg"
|
|
"*.egg"
|
|
|
|
# Temporary files
|
|
"*.tmp"
|
|
"*.temp"
|
|
"*.bak"
|
|
"*.backup"
|
|
"*~"
|
|
|
|
# OS generated files
|
|
"Thumbs.db"
|
|
"ehthumbs.db"
|
|
"Desktop.ini"
|
|
"$RECYCLE.BIN/"
|
|
];
|
|
|
|
extraConfig = {
|
|
# Platform-specific credential configuration
|
|
credential = {
|
|
# OAuth platforms (handled by git-credential-oauth)
|
|
"https://github.com".helper = "oauth";
|
|
"https://gitlab.com".helper = "oauth";
|
|
"https://bitbucket.org".helper = "oauth";
|
|
|
|
# Token-based platforms
|
|
"https://git.overleaf.com".helper = "store";
|
|
"https://git.overleaf.com".username = "git";
|
|
};
|
|
|
|
core = {
|
|
editor = "nvim";
|
|
autocrlf = "input";
|
|
ignorecase = false;
|
|
};
|
|
|
|
init.defaultBranch = "main";
|
|
|
|
push = {
|
|
default = "simple";
|
|
autoSetupRemote = true;
|
|
};
|
|
|
|
pull = {
|
|
rebase = true;
|
|
};
|
|
|
|
merge = {
|
|
conflictstyle = "diff3";
|
|
};
|
|
|
|
diff = {
|
|
colorMoved = "default";
|
|
};
|
|
|
|
status = {
|
|
showUntrackedFiles = "all";
|
|
};
|
|
};
|
|
|
|
aliases = {
|
|
st = "status";
|
|
co = "checkout";
|
|
br = "branch";
|
|
ci = "commit";
|
|
unstage = "reset HEAD --";
|
|
last = "log -1 HEAD";
|
|
visual = "!gitk";
|
|
|
|
# Better logging
|
|
lg = "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit";
|
|
lga = "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --all";
|
|
|
|
# Quick operations
|
|
up = "pull --rebase";
|
|
cm = "commit -m";
|
|
ca = "commit --amend";
|
|
|
|
# Show changes
|
|
d = "diff";
|
|
dc = "diff --cached";
|
|
ds = "diff --stat";
|
|
|
|
# Stash operations
|
|
sl = "stash list";
|
|
sp = "stash pop";
|
|
ss = "stash save";
|
|
};
|
|
};
|
|
} |