about summary refs log tree commit diff
path: root/pkgs/applications/version-management/git-credential-manager
diff options
context:
space:
mode:
authorSophie Tauchert <sophie@999eagle.moe>2023-06-09 15:46:27 +0200
committerSophie Tauchert <sophie@999eagle.moe>2023-06-21 17:30:27 +0200
commitfe8e9b8926f1684c5bc15f40f134a2c910fbf08e (patch)
tree4a0ba8dd92c54cc24f1cedb9a91e11776ff3187a /pkgs/applications/version-management/git-credential-manager
parentc3be5083f72db3cc09b2cd968dec4582170bb300 (diff)
git-credential-manager: init at 2.1.2
Diffstat (limited to 'pkgs/applications/version-management/git-credential-manager')
-rw-r--r--pkgs/applications/version-management/git-credential-manager/default.nix50
-rw-r--r--pkgs/applications/version-management/git-credential-manager/deps.nix86
-rwxr-xr-xpkgs/applications/version-management/git-credential-manager/update.sh24
3 files changed, 160 insertions, 0 deletions
diff --git a/pkgs/applications/version-management/git-credential-manager/default.nix b/pkgs/applications/version-management/git-credential-manager/default.nix
new file mode 100644
index 0000000000000..155feb25fa8e7
--- /dev/null
+++ b/pkgs/applications/version-management/git-credential-manager/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, fetchFromGitHub
+, buildDotnetModule
+, dotnetCorePackages
+, libX11
+, libICE
+, libSM
+, fontconfig
+, libsecret
+, gnupg
+, pass
+, withGuiSupport ? true
+, withLibsecretSupport ? true
+, withGpgSupport ? true
+}:
+
+assert withLibsecretSupport -> withGuiSupport;
+buildDotnetModule rec {
+  pname = "git-credential-manager";
+  version = "2.1.2";
+
+  src = fetchFromGitHub {
+    owner = "git-ecosystem";
+    repo = "git-credential-manager";
+    rev = "v${version}";
+    hash = "sha256-PeQ9atSCgSvduAcqY2CnNJH3ucvoInduA5i8dPUJiHo=";
+  };
+
+  projectFile = "src/shared/Git-Credential-Manager/Git-Credential-Manager.csproj";
+  nugetDeps = ./deps.nix;
+  dotnet-sdk = dotnetCorePackages.sdk_6_0;
+  dotnet-runtime = dotnetCorePackages.runtime_6_0;
+  dotnetInstallFlags = [ "--framework" "net6.0" ];
+  executables = [ "git-credential-manager" ];
+
+  runtimeDeps = [ fontconfig ]
+    ++ lib.optionals withGuiSupport [ libX11 libICE libSM ]
+    ++ lib.optional withLibsecretSupport libsecret;
+  makeWrapperArgs = lib.optionals withGpgSupport [ "--prefix" "PATH" ":" (lib.makeBinPath [ gnupg pass ]) ];
+
+  passthru.updateScript = ./update.sh;
+
+  meta = with lib; {
+    description = "Secure, cross-platform Git credential storage with authentication to GitHub, Azure Repos, and other popular Git hosting services.";
+    homepage = "https://github.com/git-ecosystem/git-credential-manager";
+    license = with licenses; [ mit ];
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ _999eagle ];
+  };
+}
diff --git a/pkgs/applications/version-management/git-credential-manager/deps.nix b/pkgs/applications/version-management/git-credential-manager/deps.nix
new file mode 100644
index 0000000000000..87806d1fd6243
--- /dev/null
+++ b/pkgs/applications/version-management/git-credential-manager/deps.nix
@@ -0,0 +1,86 @@
+# This file was automatically generated by passthru.fetch-deps.
+# Please dont edit it manually, your changes might get overwritten!
+
+{ fetchNuGet }: [
+  (fetchNuGet { pname = "Avalonia"; version = "11.0.0-preview6"; sha256 = "14m7bg6ric8hpa2kmkhff6hpljfa73snbkj8fqida7hfd0nhggyl"; })
+  (fetchNuGet { pname = "Avalonia.Angle.Windows.Natives"; version = "2.1.0.2023020321"; sha256 = "1az4s1g22ipak9a3xfh55z2h3rm6lpqh7svbpw6ag4ysrgsjjsjd"; })
+  (fetchNuGet { pname = "Avalonia.Controls.ColorPicker"; version = "11.0.0-preview6"; sha256 = "12lps97bqgd65z0y4d73ql2rcxaaaylb2x8fqvkb2jbrd76n30wz"; })
+  (fetchNuGet { pname = "Avalonia.Controls.DataGrid"; version = "11.0.0-preview6"; sha256 = "1kk4ids80gzkf8llasmcairmmz6yfsi7mbld21gb3sdwdf0wf92y"; })
+  (fetchNuGet { pname = "Avalonia.Desktop"; version = "11.0.0-preview6"; sha256 = "18rabqzs5namzi0y6435blm6j54cnwsc8bkq2daj9bim5njy56pm"; })
+  (fetchNuGet { pname = "Avalonia.Diagnostics"; version = "11.0.0-preview6"; sha256 = "0l9c7zakk17xyag9cl9nxq4j6wzlr6kgzzwpl7zwj7f3vypxlp6v"; })
+  (fetchNuGet { pname = "Avalonia.FreeDesktop"; version = "11.0.0-preview6"; sha256 = "0ni3y5qkpsz2s5hflkipwmpmb21b2mfs6h06rrvrq95m4l0bil7i"; })
+  (fetchNuGet { pname = "Avalonia.Native"; version = "11.0.0-preview6"; sha256 = "0m1zbcbypj06xkmyjx56smh5smi02gdvn6xbqi92k185aiiwicj1"; })
+  (fetchNuGet { pname = "Avalonia.Remote.Protocol"; version = "11.0.0-preview6"; sha256 = "0wws5z8vmagzh7x47mlgf780579d5zqv0hyd649sycdxkaadcz5r"; })
+  (fetchNuGet { pname = "Avalonia.Skia"; version = "11.0.0-preview6"; sha256 = "15572ibkb7ihgdmcxzj3avb1g4lcqrjxdxgf66ifvfyjj49vfi8h"; })
+  (fetchNuGet { pname = "Avalonia.Themes.Fluent"; version = "11.0.0-preview6"; sha256 = "1hm8ax9bq7vj458f2lrcppv3ylc6zmmdwp6zkbf2s6fv7nhvpmgf"; })
+  (fetchNuGet { pname = "Avalonia.Themes.Simple"; version = "11.0.0-preview6"; sha256 = "1b1y2a3bkwz38a5nvwqhw23gp10a63046qiprapyxp589gbkf8cj"; })
+  (fetchNuGet { pname = "Avalonia.Win32"; version = "11.0.0-preview6"; sha256 = "0img9zmrppikzgw48j5a3svcrv9skbh13wzrdqnk0648n8fgj9k4"; })
+  (fetchNuGet { pname = "Avalonia.X11"; version = "11.0.0-preview6"; sha256 = "04923qvlpgszr1zlcg0pfxzsgqgdjcrpqgkqlrlp62ac6yv8dr9g"; })
+  (fetchNuGet { pname = "HarfBuzzSharp"; version = "2.8.2.3"; sha256 = "115aybicqs9ijjlcv6k6r5v0agkjm1bm1nkd0rj3jglv8s0xvmp2"; })
+  (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Linux"; version = "2.8.2.3"; sha256 = "1f18ahwkaginrg0vwsi6s56lvnqvvxv7pzklfs5lnknasxy1a76z"; })
+  (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.macOS"; version = "2.8.2.3"; sha256 = "052d8frpkj4ijs6fm6xp55xbv95b1s9biqwa0w8zp3rgm88m9236"; })
+  (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.WebAssembly"; version = "2.8.2.3"; sha256 = "043hv36bg5240znbm8x5la7py17m4jfzy57q3ka32f6zjld83j36"; })
+  (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Win32"; version = "2.8.2.3"; sha256 = "08khd2jqm8sw58ljz5srangzfm2sz3gd2q1jzc5fr80lj8rv6r74"; })
+  (fetchNuGet { pname = "MicroCom.Runtime"; version = "0.11.0"; sha256 = "0p9c3m0zk59x9dcqw077hzd2yk60myisbacvm36mnwpcjwzjkp2m"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.0.0"; sha256 = "0bbl0jpqywqmzz2gagld1p2gvdfldjfjmm25hil9wj2nq1zc4di8"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "3.8.0"; sha256 = "12n7rvr39bzkf2maw7zplw8rwpxpxss4ich3bb2pw770rx4nyvyw"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "3.8.0"; sha256 = "1kmry65csvfn72zzc16vj1nfbfwam28wcmlrk3m5rzb8ydbzgylb"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp.Scripting"; version = "3.8.0"; sha256 = "0w0yx0lpg54iw5jazqk46h48gx43ij32gwac8iywdj6kxfxm03vw"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Scripting.Common"; version = "3.8.0"; sha256 = "0hjgxcsj5zy27lqk0986m59n5dbplx2vjjla2lsvg4bwg8qa7bpk"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.3.0"; sha256 = "0gw297dgkh0al1zxvgvncqs0j15lsna9l1wpqas4rflmys440xvb"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.4.1"; sha256 = "0z6d1i6xcf0c00z6rs75rgw4ncs9q2m8amasf6mmbf40fm02ry7g"; })
+  (fetchNuGet { pname = "Microsoft.Identity.Client"; version = "4.52.0"; sha256 = "0g7bzzm04lrfar3l1rl1lsb0q1nm0ix5fc24bhm4faxvzdyd3vg7"; })
+  (fetchNuGet { pname = "Microsoft.Identity.Client.Extensions.Msal"; version = "2.28.0"; sha256 = "1z2irqbjqxawyxq2778bcjbj0x8m63dh3lj5m04knq48wl4wh40x"; })
+  (fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "6.22.0"; sha256 = "06495i2i9cabys4s0dkaz0rby8k47gy627v9ivp7aa3k6xmypviz"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.1.2"; sha256 = "1507hnpr9my3z4w1r6xk5n0s1j3y6a2c2cnynj76za7cphxi1141"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
+  (fetchNuGet { pname = "Microsoft.Win32.SystemEvents"; version = "6.0.0"; sha256 = "0c6pcj088g1yd1vs529q3ybgsd2vjlk5y1ic6dkmbhvrp5jibl9p"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.1"; sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb"; })
+  (fetchNuGet { pname = "SkiaSharp"; version = "2.88.3"; sha256 = "1yq694myq2rhfp2hwwpyzcg1pzpxcp7j72wib8p9pw9dfj7008sv"; })
+  (fetchNuGet { pname = "SkiaSharp.NativeAssets.Linux"; version = "2.88.3"; sha256 = "0dajvr60nwvnv7s6kcqgw1w97zxdpz1c5lb7kcq7r0hi0l05ck3q"; })
+  (fetchNuGet { pname = "SkiaSharp.NativeAssets.macOS"; version = "2.88.3"; sha256 = "191ajgi6fnfqcvqvkayjsxasiz6l0bv3pps8vv9abbyc4b12qvph"; })
+  (fetchNuGet { pname = "SkiaSharp.NativeAssets.WebAssembly"; version = "2.88.3"; sha256 = "1w5njksq3amrrp7fqxw89nv6ar2kgc5yx092i4rxv7hrjbd1aagx"; })
+  (fetchNuGet { pname = "SkiaSharp.NativeAssets.Win32"; version = "2.88.3"; sha256 = "03wwfbarsxjnk70qhqyd1dw65098dncqk2m0vksx92j70i7lry6q"; })
+  (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
+  (fetchNuGet { pname = "System.Collections.Immutable"; version = "5.0.0"; sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r"; })
+  (fetchNuGet { pname = "System.CommandLine"; version = "2.0.0-beta1.21216.1"; sha256 = "10p3i10sh9aarqfzac3bgmv9zabb8m5c2aylf3chwlh71kp9l63l"; })
+  (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "4.5.0"; sha256 = "1jj6f6g87k0iwsgmg3xmnn67a14mq88np0l1ys5zkxhkvbc8976p"; })
+  (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
+  (fetchNuGet { pname = "System.Drawing.Common"; version = "6.0.0"; sha256 = "02n8rzm58dac2np8b3xw8ychbvylja4nh6938l5k2fhyn40imlgz"; })
+  (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.3.0"; sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk"; })
+  (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
+  (fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
+  (fetchNuGet { pname = "System.IO.FileSystem.AccessControl"; version = "5.0.0"; sha256 = "0ixl68plva0fsj3byv76bai7vkin86s6wyzr8vcav3szl862blvk"; })
+  (fetchNuGet { pname = "System.IO.Pipelines"; version = "6.0.0"; sha256 = "08211lvckdsdbd67xz4f6cyk76cli565j0dby1grlc4k9bhwby65"; })
+  (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
+  (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
+  (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; })
+  (fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
+  (fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; })
+  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
+  (fetchNuGet { pname = "System.Reflection.Metadata"; version = "5.0.0"; sha256 = "17qsl5nanlqk9iz0l5wijdn6ka632fs1m1fvx18dfgswm258r3ss"; })
+  (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
+  (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; })
+  (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
+  (fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.7.1"; sha256 = "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j"; })
+  (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
+  (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
+  (fetchNuGet { pname = "System.Security.AccessControl"; version = "5.0.0"; sha256 = "17n3lrrl6vahkqmhlpn3w20afgz09n7i6rv0r3qypngwi7wqdr5r"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.ProtectedData"; version = "4.5.0"; sha256 = "11qlc8q6b7xlspayv07718ibzvlj6ddqqxkvcbxv5b24d5kzbrb7"; })
+  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; })
+  (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
+  (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "4.5.1"; sha256 = "1z21qyfs6sg76rp68qdx0c9iy57naan89pg7p6i3qpj8kyzn921w"; })
+  (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
+  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; })
+  (fetchNuGet { pname = "Tmds.DBus.Protocol"; version = "0.14.0"; sha256 = "1j7ifcv621z5kjafs0c1qw4xcgv4kd4hwp0qamhcrllvshd2mabq"; })
+  (fetchNuGet { pname = "Tmds.DBus.SourceGenerator"; version = "0.0.4"; sha256 = "16qa3xi0ip2nvgnjjqj64ppjdrf4p4skrfqzfnb39rp0k7v8smfx"; })
+]
diff --git a/pkgs/applications/version-management/git-credential-manager/update.sh b/pkgs/applications/version-management/git-credential-manager/update.sh
new file mode 100755
index 0000000000000..e1a03f296f1fc
--- /dev/null
+++ b/pkgs/applications/version-management/git-credential-manager/update.sh
@@ -0,0 +1,24 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl jq nix-prefetch nix coreutils gnused
+
+cd "$(dirname "$0")"
+
+set -euo pipefail
+
+latestVersion="$(curl -s "https://api.github.com/repos/git-ecosystem/git-credential-manager/releases?per_page=1" | jq -r ".[0].tag_name" | sed 's/^v//')"
+currentVersion="$(nix-instantiate --eval -E "with import ../../../.. {}; git-credential-manager.version" | tr -d '"')"
+
+if [[ "$latestVersion" == "$currentVersion" ]]; then
+    echo "up to date"
+    exit 0
+fi
+
+echo "updating $currentVersion -> $latestVersion"
+
+sed -i -e "s/version = \"${currentVersion}\"/version = \"${latestVersion}\"/" default.nix
+hash="$(nix-prefetch ./.)"
+sed -i -Ee "s/hash = \"sha256-[A-Za-z0-9=]{44}\"/hash = \"${hash}\"/" default.nix
+
+
+nugetDeps="$(realpath ./deps.nix)"
+$(nix-build ../../../.. -A git-credential-manager.fetch-deps --no-out-link) "$nugetDeps"