From 10611927319d43b65318db4e70f856856f48ea33 Mon Sep 17 00:00:00 2001 From: ian_Cin Date: Wed, 6 Sep 2023 17:19:22 +0700 Subject: [PATCH] [AUR-418] Add member public keys to git-secret: John, Ian, Tadashi, Jacky --- .gitsecret/keys/pubring.kbx | Bin 1966 -> 10882 bytes README.md | 36 ++++++++++++++---------------------- credentials.txt.secret | Bin 486 -> 1811 bytes 3 files changed, 14 insertions(+), 22 deletions(-) diff --git a/.gitsecret/keys/pubring.kbx b/.gitsecret/keys/pubring.kbx index 86a2b56937cf8dbed6bdace86a2b411bfa39d47e..95dcf6f56642f7428120ea1923a29105e55abe92 100644 GIT binary patch literal 10882 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 diff --git a/README.md b/README.md index 19befda..3d3c8cc 100644 --- a/README.md +++ b/README.md @@ -47,15 +47,19 @@ pip install kotaemon@git+ssh://git@github.com/Cinnamon/kotaemon.git ### Credential sharing -This repo uses [ssh-secret](https://sobolevn.me/git-secret/) to share credentials, which internally uses `gpg` to encrypt and decrypt secret files. +This repo uses [git-secret](https://sobolevn.me/git-secret/) to share credentials, which internally uses `gpg` to encrypt and decrypt secret files. #### Install git-secret Please follow the [official guide](https://sobolevn.me/git-secret/installation) to install git-secret. +For Windows users, see [For Windows users](#for-windows-users). + +For users who don't have sudo privilege to install packages, follow the `Manual Installation` in the [official guide](https://sobolevn.me/git-secret/installation) and set `PREFIX` to a path that you have access to. And please don't forget to add `PREFIX` to your `PATH`. + #### Gaining access -In order to gain access to the secret files, you must provide your gpg public file to anyone who has access and ask them to ask your key to the keyring. For a quick tutorial on generating your gpg key pair, you can refer to the `Using gpg` section from the [ssh-secret main page](https://sobolevn.me/git-secret/). +In order to gain access to the secret files, you must provide your gpg public file to anyone who has access and ask them to ask your key to the keyring. For a quick tutorial on generating your gpg key pair, you can refer to the `Using gpg` section from the [git-secret main page](https://sobolevn.me/git-secret/). #### Decrypt the secret file @@ -73,7 +77,7 @@ git-secret reveal [filename] #### For Windows users -ssh-secret is currently not available for Windows, thus the easiest way is to use it in WSL (please use the latest version of WSL2). From there you have 2 options: +git-secret is currently not available for Windows, thus the easiest way is to use it in WSL (please use the latest version of WSL2). From there you have 2 options: 1. Using the gpg of WSL. @@ -89,28 +93,12 @@ ssh-secret is currently not available for Windows, thus the easiest way is to us This enables all permissions for user owner. -2. Using the gpg of Windows but with ssh-secret from WSL. +2. Using the gpg of Windows but with git-secret from WSL. - For those who use Windows as the main environment, having to switch back and forth between Windows and WSL will be inconvenient. You can instead stay within your Windows environment and apply some tricks to use `ssh-secret` from WSL. + For those who use Windows as the main environment, having to switch back and forth between Windows and WSL will be inconvenient. You can instead stay within your Windows environment and apply some tricks to use `git-secret` from WSL. - Install and setup `gpg` on Windows. - - Install `ssh-secret` on WSL. - - Make WSL use the `gpg` executable from Windows. This can be done by alias `gpg` to your Windows executable `gpg.exe` file. Add this content to your startup script: - - ```shell - # Create ~/bin if it doesn't exist - [ ! -d "$HOME/bin" ] && mkdir "$HOME/bin" - - # link windows executable - ln -snf "$(which gpg.exe)" "$HOME/bin/gpg" - - # Prepend $HOME/bin to PATH - if [[ ":$PATH:" == *":$HOME/bin:"* ]]; then - export PATH="$HOME/bin:$PATH" - fi - ``` - - - Now in Windows, you can invoke `ssh-secret` using `wsl ssh-secret`. + - Install `git-secret` on WSL. Now in Windows, you can invoke `git-secret` using `wsl git-secret`. - Alternatively you can setup alias in CMD to shorten the syntax. Please refer to [this SO answer](https://stackoverflow.com/a/65823225) for the instruction. Some recommended aliases are: ```bat @@ -123,6 +111,10 @@ ssh-secret is currently not available for Windows, thus the easiest way is to us DOSKEY gs=wsl git-secret $* ``` + Now you can invoke `git-secret` in CMD using `git-secret` or `gs`. + + - For Powershell users, similar behaviours can be achieved using `Set-Alias` and `profile.ps1`. Please refer this [SO thread](https://stackoverflow.com/questions/61081434/how-do-i-create-a-permanent-alias-file-in-powershell-core) as an example. + ### Code base structure - documents: define document diff --git a/credentials.txt.secret b/credentials.txt.secret index c686370158b38628976569ae6a8f072860610d65..b7b1e4560e799c9dc37c4b3170363ce7ebf61655 100644 GIT binary patch literal 1811 zcmV+u2kiKT0gMB9>i0uNB-FA23;>vn52z02Tc=;6Gu8xdqS&CsJ9hm8B7BxE&EoDD z2ev_tyue|mCxiQf#YZnt=3d2iW+U_Cb|#O27R;UnU#{h z5;;g1Q`@5?8woLt_@bbj?Slf!>6}p8OgVchJ(wEtWP;m6So&MBTjyS;uJj@}H)Bh1 zWe~;+iCOMG!XTrCjakm4f|S-u)G{laVduB;q}T-UupV}tHdiU8K2sidbQ{yXN3RZ* z;QGNFmyCcdn}{{DYAzuSw;HAe&#Hav?FQ^v3^EPVVepJ@3^qiqmOq(1m}Kw{qlPr| zsIGk~A?_#AUTrSR@4z)Y(JB`xi@=T>6PcK;EHp{pZ|9XZ7J#lHT6=n$f0*_g!%!7s zxs=TbzJmCzhj8uVWzx3mACt@FGbT4GxBQe1P5VE`eAKb4Lo&Un7$7y92JpIwQCtzV z_LJKZFxW`*o6e`7&nmUy1OAR^NLX61(%~AaQ2b@kqm@pChKmLKKrMvj`vrd|JW0+p6Hb`}yz(+j9)2=evRIe`LYSB2wAK+Fshg}BWEw9Wx29-9A_DVT zCUHM=XRBJ+uni06Zim5`Wyc|h|BZc-eDd+o#>mt=XWUAMJbc{z@T_t8+2*!pJM4{} zDumO1=ZR@%Dt>@6*y1+XsR!-8ZN3vt86Uwc+~!p_^lIqBi-p}n2i3S~ zs(s=PGXWt2ZnB`)a$cao130-2{aZOfZbTCE)UjD#rCe`+)hi{swqx(;{gw7ADn}X^ zJq=eoQ8Z*}))$?`fK=H-3%$u*<9Qd4wqPN1TVbUP1GLM>I5rONT(TkUZMP$!BTv<3k^TNxN*Nx#d^OdZ<-$= zcE;2TY;^a@=HCvWJ41PJhq5ww$}SKzvxNc-1O6%n@6X$#+yM{&M_AN5(BK0t7nXr7 zR7b*}qJ&F>rasn7@^mZ6595VNBF^S}zer7u#Y3zhqWeE+JTg(IUH5sW^fYGUZsKV1 zordELk&wY)Y%(xv(h^d8y0i_Pl6l`4gdh5Rb)k8%YLk0yX+nr-le^I)s{`}?5jvu}j*do>xlNoc6zPO4oUm+IM{@(3HeoK7}*j)3$vKWzMGErh=&`KE8&%X|j_ zDthGt*p;L5jw@0bkpG$`t5;eDEvp7eu_NkFXiofsZCm8`E~S212W|>azcd75_&4Ae zox`5*K|W8)m3LKyV{4FOglHYi!p_zj1x*XCCVtatg#nBMw)PfJ7lLub0So;S^dLgZ zt`Ukf6Cc>uVn|$0b^AT{+e7C4rN3e=N=?1Ed(t4`=UM><#1KaEf}<`$-y1UW6TM4S z<9xoxVKG9n8=zbJG+uu!`IQ% zqER&%Kxr22YTw$_z5lN_bDIr#@CR`QULPBh zdZRKLz^cT01pmK~+c))PKbd{VE|3U|LFt#y@%sI!N}5xVEts1X%R_3|divz3=F4Jg zt*T5?0?$KD%J;o$siUP+dJZwChI?#Xl5{tPZVc7^>yKOuKsHf3jC^1XiRchZ0%RSO z7b=dgnyFV{@BFW>qS@|Tbu`{_tU^UAh6Jv0{_|3;Y^y*w4c{7PAhe8#8^?s0jv)ld z*=$|Uc`nZRGqS^S6jp@NRRIalrRCqP_l-{N4TeL;mTd6F^|Jeh{pGQPD>BqW%X*Wu zbq@~j4i}$Kf?`6i_l?;UF1R&f{yoCmVR2tad~he}i``SkVPHHMnFL6>jj@_)b&5+= BbY1`e literal 486 zcmV<0gMB9>i0uNB-FA23;>D&*3GeMZCqi(x}8P`CmRNzm;!juW-*?#VVg_Q zO#$f1gXS&F9NYJKwM7M=;z(xB6v&78Xao8$;v-1^V=-c*+FED1U1SJK7sn;on`Awr zECPp+-ekAfB(byzNdK|b%JYrq*gzWvmLq@*M9?%4UOO~niXk`&KX1Ac1ZA5IuczZ1 zXvUopLxOeAkUPsVkZMSy4CHkXdKMl6Jb-WY1DJ=+YVH_IzEGXW+dN;-cZ)L?mi5wj z4>#RewmFK)O8lCmo*^Ay$_s-Mft?vaAffxXy6Wrj*@VXFlGHc&{6uTQ6N#Ai$S-Pv z@+``o+&;7sY>e#~bq?Dd%bV;lNI);Z)s=T2-@nQ(&(PCFi|FV|avXiS3!@Be*3U%= zL}3KVZ)a-6I3NSjcA3ljRXYYr(=#L960-qk|2@9z2vvk%D*KoGR_P;T00!`$t)rr@ z#OfIlz7o9Z;3alB_>{vEb-qiAh3G7nFwH`qSKf#(3L=PM6WdO9f+5mX0oZf1;HxTN zI4!k2P1B6aKn>ug{yzNkn3nGfTpA{=e`dAc)gD!^co#O8&#FlAiNMXl-}xlm(=mo<_A4N9|#s=keAvvDqEZpbC