# This is the default configuration for Git
[user]
  name = Andrei Jiroh Halili
  email = ajhalili2006@andreijiroh.xyz
  signingkey = 67BFC91B3DA12BE8

[commit]
  gpgSign = true
	template = ~/.config/git/commit-message-templates/default
[tag]
  gpgSign = true
	forceSignAnnotated = true

[format]
  signOff = true

# https://groups.google.com/g/binary-transparency/c/f-BI4o8HZW0
[transfer]
  fsckobjects = true
[fetch]
  fsckobjects = true
[receive]
  fsckObjects = true

# authentication hellscape
[credential "https://github.com"]
	helper = 
	helper = !/usr/bin/gh auth git-credential
[credential "https://gist.github.com"]
	helper = 
	helper = !/usr/bin/gh auth git-credential
[credential "https://gitlab.com"]
	helper = 
	helper = !/usr/bin/glab auth git-credential
[credential "https://mau.dev"]
	helper = 
	helper = !/usr/bin/glab auth git-credential
[credential "https://gitlab.alpinelinux.org"]
	helper = 
	helper = !/usr/bin/glab auth git-credential

# sendemail stuff (https://go.recaptime.eu.org/sendgmail)
[sendemail]
    smtpServer = /home/ajhalili2006/go/bin/sendgmail
    smtpServerOption = -sender=ajhalili2006@gmail.com

# repo init chores
[init]
	defaultBranch = main

# aliases
[url "git@git.sr.ht:"]
  insteadOf = https://git.sh.rt
  pushInsteadOf = https://git.sh.rt
# TODO: Set up aliases for ther Git hosts, like in Launchpad.net

# aliases
[alias]
    #change-commits = "!f() { VAR=$1; OLD=$2; NEW=$3; shift 3; git filter-branch --env-filter \"if [[ \\\"$`echo $VAR`\>    signoff = "commit --signoff"
    ammend = "commit --amend"
    #stage = "add"
    unstage = "restore --staged"
    stats = "status"
    sdiff = !git diff && git submodule foreach 'git diff'
    spush = push --recurse-submodules=on-demand
    supdate = submodule update --remote --merge
    skip-ci = push -o ci.skip -o skip-ci
    root = rev-parse --show-toplevel
    signoff-commit = commit --signoff
    signoff = signoff-commit
    remotes = remote -v
[filter "lfs"]
	clean = git-lfs clean -- %f
	smudge = git-lfs smudge -- %f
	process = git-lfs filter-process
	required = true
[core]
#	editor = flatpak run re.sonny.Commit

# project-specific configurations
#[includeIf "gitdir/i:~/git-projects/sandbox"]
#  path = ~/.config/git/ajhalili2006-experiments.include.gitconfig
#[includeIf "gitdir/i:~/projects/labs.andreijiroh.dev"]
#  path = ~/.config/git/ajhalili2006-experiments.include.gitconfig
[includeIf "gitdir/i:~/git-projects/recaptime.dev/"]
  path = ~/.config/git/recaptime-dev.include.gitconfig
[includeIf "gitdir/i:~/projects/recaptime.dev/"]
  path = ~/.config/git/recaptime-dev.include.gitconfig
[includeIf "gitdir/i:/workspaces/recaptime.dev/"]
  path = ~/.config/git/recaptime-dev.include.gitconfig
[includeIf "gitdir/i:~/projects/recaptime-dev/"]
  path = ~/.config/git/recaptime-dev.include.gitconfig
[includeIf "gitdir/i:/workspaces/recaptime-dev/"]
  path = ~/.config/git/recaptime-dev.include.gitconfig
[includeIf "gitdir/i:/var/git/recaptime-dev/"]
  path = ~/.config/git/recaptime-dev.include.gitconfig
[includeIf "gitdir/i:/workspaces/lorebooks.wiki/"]
  path = ~/.config/git/recaptime-dev.include.gitconfig
[includeIf "gitdir/i:/workspaces/lorebooks-wiki/"]
  path = ~/.config/git/recaptime-dev.include.gitconfig
#[includeIf "gitdir/i:~projects/"]
#  path = ~/.config/git/ajhalili2006.include.gitconfig
[trailer "sign"]
	key = "Signed-off-by: "
	ifmissing = add
	ifexists = doNothing
	command = echo \"$(git config user.name) <$(git config user.email)>\"