From d8281c74d46e369a96801b98fb140e53aaba5432 Mon Sep 17 00:00:00 2001 From: Kevin Stillhammer Date: Wed, 29 Jan 2025 20:24:35 +0100 Subject: [PATCH] Do not expect GITHUB_TOKEN to be set or valid (#65) Fixes: #49 Fixes: #63 This enables use of this action with GHES --- dist/ruff-action/index.js | Bin 1461292 -> 1450194 bytes dist/update-known-checksums/index.js | Bin 1422238 -> 1410205 bytes package-lock.json | 197 +++++++++++---------------- package.json | 4 +- src/download/download-version.ts | 58 +++++++- src/update-known-checksums.ts | 8 +- 6 files changed, 139 insertions(+), 128 deletions(-) diff --git a/dist/ruff-action/index.js b/dist/ruff-action/index.js index 5653a628f406053da4e2f371f189c0755cfdb2f4..703f478b81e5c3058e05538d827f8ffab4d97f94 100644 GIT binary patch delta 17659 zcmd^n4R}+>mFTBC<3C}rjsNfuFct<&#*%CZcCh1sFeZ?KZEQob1tPAcYg-^oLiY;e zfa9>+E&FY{Y4d1u+NRm0+rMqogd`=oP1*z!x@FsxEwtM-ZL(?F?ca7^wn_K3FKwF5 zJ2P`7OSWtv-G1MD-*Y~RtC=%r&YZtF=gi!E;UjtR=??fPZw*R(Vz0a%|p5{jrsC^FI; zFro)T2K>YIHU^*Vv=xDKgKeSG#Nd_dZEMUgzFc;)U@*xdCjP`6EGh>gcOu&OY=lnE z(&;}nVT`u3k&rQ(7#fTo)FMsb+o_bpff4({su9iT*TR~rYlG@Yk2P*hSMsMEJyGU7tcF8D z7rP;3Y)uR?T&Nadv3T@wD5wQJY>OHWBL~=!8aRlZOpQb%6JybY?qU7fp@gOzIvWd( zj2di6LtQX577mSt3>@k}MozEIQk@KrlxJg!3rZH1SAhR_WjWPzuGxS~tx6@_JfJLu z|Mj0`rOW1qbfLPze-)7$xa((SZ%tiJ4zpz-7BOipCaf7OjH}d>!jNmslzj#O%3d8; zLk2?|w@Z(~dJ^Gq@6Z7)V4zS_RHU^!ab`AY zpKkG>AsJC)BBp`+Vt(b6-P_n`XN_n&Bi%=0+@8jSM{IO5M~8#O)HoWpp~abtg(9qf zOBZWfv$lolT7a$fwDA9MG)FKE$xW=&GFwNdgE_5dFFTZoq8++*BhC#NeRboM)t5BO zPS(;Ie6JMWtHgJM_-=IYp_zX;Xtn5ci*JwkzJ-5J zIsD?se(`-weBYK8!{%)_Y#YQ8zU_TmeY2 z=Hffq=AFBG2dBCja{5rv(2f|0+=7XzA&heRHoM!p@hLi_yE$f#BKa(FbRyKX&F(E#Thd4q({kB4_Bt5+s-TcfVXxQH zH6h^sZtV7UAklm3R@ARt)zG-wbIacG{l{)|?_2HabUK_H+V|`|yf@L@yrx-vw}|hx zZvM}@A@Lm)KiV|@1Bu}O3=i)+ws&u8WU_6_)#x~uZ6+jZBw?RRdDGcAt+maT)~@li z;<9G0Tdvxf!P?#MUj>CFoCz81OEQo1F3BA^WgiMovS{yK=d9JZ=A)ULWOfsqO4-<$ z77VFw0f`322ROVArYDB@GpACtB_%92PTpz(@OH~C(+C$h2XVZl`<4uD3$ae^_0Ddr z_j2}oQOAeXMA%?m(TIWjIY-2uNGz@$#-A*%#WdWUg2+GNrEuHF_$3;#bjli?KDZMd z7GFj?YiMW^US&!+AiZ5gEYqG0UE8ExIzP{FT+?pVoU_q+Qf^6iT^87tQm8&Pu4_!N zh8e}yn&c8Zb_T~U?)C9GSQ*CRh)E=30D>u~vXb}sohP?89nOA_ z*1-opRal6oF4%TZo3Nh5ZfHFtu?dZHR!r32?Fp;8vCZPJU=8ma9}R_3w3vMG%%U>| ztR2w;NrAhh$Sq!RKq(qK;5f0f9TtO9D`UgaI3gBovQ~sh1PQA<<<`BYd7me& zMMjKKB!)3u3KAiRfkVg2E9%55l1+Qo?Bg^`LPXD==96!{Qd*0Aifd!h!p%Dvp8>Rwu?$q`rl%%m$TNXBnz(2T$Ac*v10B;T+V85{BJPZ z|Ld$)ownK}qp%7gw}Py!N-6RGmzF#AM_X=^%k%L#yXo?rYAS0|g^uH>+!~tLv|Ufy z=gh)z0QwAFvyVlCiLmC8*_rM+vK@O;7_yA7vC=pMo24CaS3_>OS@Wavl|gvR&~Hx_{+hF7S(=YXE{ zqUKF^m)LDftc?P*(*V|sJZd~3w=WpGr{tR5S32X6hWn%DR);ZTb&p1)2fg9YkT? zyL4+MhBn4%G}wd&F0pD@s*)p?zZ_(x);aZ{oA{{SF(GZRC zU|JUhT>3U`hM!)fhk5iRNlfdu0w@vQ!0}6Tf1y*Fp%hCGD5a?BDub05J8b?s-D-*BgI}kW*5l{CPPbT(zy3OX zsoZ%GF>vNute5ip**ECPt^qWwL|BdU>I^PIu1&WZx1!qeYAU*ifr+u9XxQmU!pj1t zMD)<}DV=!rdHUdzu4p)nbs$uSOsw$b=PAoi&H~SWllD%babt;P4C|&z4}>KPUR&a} zE~$~0eT4R#-*{g6z6~C{pmdo3aY6Y^z2EYMgWdf-zU_1Qu3-%A-N*`_)QXJT zEu4LdK0B|_aUj11EjA~5KhH0>c!Xh~n$90+>L&u~g^L`A&RrHuv#%CzJjl0zLVAzd<1|J? zx<`VgQZ0tWr&>{)o8gI1(_Qe9bG9OL^JnOMHab2!+ zaaH$ARrl}i?jP9J+k>Py=2P*-R*<0ktq0Z#4-v8&{^>kj*pLO`B&$D~ZV^t`YBD;qsxAp7(GS#6QttJr9TyH9v_;Xfo~G$Nv%f#uGKM)FkzM_UZGMj4mWz zp0x~X@Y3US8LVwsPy+c+(6UO#hH!PVa>3JuAeM9jMmt=1j8u(9XJ`>5&d@SwK0^zarveFPIReYAbh35L%{b=v5>k_gl`sAWH=V&H z>u2coaOw>8Kk`1sO zA>i0kw0haxU|f#S@`If6LLq*qWIep}6s@mGPTZb6&+WI?*JOv=zCs;v<}A%~Tg*r* z0ak?8HeZum`V7K6aOo>_X>o>px#e&I;QL>utFCNLn;jnh3au%=3hXz@ zZk^5IDX)~9hfCRoxvJRJWfI2?;EEW*L+6w z`Lp!Uf;!YB>qG!HhV4tHu(N+m&Kh6o8iuc_ z{2Id;%(z|7>DgpZAnJbljRU zeh0x9kE;`#62rq<+}Z51EO#=QrbqDLA&r}9%oL8wT4;)JDMPd`hZ>9F>4ES&-UB*! zK4O6lQqF=6auMl(dLT5mT0leVbF>TY|8;pDnwvOW;d&~ahV*RwH%uPPUtVqjr1mkf zEdV`7R~1ROrsL{D{5S;ee~#AhAmSU((dCO#zmwv(P=Mzgt>*nVpQ9^VoQFl6AY?2L zSwh1T*y!>c!2HGOXkrf6Wc^WzeR4l*htuci@r)SDT=!MFURjtP$c)4BH}J;D`@cp% zm92f#dD=0R0gqa;S)R7(&SdV?luY1K(IE=%UBs{>aWyu2C_E#E&BfCqOvix-vFOKm z1lwXk`qN3ff=ISlAtkWmO=YS1(KnUHZE*Pa%6$q(2tB`7>Pm#5bS_jW+)4OEIVpqv zZz_w-*0+>;#m={7y!VvQI^fYe?MvW+KPXGgkH4+lNz1Yk1dR&$S@xb{LXI?K8#A8H zUm0e=C(dKs`XV6DN zz)rC)7d-VjrDlzI=FwQnEgo*cdt2OR%u-#cfs)h z))C=b|63`alCFanGBI>YPug1X_RCsi-n+z}CA&vd_$McfM5A0l&LXRXgpr)+fQi$} zYAYA}>}kbqJ$~=BvhwB`M9x%9o(LiqQ9|go?g1V}qvIh&D8Qzzcm|#h^VY|eUS(k{ zoWT2sm{hSn`#Q{@no6w=il0D7am+k$NFVFZ|YAgAGH;U>jByzzwzfol{eR%QLdvH^mHcm;GuUg zA#M)|X2cV?3_NaJwSbgWWItmNebuh)G-JvNJ5JHnbJYUPUlkCq&2%gv zpP}Zri^%6}=7|zAl~couU2eRrhB{+Rcu{ADLn8^4C7Lq)sDi9qH4lL9J(?TG@TTHG)DcfLsQ@?aHN&a(FVL%~U} z9FRiwKbNWocbkGn#D|x6_{|yIZ%43o5=v?jWzVZ57rw}!-mE5`#j{rkbxTR@RWA;r z)noy9K23_?TT5}j#wR=c@P3jHE*EzAYsduL`7p`P#o#R-3UHdM;6o3S+?)iz;>&5P zgF9E_$O|<{+dB`FJUPg%iUXP<|Zo2r}qxk8aSekk@3H@td*EHZ!WCI6OV9&9E5a5Jh0GBNEF9WQs^{_#ypQsmK2Urwozsi(zQLz|&3YJx?3!RUY%9^M+oW6of|@IW_k2emEI8y^96kgR~{D9N46OWi>naPeMJ2>b3O z>tJIX)vY;19Ol_Az;TKaQ%~xsAM! z!r9&#aNEmPmhRp1+g4KW8ECz4(3s#w$@wF5yrab>8D7i=h@saS=ufycK;2hta`z zA1Tet3Yuqu3Xr1RYCNPy3?J5XC-jgmvED;Ui!pTP9d1?h;9V?RoR-4Che;ex-H%du z{%&;1FCRe(vIp?#>_^a_)ZT+KdioJ;yZB-9R%&|RCy9##*kPlSR3zs&zkD~Tuod6| zf}{aLca!U|yb{zfJ)Ai^-ywO2-|Fzgsk=#Sr5u@}p0jXJ)ek~)#*!_UMI_f3(&ZM3 z2>8~D|M;;$t;KOy;6GsJW?cNgkD}mya1S{^mJL`teLDtEyn=&UsTvsVvbKFV^dPC* zb7ece*nY+25(h7)GPX|^SY=ap1n(5Y;vrp2pP&L9m87cm-OVC|zc7hThAEd~w7hLT zbPkIu89ZkW-v1a`Li&0KV0k5}Mej9NGz6-LmggtO!p{52iYtvCe9I{s80y{(y7|;n z6FEb!2HT>bmLWDy&2@9r9?`vWK!%J^fs@Nop|2f}FZw<~7F-P(rRgYm#JD9Ihf4VVW+<)RcH3^?^m zvV7Zoqmh;3LbpDXidndL2+h~B;tJ3~$t~zUd&4xRD5UAg#}r9dFB%NRSHRobXr91V zCGpL+MN8-jPY~z<4!YQMcR*2f%dNs;Zg|*t$BDvgsy2U}h9oO74FVj+a z$Fvv9DwetD;Krx)?Gk1`ueMC*IJ4)1yM}1#46A--oG!f@KJaZdw;_voI8WNy9^qCQ zbKuRjuC2f-NzJ;eWQ|l*v+ZN#Z%T157P0yck)PcC2U;)km3kSv>nTr}4#m}R5Tku) z*^f0x4BY9`tkHcE2R!`{`9+D`2t>p$Cj)MnVm2mPlXInk%${kUJi`3s!(?Uo0=y13 zkQmyg>j@1meU)5S%!B$6|7lsM`RqCJn>;(7kXvw2GC~@l?;NR^4g2u(h>%=@ z(6DF;?P^RR%&>UeUgM!CX3e2nH4Cu@EstB6OH+e%uLU<@F1|p%LChB}k-xH;;TOnG z1-|-u;)H^i$Y$`pOkOk>zd|c`oYq)F9$Bi&bIy*CT!3{Y0*JK$y z@EX|zFWf}S%-DYrQ<=q)Z@!MfA)jX5988yY@#g3I+Bb++>J>RO7L1XuI6C8G=q00( z-uOsgJRM>Jcs$dBN|Tm)^KnUg!I$RneZyJfpsoeC@cm9xIT(QA^y-gM`M*?8AILR7 zv6`CsT=`4k*ag(jcW$CZ=I^heMpd4rj^Me4G&<(fP0NuE_0Z??%mcgWnUZQL#J+?+ z+J~==%Ik%jCU}LEJEK*w;~G-DB!=B?{#vQ*cMk~wr0=0eP?s^~aB#Q^2#?a*MSOb= zsFAJ6(rA1FT5coDq30S>v=Cn{iMa6=5pQ;w$4BY`b%1F!e7vz<)8fL$IEW9(tZ6;l)E4Q z0CnWb3cmT757753RwD2HAboBDCtxZ`0G{(CYYu-JTCyHI44Vb_()ZYS6$5TNV_Rgl zbyxhB^4C>D5sklnAJgK-1b@L9lOCO49>mLq{Ljk@tiya>uTC}3!wymPH3vY$stC8|b zw74tSfH#JPdIlT#^(5JY*CXWJJ^X)C%#s!t*5=u8SbLN&pW!>FlDr0SNp6}C1qB&W f5>mgeVR||ErfLd>5y!XLX2?9NSWOh`V&(q;K_3wy delta 16546 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

_#@7UIgTJwNc)oC6e(d@nc9>*O07Rw2-+O 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 v>bF;vh|B5dq{1D(GB?b= 18" } }, "node_modules/@octokit/core": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.0.tgz", - "integrity": "sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg==", + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-6.1.3.tgz", + "integrity": "sha512-z+j7DixNnfpdToYsOutStDgeRzJSMnbj8T1C/oQjB6Aa+kRfNjs/Fn7W6c8bmlt6mfy3FkgeKBRnDjxQow5dow==", "dependencies": { - "@octokit/auth-token": "^4.0.0", - "@octokit/graphql": "^7.1.0", - "@octokit/request": "^8.3.1", - "@octokit/request-error": "^5.1.0", - "@octokit/types": "^13.0.0", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" + "@octokit/auth-token": "^5.0.0", + "@octokit/graphql": "^8.1.2", + "@octokit/request": "^9.1.4", + "@octokit/request-error": "^6.1.6", + "@octokit/types": "^13.6.2", + "before-after-hook": "^3.0.2", + "universal-user-agent": "^7.0.0" }, "engines": { "node": ">= 18" } }, "node_modules/@octokit/endpoint": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.5.tgz", - "integrity": "sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw==", + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.2.tgz", + "integrity": "sha512-XybpFv9Ms4hX5OCHMZqyODYqGTZ3H6K6Vva+M9LR7ib/xr1y1ZnlChYv9H680y77Vd/i/k+thXApeRASBQkzhA==", "dependencies": { - "@octokit/types": "^13.1.0", - "universal-user-agent": "^6.0.0" + "@octokit/types": "^13.6.2", + "universal-user-agent": "^7.0.2" }, "engines": { "node": ">= 18" } }, "node_modules/@octokit/graphql": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.0.tgz", - "integrity": "sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ==", + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.1.2.tgz", + "integrity": "sha512-bdlj/CJVjpaz06NBpfHhp4kGJaRZfz7AzC+6EwUImRtrwIw8dIgJ63Xg0OzV9pRn3rIzrt5c2sa++BL0JJ8GLw==", "dependencies": { - "@octokit/request": "^8.3.0", - "@octokit/types": "^13.0.0", - "universal-user-agent": "^6.0.0" + "@octokit/request": "^9.1.4", + "@octokit/types": "^13.6.2", + "universal-user-agent": "^7.0.0" }, "engines": { "node": ">= 18" } }, "node_modules/@octokit/openapi-types": { - "version": "22.2.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", - "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==" + "version": "23.0.1", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-23.0.1.tgz", + "integrity": "sha512-izFjMJ1sir0jn0ldEKhZ7xegCTj/ObmEDlEfpFrx4k/JyZSMRHbO3/rBwgE7f3m2DHt+RrNGIVw4wSmwnm3t/g==" }, "node_modules/@octokit/plugin-paginate-rest": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.1.tgz", - "integrity": "sha512-wfGhE/TAkXZRLjksFXuDZdmGnJQHvtU/joFQdweXUgzo1XwvBCD4o4+75NtFfjfLK5IwLf9vHTfSiU3sLRYpRw==", + "version": "11.4.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.4.0.tgz", + "integrity": "sha512-ttpGck5AYWkwMkMazNCZMqxKqIq1fJBNxBfsFwwfyYKTf914jKkLF0POMS3YkPBwp5g1c2Y4L79gDz01GhSr1g==", "dependencies": { - "@octokit/types": "^12.6.0" + "@octokit/types": "^13.7.0" }, "engines": { "node": ">= 18" }, "peerDependencies": { - "@octokit/core": "5" - } - }, - "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/openapi-types": { - "version": "20.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", - "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==" - }, - "node_modules/@octokit/plugin-paginate-rest/node_modules/@octokit/types": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", - "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", - "dependencies": { - "@octokit/openapi-types": "^20.0.0" + "@octokit/core": ">=6" } }, "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.4.1.tgz", - "integrity": "sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.3.0.tgz", + "integrity": "sha512-LUm44shlmkp/6VC+qQgHl3W5vzUP99ZM54zH6BuqkJK4DqfFLhegANd+fM4YRLapTvPm4049iG7F3haANKMYvQ==", "dependencies": { - "@octokit/types": "^12.6.0" + "@octokit/types": "^13.7.0" }, "engines": { "node": ">= 18" }, "peerDependencies": { - "@octokit/core": "5" - } - }, - "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/openapi-types": { - "version": "20.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", - "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==" - }, - "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", - "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", - "dependencies": { - "@octokit/openapi-types": "^20.0.0" + "@octokit/core": ">=6" } }, "node_modules/@octokit/request": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.0.tgz", - "integrity": "sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.2.0.tgz", + "integrity": "sha512-kXLfcxhC4ozCnAXy2ff+cSxpcF0A1UqxjvYMqNuPIeOAzJbVWQ+dy5G2fTylofB/gTbObT8O6JORab+5XtA1Kw==", "dependencies": { - "@octokit/endpoint": "^9.0.1", - "@octokit/request-error": "^5.1.0", - "@octokit/types": "^13.1.0", - "universal-user-agent": "^6.0.0" + "@octokit/endpoint": "^10.0.0", + "@octokit/request-error": "^6.0.1", + "@octokit/types": "^13.6.2", + "fast-content-type-parse": "^2.0.0", + "universal-user-agent": "^7.0.2" }, "engines": { "node": ">= 18" } }, "node_modules/@octokit/request-error": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.0.tgz", - "integrity": "sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==", + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.6.tgz", + "integrity": "sha512-pqnVKYo/at0NuOjinrgcQYpEbv4snvP3bKMRqHaD9kIsk9u1LCpb2smHZi8/qJfgeNqLo5hNW4Z7FezNdEo0xg==", "dependencies": { - "@octokit/types": "^13.1.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" + "@octokit/types": "^13.6.2" }, "engines": { "node": ">= 18" } }, "node_modules/@octokit/types": { - "version": "13.6.1", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.6.1.tgz", - "integrity": "sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==", + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.7.0.tgz", + "integrity": "sha512-BXfRP+3P3IN6fd4uF3SniaHKOO4UXWBfkdR3vA8mIvaoO/wLjGN5qivUtW0QRitBHHMcfC41SLhNVYIZZE+wkA==", "dependencies": { - "@octokit/openapi-types": "^22.2.0" + "@octokit/openapi-types": "^23.0.1" } }, "node_modules/@types/node": { @@ -418,14 +382,24 @@ "dev": true }, "node_modules/before-after-hook": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", - "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==" + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-3.0.2.tgz", + "integrity": "sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==" }, - "node_modules/deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" + "node_modules/fast-content-type-parse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-2.0.1.tgz", + "integrity": "sha512-nGqtvLrj5w0naR6tDPfB4cUmYCqouzyQiz6C5y/LtcDllJdrcc6WaWW6iXyIIOErTa/XRybj28aasdn4LkVk6Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ] }, "node_modules/js-yaml": { "version": "4.1.0", @@ -439,14 +413,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, "node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -488,9 +454,9 @@ } }, "node_modules/undici": { - "version": "5.28.4", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", - "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", + "version": "5.28.5", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.5.tgz", + "integrity": "sha512-zICwjrDrcrUE0pyyJc1I2QzBkLM8FINsgOrt6WjA+BgajVq9Nxu2PbFFXUrAggLfDXlZGZBVZYw7WNV5KiBiBA==", "dependencies": { "@fastify/busboy": "^2.0.0" }, @@ -506,9 +472,9 @@ "license": "MIT" }, "node_modules/universal-user-agent": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", - "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==" + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.2.tgz", + "integrity": "sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==" }, "node_modules/uuid": { "version": "3.4.0", @@ -518,11 +484,6 @@ "bin": { "uuid": "bin/uuid" } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" } } } diff --git a/package.json b/package.json index 3bf56ee..f4291b3 100644 --- a/package.json +++ b/package.json @@ -24,8 +24,10 @@ "dependencies": { "@actions/core": "^1.11.1", "@actions/exec": "^1.1.1", - "@actions/github": "^6.0.0", "@actions/tool-cache": "^2.0.1", + "@octokit/core": "^6.1.3", + "@octokit/plugin-paginate-rest": "^11.4.0", + "@octokit/plugin-rest-endpoint-methods": "^13.3.0", "smol-toml": "^1.3.1" }, "devDependencies": { diff --git a/src/download/download-version.ts b/src/download/download-version.ts index 4b9b7c6..e899129 100644 --- a/src/download/download-version.ts +++ b/src/download/download-version.ts @@ -5,7 +5,11 @@ import { promises as fs } from "node:fs"; import { OWNER, REPO, TOOL_CACHE_NAME } from "../utils/constants"; import type { Architecture, Platform } from "../utils/platforms"; import { validateChecksum } from "./checksum/checksum"; -import * as github from "@actions/github"; +import { Octokit } from "@octokit/core"; +import { paginateRest } from "@octokit/plugin-paginate-rest"; +import { restEndpointMethods } from "@octokit/plugin-rest-endpoint-methods"; + +const PaginatingOctokit = Octokit.plugin(paginateRest, restEndpointMethods); export function tryGetFromToolCache( arch: Architecture, @@ -84,8 +88,26 @@ export async function resolveVersion( } async function getAvailableVersions(githubToken: string): Promise { - const octokit = github.getOctokit(githubToken); + try { + const octokit = new PaginatingOctokit({ + auth: githubToken, + }); + return await getReleaseTagNames(octokit); + } catch (err) { + if ((err as Error).message.includes("Bad credentials")) { + core.info( + "No (valid) GitHub token provided. Falling back to anonymous. Requests might be rate limited.", + ); + const octokit = new PaginatingOctokit(); + return await getReleaseTagNames(octokit); + } + throw err; + } +} +async function getReleaseTagNames( + octokit: InstanceType, +): Promise { const response = await octokit.paginate(octokit.rest.repos.listReleases, { owner: OWNER, repo: REPO, @@ -94,15 +116,37 @@ async function getAvailableVersions(githubToken: string): Promise { } async function getLatestVersion(githubToken: string) { - const octokit = github.getOctokit(githubToken); - - const { data: latestRelease } = await octokit.rest.repos.getLatestRelease({ - owner: OWNER, - repo: REPO, + const octokit = new PaginatingOctokit({ + auth: githubToken, }); + let latestRelease: { tag_name: string } | undefined; + try { + latestRelease = await getLatestRelease(octokit); + } catch (err) { + if ((err as Error).message.includes("Bad credentials")) { + core.info( + "No (valid) GitHub token provided. Falling back to anonymous. Requests might be rate limited.", + ); + const octokit = new PaginatingOctokit(); + latestRelease = await getLatestRelease(octokit); + } else { + throw err; + } + } + if (!latestRelease) { throw new Error("Could not determine latest release."); } return latestRelease.tag_name; } + +async function getLatestRelease( + octokit: InstanceType, +) { + const { data: latestRelease } = await octokit.rest.repos.getLatestRelease({ + owner: OWNER, + repo: REPO, + }); + return latestRelease; +} diff --git a/src/update-known-checksums.ts b/src/update-known-checksums.ts index 43939de..e066e50 100644 --- a/src/update-known-checksums.ts +++ b/src/update-known-checksums.ts @@ -1,16 +1,20 @@ -import * as github from "@actions/github"; +import { Octokit } from "@octokit/core"; import * as core from "@actions/core"; +import { paginateRest } from "@octokit/plugin-paginate-rest"; +import { restEndpointMethods } from "@octokit/plugin-rest-endpoint-methods"; import { OWNER, REPO } from "./utils/constants"; import * as semver from "semver"; import { updateChecksums } from "./download/checksum/update-known-checksums"; +const PaginatingOctokit = Octokit.plugin(paginateRest, restEndpointMethods); + async function run(): Promise { const checksumFilePath = process.argv.slice(2)[0]; const github_token = process.argv.slice(2)[1]; - const octokit = github.getOctokit(github_token); + const octokit = new PaginatingOctokit({ auth: github_token }); const response = await octokit.paginate(octokit.rest.repos.listReleases, { owner: OWNER,