this repo has no description
at master 4.2 kB view raw
1{ 2 pkgs, 3 inputs, 4 config, 5 ... 6}: { 7 programs.gh = { 8 enable = true; 9 10 extensions = with pkgs; [ 11 gh-dash 12 gh-eco 13 gh-actions-cache 14 ]; 15 16 settings.aliases.co = "pr checkout"; 17 settings.aliases.patch = "!patch2pr"; 18 settings.version = "1"; 19 }; 20 21 # manual.manpages.enable = true; 22 23 home.packages = [ 24 # pkgs.git-branchless 25 pkgs.git-gone 26 pkgs.git-cliff 27 # pkgs.git-revise 28 # pkgs.gitAndTools.git-imerge 29 # pkgs.prr 30 inputs.self.packages.${pkgs.stdenv.hostPlatform.system}.prr 31 pkgs.hut 32 inputs.self.packages.${pkgs.stdenv.hostPlatform.system}.imbox 33 # pkgs.radicle-node 34 ]; 35 36 programs.git = { 37 enable = true; 38 39 diff-so-fancy.enable = true; 40 lfs.enable = true; 41 42 attributes = [ 43 "*.ex diff=elixir" 44 "*.exs diff=elixir" 45 "mix.lock merge=binary" 46 47 "*.erl diff=erlang" 48 "*.hrl diff=erlang" 49 "rebar.lock merge=binary" 50 51 "*.tex diff=tex" 52 53 "*.rs diff=rust" 54 "Cargo.lock merge=binary" 55 56 "*.css diff=css" 57 58 "*.md diff=markdown" 59 60 "flake.lock merge=binary" 61 62 "yarn.lock merge=binary" 63 64 "*.lockb diff=lockb" 65 ]; 66 67 ignores = inputs.self.lib.readFileWithComments ./git/ignore; 68 69 aliases = { 70 b = "branch"; 71 ca = "commit --amend"; 72 ci = "commit"; 73 co = "checkout"; 74 rci = "commit --amend --reuse-message HEAD"; 75 76 lg = "log --color --graph --abbrev-commit --pretty=simple-oneline"; 77 78 squash = "!git rebase -i \"$(git merge-base HEAD \"$(git default-branch)\")\""; 79 80 st = "status -sb"; 81 todo = "grep -Ee '\\\\bTODO:?\\\\b'"; 82 fixme = "grep -Ee '\\\\bFIX(ME)?:?\\\\b'"; 83 84 default-branch = "!git symbolic-ref --short refs/remotes/origin/HEAD | sed 's|^origin/||'"; 85 86 cleanup = "!git branch --format=\"%(if:notequals=*)%(HEAD)%(then)%(if:notequals=\${1:-$(git default-branch)})%(refname:lstrip=2)%(then)%(refname:lstrip=2)%(end)%(end)\" --merged \"\$(git default-branch)\" | xargs -rpxL1 git branch -d"; 87 }; 88 89 extraConfig = { 90 core.commitGraph = true; 91 92 init.defaultBranch = "master"; 93 94 user = { 95 name = "Łukasz Jan Niemier"; 96 useConfigOnly = true; 97 }; 98 99 merge = { 100 ff = false; 101 conflictstyle = "zdiff3"; 102 }; 103 104 branch.autoSetupRebase = "always"; 105 106 commit = { 107 gpgSign = true; 108 verbose = true; 109 cleanup = "scissors"; 110 }; 111 112 diff = { 113 indentHeuristic = true; 114 algorithm = "histogram"; 115 mnemonicPrefix = true; 116 renames = "copies"; 117 118 tool = "difftastic"; 119 120 markdown.xfuncname = "^(#+\\s+.*)$"; 121 122 lockb = { 123 textconv = "${pkgs.bun}/bin/bun"; 124 binary = true; 125 }; 126 }; 127 128 difftool = { 129 prompt = false; 130 131 difftastic.cmd = "${pkgs.difftastic}/bin/difft \"$LOCAL\" \"$REMOTE\""; 132 }; 133 134 pager.difftool = true; 135 136 fetch.prune = true; 137 138 tag = { 139 forceSignAnnotated = true; 140 sort = "version:refname"; 141 }; 142 143 versionsort.suffix = ["" "-rc" "-pre"]; 144 145 push = { 146 default = "simple"; 147 autoSetupRemote = true; 148 followTags = true; 149 gpgSign = "if-asked"; 150 }; 151 152 pull = { 153 rebase = true; 154 twohead = "ort"; 155 }; 156 157 rebase = { 158 autostash = true; 159 autosquash = true; 160 updateRefs = true; 161 }; 162 163 url."git@github.com:".pushInsteadOf = ["https://github.com/" "git://github.com/"]; 164 165 sendemail = { 166 smtpserver = "${config.programs.msmtp.package}/bin/msmtp"; 167 bcc = config.accounts.email.accounts.hauleth.address; 168 annotate = true; 169 }; 170 171 maintenance = { 172 # It will ask 1password for access to SSH key/GH token. That is 173 # irritating 174 prefetch.enabled = false; 175 }; 176 177 pretty = { 178 simple-oneline = "%C(yellow)%h%C(auto)%d %s [%C(green)%aN <%aE>%C(reset)] (%C(blue)%ar%C(reset))"; 179 simple-oneline-sign = "%C(yellow)%h%C(auto)%d %s [%C(green)%aN <%aE>%C(reset)] (%C(blue)%ar%C(reset)) %G?"; 180 }; 181 182 branchless."revsets.alias".work = "heads(draft())"; 183 }; 184 }; 185}