From 90a8b92cef5f091e2d2276c297bbbef3e71800ac Mon Sep 17 00:00:00 2001 From: kevin_mesiab Date: Tue, 16 Jan 2024 20:20:41 -0800 Subject: [PATCH] feat: Add emojis to console output * Update the GPT model to gpt-4-1106-preview --- README.md | 4 ++++ assets/cadre-cli-screenshot.png | Bin 0 -> 55554 bytes go.sum | 7 ------ main.go | 40 +++++++++++++++++++------------- 4 files changed, 28 insertions(+), 23 deletions(-) create mode 100644 assets/cadre-cli-screenshot.png diff --git a/README.md b/README.md index cf00d06..3a1b3ce 100644 --- a/README.md +++ b/README.md @@ -72,6 +72,10 @@ To review a pull request, run the following command: ./cadre --url [url to github pull request] ``` +ex: + +![Screenshot](./assets/cadre-cli-screenshot.png) + or ```bash diff --git a/assets/cadre-cli-screenshot.png b/assets/cadre-cli-screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..c9f7f1fd1443e2eb6397b0a4419db4bc146f9b91 GIT binary patch literal 55554 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

- zQC1pMM{t=NaG@mhkF1{u#d5%k=WGFf0g>04Mgf<95j(TSHqaN}eTjw&u1^U4(9X zK!ws=xECgomsG)A($;4}&CAE*xD!p9-RB|Hhado92LSG3_QwyU&exmUO3pD3Kw!eg z?5jv=zYaxJik@Mk411I90ff&zG%;rU%MCFq#K-3M1`n2fNgNzxjB`l7xvfTaBnU*E zvZlkpL=&GWqz=DwfC)AGuuIO`i^r>7l_F@2Duf5^uk85Li)9hcB-;}?In#wKN#=4A z^~Q<=|7LgT4f%8ZZvs~{q$T)E;K&5`{Frl_=^im|48Iz^ET|KUOxrohtmKq$gL;6CJg!0w#5%K=z-`S0u4^80~_n=G;98#>0vd17cDy(K^E7eSpq_><1C+R>FJAYtPWTPEeA9aIr**{c% z%L}oR05xjo-LJY4YdD5tA0n-DX7~xni?30=rJho(JZ#a4)IlJ;! zpPl|%gXU^wHqh0ic68&F^xR6ae#vhdlcU-F z`;3kRpEW`$ik`mK;tMUfNWU-Vx}{#jKAr?plc-@h+;^&(a7vC6o<>wzNcgwe_z~4P z5a{|fAYmtMz(X_-1wM+8R$cUcfHPMhnB$k6_=<6m-^Rhx$!#r0n5EMaHN$nD;l>Dm zQD=H`R22l0K4ipB1r%)#BB6vrNZAhob3{1Swm)jw8e&2(c4=2sXGc8A9G0Ih0fr{f7Oy+ z-K^#W?1$WM=3Lc8t@RrE-XAPk>PC72tzt+D^-;%g9rYVOc|cdDK5+Q#tcw>VQSv}= zK>@A-^~Jj<(n{c)U2U4$n@S?;g<4G6gGASP@}?IQj`;59WGTZ#pD$a@*Bi$AQEra5 z2DtmOwhF?Y@^t@@J>$72ROP?v1SI^|y8qmkUk`r-P5!qX1?Ws!QKHF@WdVF!9VWrx z|2CnRyeI&#mKn}aPPZ>p2sgc3*N?tYxeQYM?;Btf9DxxhrLSLolE)4Pd5qS7W3F{~ zannu7#$?^OOGIij0#ek-LJ5ui_-+`G{wC4oaXqr}fafxdm`W-%4mj{n7EUL2vax>-Sjo?Tt;Eo|tp1aEJXt;W_15OZ zCU9&v?I-SR!mbk%B)ieUwZ1lm>K*!?Ox9SL`}f)4?l$;kBxBZYW5n77*n*vmyCb_XfB)Ed^Linb5H+pP?Fey%Q9}4h zHc=~sMsaCTbT34}d2LHuC`?<4Zfc7)CA=XSfp#OZ@z^E_Dt@Rvjp0=jo5FU@J&`8C z)6Ve)KCGx5uXS*W3XnOGN9pd5A_fJ8&>5hofRm|^E-R+-LSU0{{u>@z>MoZ9pGfscFv4i?T=0cz?c z{452jJmk*V$y+$Od5jN*Yo8Hf0qXyWP}Z30t=it823 zd%Ek6toIcpxxH(xZn*&xSD)ltE?W*D4pM{)Xf3at(;~b9k3!SSRgS@pb^s_&1o#PP z$?+Kv0KtD3L$571Rr`NUU3oZEUmqWgZL-8zvX2;ptl8I)ovdS*ow0?nmUV0m*|TIB zveW35rNWP74tSH0fncmKKn+;g6L&biNX?q~Ua4tq+~ zz%gf;FMqDVv;@MbD-z%W^e3L+l-dZ~R8J~tI%72L1(LACu13Hs{6vZK?FMdq@_np{52|i;wksCQ6&)!OARbaO_sXwk-Ijf{116Mnt4;9L3hv6 zP>^W}Hy#SL_rlf!8ODu^C?>DR&_DXQvNdQI{QYnQYx4OMDsCRoZkoW#z1rl6ym@$0 zBg^&TQ5W?~yh{t+C> zkdVhfbyN;%K(Q1{%W4a%q?`rkh?(3n*jDE(dDPA9i|++&%8el@q;u+Ni>Y&w8J03dpN zGHgZMXO{(VWB;D8`mw#u>n&OQW}ZZ1E-YwSU+#jDX0LBCi9TuIbavn!+wX0?gZ)RZ zj&I>g#9sJ=<aGCca zTy)%Ss+FNDSy!pRbt;rhI&ji=o%vf>2K%rI{xAzKy!03%056VK>rM`v=VNtV+NH}k z%uxM>Av1a^*O;oJ@WXVPoT#QG)Tz6uQOeJY{geD~*qkd1XWBd@*a88EH_qZ^XG`YHUYfevG~6!m#gSbYv4haaqjxS3 zu>rhmKJw%IDR@?=)0eo!fgG*^A!PF)?Jx2Q=QL_bKwLVXCTUk9T4t}^&J1|&(iOp* zKhFS0^n^zUI7g$_1hXj&hbS+%<-D3K6`JZxofo@l6>z+xvRA|GMf!_aSfJvWz!mUy zVaSX}P2E<}%7k-r+*5Fpq`yqdsp2NCor%JXdYTU{OJihT$5{_$!g;F4K;di^D^OdG z02c$1^bE>VAsVATdG@U!GC1u*Lx-(%OWtHk3cW>hbLYt<89nk6U%m;%6={R$wSOa= zDEaO;;VGL`;<{8Yn81J=1h9RJGP-=~7uLDNx0i;5+sea3I5msH%g#x=ckd#uOZg%a z1cI>YX{sX!=@wR4L>C@_MT)n&y0mr`bKWQ~Rddycl#KtAOSVzr{XiQlWZbe_Gq=gQ znXiqB>BD@PbePM^FjujaAxHF#ubZ;qlD-nSi681Bl9Z*wb5ifP;tbWq0c3 z_tpMIC6N(p!H;sI6DlnXvYkPQNu&Sp11SvlO}brkWb%!Gh%Kl0ZoOK6pm2Uc2{~50 zLU3t&{MgreE;JVUl3bo)a;V5>WiTmtJzv0HvO?%3w8q zdbOS1^2Obtlm;h6YX}D>v;ksl{lzj48rxdR2a*`Do0vbTQJoy`1l=Cr@}8;})mrHj zRm-4_)*gUR;;b_r2_i{QoF@klDRr`Q*g{;sHLUEE>+Kj@IuCa(K?Pvl64}kTBpsAA zGWE%fHpIRGDH4F#`;m`}|La;S^LCPr@p_(L7vHWwP(HOgaZiOo^wA?B{XkW)_uD%w zU5p_S(j{Nollg^ug0Wx+#o-`@55Ztl+gHlRBX+3hTt3n=PzR9`j_*<)7;0%!2K2j*E*%pNue3X zdU+4Z=LWIg@>@I_D(-N^32R5FwzB9F)b9UrdAx3h7|rI0%4Cxm872xtDn=6(X593u z*qe$7eR!?X-f988F)xHSVX97}T6xwtaUn5>6bW56)tK0|i zq^_9=d37sPn~OiW#=-7S=8RY7c*(>gDE7g!pXPJ81Q(VoyjCS7x{WSpgA5_t#hyft zs4j~Sj)&f=(AISb)Eb5}>aKvfw?KOPy=2TC*k`XA)l#G~PK>&f^Lb5W!uM@J2*3b^ z8x)h6)npv7=3eAyA2IGu9;Ks?g*s;MFF!TEIKK|vC&hV&(;)DW@`NlmJkM0UUCk6n z;)0jIi{J5kzmxLQCe0jk8pD^}*Y{X9d3OB#ZnrKCUvZKodd!vSk6G6k%n~#&HkQ%x z-wd0r6CaW@ks3SNS0dLJUI>UJ5>xC#g;0)1w}{C%c(1%x%zFu0yh6&sa~ie(`%Geu z6(Gr2dqaXCO=_hsejgqwXVKtU@8(X5`!(bJku<<%-*|o~{3!mYogLFZqDbq87>6}- z4pm42p-*>Qt#r~XV|^rRv30=Nc0Gzx0yOE)>`9!l{#nJ$Y(}D>h!ntkUo@QedU5YV z&?xRAlUxk18k$QxX$ObItFfUtD64A_ z#$vg+j-Z*%m9XIMW+KL_#^wF)Mu^#_tqh+d_aa0oEM}IugYpueXdkwhzw%weBSPP* z)WTT~!-g*qep8XUG~3Kcj_^2gP7TS0_CM>BS)Y7Oo{zq`V8!Nn@F$5u%$7-X`qGp# zo4Z<0fsgW!$0fF-0A1Xbcv#Z#O{s(4^AuxHDPj({PbvV;n1HfIr8P}=x)y~R@^z!w zr=QSIBfZK3Y1{fTpQRNZ{AVA3;@;7*+M+r;g8rd*Yr|_LiVfqU{l;#2fB^jBlL*Hq zao>e$4vA(i6k4;Y#aq#GnLhg`zfDb4JHSO%R>V#HnYkaTY{7}k)8{R>)kKKDz3MXP)W*cO^GT)yqcElk#2LU|{1f(`Ug^ShdvSoX73-y7E9FOB z$8EB;x#{S|Z!y~0I&z?#QZqni)Z5&!T$=1!G}$9*XQKg+3=}s9T-+5=Ir9_H0M@O1 z6S5_pJSVQwlyfSQN@x#234OlSr%M}c;!dexWwX&`43t$wO~;O7{w>^ZPBXc^J}E#z zIZ%2*0bojDUwoWTb^&mGfPqFurLV89U?X)}!L8q8iLFKlV}K=+&_`P&E8jHn(Op+X zf!QY#Re~<0X? zx%mSVc#xnvx|A_&H7cm5`wB2Yg0q~aE2R8^(ncZ7a$c=Zq?~}#7w+s?gSLhsSldKh zlcBsVgIpeXp@F|AHR<*W=`NOo$~wJu%=%sW+Q%RHAAdyDy$GoiVjURm@IQ@{J&+yk zJ^^&ema|mDPA4ly#X4`9N;6y9NS}lEKkXuER&g{eFst^gb2qkCPyL_mTJewQZ3K>M`IqQ@`^<}-66Q)^J=e8k z!M~}_@bV~*_%eXAL9D+&!mpg*fq6gnLU4nX^I!V7*?kO3+x-FVmtA^sj^9HqE9RMP zO(89*+c(a!H_--8Sgmcr1`Y{AfHFl6Sh{CY*0}qL8AKx%SsnPTXPK4n_(n z4%DXNPd)EZo>Ieb&BV z1G}>Q5dC}xQjN5{d}gWm+k4J)z}c1i{pYs>^NoV-YhhKpg)a2^N*>+E=c@wC1n~o- z^xblkMOte)mHq~d@8_+FXvXbOB=60KHV?i&zQ;=X?^y<5WZP=1Wj`vqZ14S|Fp*l^ z?gTAK`?cng95z|2Hs7J(v(2uJ!AUqEw2@aspfK zzNxy7yE_!12dMtWEUX&9yjGv2RE6uy=mC+=2W9~p?jB}Isoaz-UIy3f;^fYs#N>9J YlCiAOE078CmxF*yPs>QNUc)KwzdRhM(*OVf literal 0 HcmV?d00001 diff --git a/go.sum b/go.sum index ae2ce77..45fc4c7 100644 --- a/go.sum +++ b/go.sum @@ -12,18 +12,15 @@ github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= github.com/kmesiab/go-github-diff v0.1.0-alpha h1:Iq05K3nXD/iyh2RGTjKudmI5YDs/nI1I8+ChE27gcN8= github.com/kmesiab/go-github-diff v0.1.0-alpha/go.mod h1:eqE039Qx1HUnJ4hjLBPU9UHE+3KxbEmUOear9QcV12M= -github.com/labstack/gommon v0.3.0 h1:JEeO0bvc78PKdyHxloTKiF8BD5iGrH8T6MSeGvSgob0= github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= github.com/labstack/gommon v0.4.2 h1:F8qTUNXgG1+6WQmqoUWnz8WiEU60mXVVw0P4ht1WRA0= github.com/labstack/gommon v0.4.2/go.mod h1:QlUFxVM+SNXhDL/Z7YhocGIBYOiwB0mXm1+1bAPHPyU= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-colorable v0.1.7 h1:bQGKb3vps/j0E9GfJQ03JyhRuxsvdAanXlT9BTw3mdw= github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= -github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= @@ -45,7 +42,6 @@ github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyC github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad h1:DN0cp81fZ3njFcrLCytUHRSUkqBjfTo4Tx9RJTWs0EY= golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= @@ -58,14 +54,11 @@ golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd h1:xhmwyvizuTgC2qz7ZlMluP20uW+C3Rm0FD/WLDX8884= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.0.0-20201117132131-f5c789dd3221 h1:/ZHdbVpdR/jk3g30/d4yUL0JU9kksj8+F/bnQUVLGDM= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= diff --git a/main.go b/main.go index 2323745..ef3f497 100644 --- a/main.go +++ b/main.go @@ -29,6 +29,8 @@ func main() { os.Exit(cli.Run(new(argT), func(ctx *cli.Context) error { argv := ctx.Argv().(*argT) + printGreeting() + mergedArgs, err := coalesceConfiguration(argv) if err != nil { return fmt.Errorf("couldn't figure out the configuration. %s", err) @@ -40,14 +42,17 @@ func main() { "or set the OPENAI_API_KEY environment variable") } + fmt.Printf("šŸ“” Getting pull request from GitHub...\n") + parsedDiffFiles, err := processPullRequest(mergedArgs.URL, &GithubDiffClient{}) + if err != nil { return err } - fmt.Printf("Processing %d diff files. This may take a while...\n", len(parsedDiffFiles)) + fmt.Printf("\nāŒ› Processing %d diff files. This may take a while...\n\n", len(parsedDiffFiles)) - reviews, err := getCodeReviews(parsedDiffFiles, "gpt-4", mergedArgs.ApiKey, &OpenAICompletionService{}) + reviews, err := getCodeReviews(parsedDiffFiles, "gpt-4-1106-preview", mergedArgs.ApiKey, &OpenAICompletionService{}) if err != nil { return err } @@ -55,7 +60,7 @@ func main() { for _, review := range reviews { if review.Error != nil { - fmt.Printf("ERROR: couldn't get the review for %s: %s\n", + fmt.Printf("āš ļø couldn't get the review for %s: %s\n", path.Base(review.Diff.FilePathNew), review.Error, ) @@ -68,7 +73,7 @@ func main() { err := saveReviewToFile(filename, review.Review) if err != nil { - fmt.Printf("couldn't save the review for %s: %s", + fmt.Printf("āš ļø couldn't save the review for %s: %s\n", filename, err, ) @@ -76,18 +81,10 @@ func main() { continue } - fmt.Printf("Saved review to %s\n", filename) - - if err != nil { - fmt.Printf("couldn't save the review for %s: %s", - filename, - err, - ) - - continue - } + fmt.Printf("šŸ’¾ Saved review to %s\n", filename) } + fmt.Println("Done! šŸ") return nil })) } @@ -98,7 +95,7 @@ func getCodeReviews(diffs []*gh.GitDiff, model, apiKey string, svc CompletionSer for _, diff := range diffs { go func(d *gh.GitDiff) { - fmt.Printf("Processing %s\n", path.Base(d.FilePathNew)) + fmt.Printf("šŸ¤– Getting code review for %s\n", path.Base(d.FilePathNew)) review, err := svc.GetCompletion(d.DiffContents, model, apiKey) @@ -165,7 +162,6 @@ func saveReviewToFile(filename, reviewContent string) error { return fmt.Errorf("failed to write review to file: %s", err) } - fmt.Printf("Saved review to %s\n", filename) return nil } @@ -186,3 +182,15 @@ func coalesceConfiguration(cliArgs *argT) (*argT, error) { return cliArgs, nil } + +func printGreeting() { + fmt.Println(` + _____ ___ ____________ _____ +/ __ \ / _ \| _ \ ___ \ ___| +| / \// /_\ \ | | | |_/ / |__ +| | | _ | | | | /| __| +| \__/\| | | | |/ /| |\ \| |___ + \____/\_| |_/___/ \_| \_\____/ + + `) +}