From 4bb28032adfa1ee07e1e67f27840d7b23b065dba Mon Sep 17 00:00:00 2001 From: tianzhou Date: Wed, 13 Mar 2024 20:31:22 +0800 Subject: [PATCH 1/5] chore: add screenshot asset --- assets/step1-create-migration-script-pr.webp | Bin 0 -> 43902 bytes assets/step2-create-bytebase-issue.webp | Bin 0 -> 43188 bytes assets/step3-refine-pr.webp | Bin 0 -> 42914 bytes assets/step4-update-bytebase-issue.webp | Bin 0 -> 48986 bytes assets/step5-update-details.webp | Bin 0 -> 25208 bytes assets/step6-approve-pr.webp | Bin 0 -> 49252 bytes 6 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 assets/step1-create-migration-script-pr.webp create mode 100644 assets/step2-create-bytebase-issue.webp create mode 100644 assets/step3-refine-pr.webp create mode 100644 assets/step4-update-bytebase-issue.webp create mode 100644 assets/step5-update-details.webp create mode 100644 assets/step6-approve-pr.webp diff --git a/assets/step1-create-migration-script-pr.webp b/assets/step1-create-migration-script-pr.webp new file mode 100644 index 0000000000000000000000000000000000000000..f5ffdf80307973f15f3502c8ee35ce82b0af5a5e GIT binary patch literal 43902 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%0D$0Ya1B@!9_L;oZ{-Jf8K z_}BJT@zu9t75avqt>t*Z%gbCA&`*C#(DZ%+V1UqoNObL9V4o8EXV}U)v0tTM+51PR zUFI|!LhxYp`_#TdN>L3v373;$3lw%G`g`bY~*jtzz_ff(44D93gZv@ z%+GzF!VtP7@lBuVDO4Q3Zo-GaF&tR8T~Ic8S5Fsef%65?5+O1_G$rW6S?p=MZMR>S zL?S=`zZ;XJMeu&yC|9n{?A-7lRF=Dl_xaUqe*`{Ft~Cf% z1Tm+0Zj>-Oz!N9lFq#MP@Xf5#;;x!)U583TJKoTC-K@eZ{lOjj1QUr482L%q;*sLyjfE5eiMVf2@M|2Bqsz_b9t&Mm3G>82>CA zrrKgOq?L;^fCDGPER^8d$$$!WZZ^9s@$OAgq$hpYTK9!J#AW=O)NU9HS%_l?T7{0v z&{Auj>P=jwSNa!zBoo=APu_Qa&OgzJYv2)@%vrKlTt7b6w&%?dAQ9|a{5o*f@{sen zg7f8ybBj7@2;Rn!Qprs*r(kOvrf(^D!L zQa^h*>yTb;tIT_2YUwUBjvpq`Eevu_{3LJZbqd>v+P8)x3kD9k_zC;)y}}WSAr|I) zVACQHt_?svgA0wqxs;siBva*_Qj1tsVNf88zX!!pMpZ9A&A&@a-MyWPHE2RQ*eIy5 zeuLmmjYJif=ys_+6E~x@9+@4w9nvudy&HDwJTr#db=Kb(s)Wu9%Ov;%eS(@e!u7fl zdSbJ%A`2c*1t^#X`r9Gc8$*Zt8MI+B-p8{mrL>&;AkRUyeKFAx;xts~>KM!H3lkdM zK;NWIi{0liwA<(-eKsYn#W=~H$HT9@{HjF6OAb-#(BWX20{A9G~Bc8b6 zldAO-FX~#?QBASSkm*5>be=)B!Zppfg!B=-oYmFAp8HI;)d@NPF@R7yYdsFSup;Yyu?DV!t9i_`)Vu8fRfg3;ojdxqAaD`7} zoAGhmei$g^s|!qIPoAk_n|QrPkQ<^FNKudt&87Sa`@xsv!Wo&A+ck!E;gudT?5c9~|jQ&|4lG}L2?a$x>3J?j|&{E^MPAQ`=c9C!g9K!Em zy2C`mO%q~3rOc2NoIJ6ncW}j7`ruv|hHFiSof6KCsjeex;5pRWqD&fFVOa4ReRp#1 zDqxv?NCvJc&9DuoYZI&5d%z*giV>qdWf#V^aY;b15Tl&GnS?}C%`DdVl$;}g@ga%< zYiC4uaua;7mmKTjU~a1c7YR8Jowgh zt-ARTZt~ezTh*260!+tw&|GA zLLUD(;zz1xG*E#cG%KZ@%S_`f?zNfJd|fJC`PbN725Yt3TF-eZsXy_tsT zlndY~ni?NYeEL`%XMT&bUC&MizKN^gU#=jy0Fv6@xI975{&N0pZPMlxXZ7ho_jgz# zp4Fw~p}H~Veo0Z7l(JIFFmAKJ+t@>=5nVn!OZ{8wVM|o%^HDm2$9_DRHmx&SM^k4< z=rSt+7@|l%(r)nR)fv1 zXc#6!gjQ3g+amuj}avrRoKS|5!ZOO~(Xfhin%FQote{bh2GLv3~4$(cL zFwZh7i^ZNIoqY~v)u_21`m#v?s)?vRkU_ywTF!$DobVb(0=|cK?3H<`5Iyfb+qyVr z5qSc5@25W(0C0T|qaMDtkK!loN>@fDeU0FZ0T*4R?N54IMd>7C)EF!6HM!h~c&y;Q za})2@e)FY>uI54*mP)CF{N}N@aGQ2aHXTpmhjcBGQYr>+T-jcAi&9k+0pii-N_me# zHUn}^#xxCe_g}!_0&u`5bTaTqG(Z3p$Gh5C)=*JgnZwN~opfVgZ`L(E1qTvV9Kc_3 zK^#}FfIe=D)B&|qyK9nvarX>Cy>dN4zFHQ>qUa_72C@Ko$aPEaK|ay1A6m0|Y#9u7Lx=-5CIlq`=WKL1?s<)PY|rLPnHt#+lri0Z3-!yS5fHIMm12#oyzC zSLaDB8>C>k=RjO)&t_@&NH5?B2XeLPR6%ad%*`J2AaOMdPVrw!cFc37`q)SoT6$5z zYucx|+bTc77HJCXx<)~o=)2nzqh?X0^(6gNu7ie2EJj+3uc_gZepuo!Sr1@u?I0A9 z4w$6rGJoBB<`gFj^s(KNNAq9=ByA%4F##a$`Jp`F+q`4AqC>QxUj6IKHpW|Mu$fj4 zA$_C2oU2tN!3m08uigPfW-&Joc20-@-wT9pwhlbm23gIFEV4iV00meDPyhe`03|GP zwX7Owuat|VyRX_$*BRQWtNa05aIKD;lJvl`sg)2%LfLBVESr?ibraHhPf|Utr|XAD z!~>mY$Bs{}l`Z{ausI_azS|UG?R4vuoFUX6qX}i>0|$MOy2fbcw?LV5L6zOVOO=1= ze4mP$3RKe~Azy$F2F|NQ>-W=P`KCCzCu_gtXZ!t6LlD(5W6T4rZ=*a#>!-&RAzJwR zmZ2N~VU};~Vvgbv0sbWKM6TC@0ep@j8M7~zh*ktP<-5FxplLCI%0y5@ zd7(M5Wx*!#9q0~S1)!Y`y6w`B{>W_AfW?(FFB=+YP(#N7bC#K%#^}A73p&(zip2Hq z#>jx2u_M=uY<%w~gk{Lgi_}2;9_U~16tTTXa1UI;0&ZI-P72Xpy<@H?%oms=k=^`M z5@-ohe*Y0cU#&2YLe{;P<%%O}ZCM1!%7x&#)e=qxd?;o;kD2f_?qac2diQ(y?jw+0 z1Sow(X8KuZK~&bHJzeh*`~wo6|yplz~k1_rA$QxfM$o<9iqEl^z4{nDtm| zr|ra~f6>|y9IVCC{0gciX~$_UgCDhA6#7m74z`Q~?5#@tekY~%z2qgMCE%~>ryN-l zf&d~lQd|m9)1_P(HNDLBXHaRF?}Hs*7vHPGcjvIuJIe3iZO3*^gw=b15ysW%IEr1| zCM^xCtf_1eZ{sAX?rQZ$J#UPAc}3=|gPFDaDz`cy=qc%^5O=U(ehHkjCR4_=l3=}v zkOt&YQ%KFYd98Kv(R40@59Aa%X~mJwd2DVmZ?gS^eB}-<-U!Vr-o4k4BrRm4tmn$t zx_bdTES(s=k`%OSDzYVk$Z!x%?S#~pcJPPL{#DI4UWtV5MOLbl+J9K$>p3^4gU@8NM_S9Tn}gtm(3PF8Q6MqW(=pJz4hQE3=@-`mvq?X-JHUc zQ5mmKT(I_?-rpa;FnQ%oGcxFhKq>LVg5<;OqhY($xiC%7a962R51o%d60L(LmT`K& zbz|0y^TS4pKE}vXcKHB)Tm~mu-7k;+4M!1O-Z*mUEE1IFIDEfix%YmURl!E?wV?40 zcOZ;m)BXlf9J-p{=xF+O2KU}r#f@zC^Vx}NBnJb9uI!R+R&G(rC1olSl9v(eu&c)_2hr&$?mn*4|hrf5A|Tp z@)Qu;LRBxf%(_e~6s=OBv;C>Y1MIuDOTeyaW;CXG>oNg52f478QJgQ3Q_|(9`80}( z1aJ4bpuYN~)JnF=`%_$M#6LhC}H+)*hAR?3br1DGE}d7!u$$!P#Klk#x%}w2bOxi zJ)iSMa8%&X%`S3W@U8AU-~YgHo@PfeSU>0^|-gWk`3YF63l^RZVEE>B`VlJJ8MPmuAnHjc87#pyPE zGy-Cp%od732Mdps+mq`Ya#>@4(~93$A+-PdDB=GX>VUWJR#?0};4NfS=Sw#7y!vqP zM+9H;UV9&*7O24S349$6UDaz0{>JCm>1SAe)m?8A?{M5e8mX5XJ`;|(U(uSRRH5nx zF%Cm61giSnaMbp=kNaio%?bk#6jAC86qH# ze+Z~!&}MiW6P$slFT$!lG?!`wGo1wPtlzupeZ|=W2kuV!3ez7z%8YDiW{foGy4x;! z71@ft`|&9v86@Go>1#eZejS#i>BFPt<*vYc!6C{|(hlkII<$iDN|O*_8;)S+L@;zY z?T_1mefRsh;jiQ@;?XhczAJ5M&&T49Sy51Ub^_=sIxF8-9oR;}Iq07gg@0#!Wh3nV z=<`|Y7S@+n^q0JAvbAOE=3O0p53;-smogTp_mE6G9`2cs9-A57Ie>B0(^a*0B>$^- zH+>+Ll-*5gE!GMOHbH~fMjvC%UQh#QCpVwlB-o~$j3MX( z2E)AU{y-2E*XbEvu(WC2Xl2QiFHjoVV;R@)B)00><23qij8{8IkblaPY*O2r*p&Q{ zC^R4S7vx;KiNa9SIwANFmo2(|A82HvCcsICBCs9}Sl88~QEvG$nr1}!`~+gQCDZC` zECGWz9vToOFyI}MKA24I#nSE6qImdQwj)oI{8uBn20++`nJ(-o*vif~6~NwJa6Na^ z9cME@Z8xnIj_1_ed4u%NL)$q=m`zTh`z>p$dydLq0S%`VJ(nw!3hP;5-E7gu&K6m4 zyfn!MidrnW-a%?EfOS{-VEb~SG7~l3>2KkqLtUI@$2;3*qJ}H%2f;b63A}_t@=?#p zHvmA9FquvMH-I*H-|K;A2N5(HJHq(RoF^8)u0vStHJGyA{Z06*{rStFY~x+MD~E)u zE)A1prkcpvA?~nr1!i2u+PT9H+Q@8fF*-08bV%sG)M>3moE1p56@A2Dx}g|z-p}bM znsviBjiFs0RFdeoBYT?%Pg62ncG=K-?P~o0C?B_H_Q1&Fth^b=^7=8?qkOU`eLUhj zlK4HAlD6JJc*~}@NLhzSI+W3jh=xWbHhTW*&(6VI`a$Iy8zgjbBu#8pV_`fk_xp#R z8BTLy#|A3e>|4%O_d`i-c;1u_F@glt@PZn()B_%E~lxA?woh#bzu9xUp2$j9L*+0+CfeAzQe%rojJvWa4q9<7Cr( zzA@{-Y~h}>ez=eJD12ip-iX0Y(5#elIUrt-wH)BD?g>vgZS z;Hg+OE#~B?x$DT2M1<8nW%#aXEqR2^@DZSRvJqZ~*2$qMC^%|LYO@Z`v5o`XTb-N< z28Uhd!k;C=yNWH%c#-!H0bM|^5oGKytJLo#T|>>)Io7*J!wdbdFXyu3$4tYh2`)YV zeBmk7eK1B~LM2fB1?bCc!W=FJY>2w5C_Z*KxeHamvMHW%QiNO;?ZxdVT-o21B1dJ> zIso6?OsSpRs6Wq)(8}!lHa~M)kq=PGanwSRabV32g}wO^IAcK$<B(k-Kx+@@G@(-yurY$sOoxVF^+Y8|+_Grp4zJ*PxD zgElhOeqF^P99MK9tT;@{g`Y~vqZ?NizJih8PqFWNe3SE(CL;*URxxLdOn18d5rxe- z00Az^T;{}{(Wm*2ip`<`hXD~Z-kb$+x9BmX0^LO4QHnvuKsWe1&*`I~K+=KCX=;24 zcrvq*1HnQ&bk(*g}d&teKyS?OQ)?MD} zFaKk(aN_7BXTvEsEw4w^+xELbwb~ida<~w!j6X8uhpn|3psg7cKYVG3r1s}Sl9oqInu~`Cebzc6l-gBM*hFR#@KPY7&M`GF-uCd2bE#P)Q*v|+As&E#3OCHs`}#8#T`=r+w* zzC5RK;Ab85V(yh!LI|HsI5V1Lkg{M>wPxMn-S5-`+891=`@3oc@kk7|pr!cuVMf(6 zR;4~rL`ySL9;G~M$2`A)II*RinINp}(bc)!6`lK~GW^yNoDb5$P(F{lYaqbY41P8cLQH2KVZJ(+m%yQx=JILY*TEd?%(%ll@U-)B*!u_8I;4QW5xn7TSIY*PWrGFlDMek7;9G4Szl{4U+qauhpG*4;)BM` zPD}$Bks*p12KA~k^Qezx#ou6~%8$b-d z`*?cZ$12#Vb(?oLCjiHIs%}9JRg0_Kd+hJ1M{W{1c=&Uf2d3QAUn~>oTlqF=?-G3|G^cI52nJ+X89~FH0XjZ ze-9PrRlILSWK!vwu=%M?*c>Ny`|f$-PKW8`vqw&OkM~kM{~-U&Q9=x<=~c>=)+g_s z7YIVZ0UY;ipSp}-oOXXVC29(HCq;Bzp{oMusI5n~(Rc;hapqQ4({3hz3SKYk!<(|Q z1T=UuXp<_$`{)x#)iyt|Z5=i!Fu0FMJoDyBH|*+!h6oaQ!-jjv#{N?%9#r>iE70(N zFW;VJ4S9}}5UB8BM%wDEy_eT$;$FyS3vfgHRo7U6hJSBVM~M3bsg@M^x{7J4C|RAw)HKD5s=ZY;1RC%3DY~lSMT)HgwpDHqZBMNu#;cjHXAH(j5oa)B9Md zDLHbYr~V-YG{RwwG z@#AP3y{12tP?b&lVSDI2Yl-Y`B0okWt|=2Gcg{@4?I@^-eQqlrw|!LOAAd(igS2DE zxDv8VYB_5$PhW-&ezEJs_B{d@)1L!qZXEy)+K?sc_eYztVOSCgXPkUH@Grn9K<2lxWxlLP;MS9^2m=ECPQeZM7Ted1EJ|%cTG9^FF)k~>14MF__*DkZ0 z4&CxCA|CTQ2E#6b*d)vnGor(M!17vhWaT&lJU>kfS#wujAN{9O_~LCgxi+|-r=*x_ zAqX-q4g7w1W~PmRud)dJX~tW-lp?R(Cl%Zmtf2ODLyKy^q1?U|JprizvnyahDh+a^ z4#-nOy*5hV>ZLsKdN=C4&I0ISE=~PbCp%*SA~enD6^rdt->ve&gO+w0ZuxW)6zQhF zO%qBMd4I`e9(FZvQY&KkO2p4N-}x)@Wxy`%kkyGdl-w^X=4?Trjv!dAPoQSO(YBcw zAG{JX$_=v2BAz1wEi80`6hr;MWZV0zh{yWe{PYc*hr5w-sS* z9KS67t^$8$90fCT%Q;rrKW&=cVnjO;9Nto2suJ|?B>Ygw!NE-q8K@1^5vJs}+aDf- zF{zd2B-SFw0t9#2K_RNkm)i-Dy>=+aT&)eL5H~S^WEG@+#FNt$^tEa{IbQxB!5-X( z&pDhZ7AbYjzk3&DA8cBtDjSM?vi5V*OGdSba-B2m>gvJk_57*#mAs%CfWd!3(y-{X z`NUM)6fE(P|0Mx{7S?ahZ;^~(fG62X&f!B4T2pjHr{z)^N9_XgW_A3tI#JYR*(K;M^o8Flc+!mY2890CBRVqPUX; zi7EHx80s)9eIHO+>h}~Ylpp{stgs_H4j%vOpJIuLQ@-)d6tKFQa89%++LkTx1q*ut zCX(J)RiM{@`?X9%tWov>pkRi-C|u&a5Wt}dH*T7V(tji*?MQ?t?_gxzHu;@v64N+$cKt%^~5yALy3#A0c>*->5UVpk^tOa{v} zvm;6W!j0M*P~j+33*)x}y5R&HE3JE*k1h`I{1UzYW+VVxGVsG@sbC#LLO8hRZ){sE zl-fX23sFb+n|;m^jw>4saRDz8K1x3FagTwlazCISF#ioom-veQ5o7kb7=mAKeVI_oK72Zq8N ziXVqU1!Onc5}T%(P!L$7bNxwqcd|6#Yt_rkDuZgxZ za(dbIB5z=^U2l*>ftyp=G7k1-Wi$!{(QA9QPF?P5c3=35j&M-THN#m-f(&f?_#pb1 zrJd<;O&VX!aDJ-+ZCb524PrioOoXHB0aiJo50^-0IQBdm6SDbj%cAorpmT# z(gCa)bIIOP0-V@!SNu3NTKM)my9Ft0L~*3AtrLW#22_C^pS9NUbl85^Ig+L> zuSTT(DBciYGo1^$s-ejj(52+-2~$WZFVIs62@g)wD~l!9qw4!u<~M5(7eavj1Sv7# zhg3mY?=!T@CtnBiQbzhL*{RKVOSIBKM=@y@wc7(7P107537XFUA@s65~H zt~+RUW5N*e-}n?LJiy6|Od|E@Zsc_)FdFT6&7!&$GBk*U(2X%@yc27p#IZ0h zA3=(0Cei~_C6z4VqF!L@-v7{1#gRNZ*BkN(DIf={XetSACg|OXr&Y67%dlt&p4mMZ zxS1Cu@?6-1#5IO)zZKAb-?c>iaZOl|`b+OwkuruDqyoUZ&=fpJ zBYw+fRK{g!>C!babSJ5>lOoTUP@+v~A1^=5;&ORZE{{&Y33?|Qp{BrCsrXLJIsM&j zud};puR0;GM8#%*X}FI0-q;wWX`ZdiHEBdG|LTlt6aKu;9OO`&@vK0NO+q8M`bqKB zrV`VAvZ2wurFJCiSsJ`TX>}WjRCx*gGs;4bAY#(a7yxX zvN&UMv*wt*W6mH}ais%3=>8VP`E>E)&Ll7M^P~AqGZCmBf9M6po?-T!oDoZ!5*MiG zsDz;oQOJCKu*<=-NU!FosHF-`(K(G3}`DbQIS*6^29u z=y~xbSbWO{hcZk7ddb?lCl3#Y&K;*etxo$TvrT8jDsS*@7v5A-hSrN8;6DwZRv}NP zmZRl(1Xj-pjeu_tTCr@ddQ#KFpfb#83Q?Q9Nr@*KB{Jdb;FrYfi~%GJ-U(3aP-e03 z(fjhq8cY-*8SBI;U@hg)A^$NM8I^-(8?>=qXw4C{*xB) zX{)^>adlSGz}@eG>B|qtrT9$D{I*+9%0v34q4{jiUxVjm4H`Fz9ofGdVy5B;`L4Lp zrCTMxol7wlBZaBpc!3w?h_+mAk9eAMZpi*)ua zczx$U2x<^XEbx6-orA`cLfxh+LIywjHE^a4#G3%}`uBMefr|jMQpZ7O6aTa7G{~1? z72%_AG^Ee9y0R}9n*N6s6{V3=x67EJ5r^nb;nSEEhyMb{JZLC-p~NTutDb)7HE3|I{-N|J$)p7NIM1IY-eqA%+RND(s=)TSl3@vzD&f z*ikB@RybkzD9^sBg!f=qRp60`0GS8uTGBqe9qJSjvtQ1TYwan;y^Vi*55R~MHu zr2KngRpzf}hah<3CQcfxa$M=o&sXlom$li7ufi5DhGvnGb+nF&dnd~u49wBJ>+${wSi3<$fcdH8cuSR&Nb>Sl7Gg;4{aQK9S)qHLGU^|=jx=>!SSfH5<0dV#p zuvC8TwNx^72vA;BO^Kj98u-;`>2C$X-vOYFWj2F_#w!By!1au2L%XIZuTb{tXV_Qhi{0<}_Vyo3& zWP#7e4|`!8J8cITXlgHK9XI{6&$nK~n0F$a}jkd*aH^sDAMp%F8 zhjsr)xdg;c=!X6Y5OI}Pc)+3Y_!_IW6WMJSibj77Q_uCO5@z|=*MggRv0?yx;&b7i z!vC;gFhdkR0+ht6f$$&6HeGm<>+f=R)0!W^?0>TE_-I>Xs;X*B7|;I~J|ULaTX-vJH( zMo0xwQiZIBjD{hB#K4JbJoir^^0?f`rsA~9u!GhMPK)Guv5NkxeQoY1%&YZn;*;_; z2J(^(CjObEvGpu-R(orVBshVH1X6gi8Cs?&sXgA)DNSBQB5k-f=JQ+rO^JfbyNqeI z(_tV_YUhDPs7?e~$!<6Di2gK?<|18|jd_TnJ8&kq!Je2F^XCus;zClatO=D^GiCx0 zcVyM=_Bnx-ovk)c#|wm#`{ZO{!kE#Or+BO+cxDVv-H6JekxEC(E_COZg=iG-kquv5 z4Ruchcc^03lEExWovv1=Jh&dve{6Z`aC^MI;DU{0a58<_r}IY_K!^OqWM)&ZzYg5Z z;E+{YnsatDE=kT<14AgUVvHJFFag4-RWr!3t|L4f!YpG{;g%`SAx;@$obnXmmMP8m zAx57bb6xQzx1%#J9L2pbEm=)jDz^kX?kW-*Qf+)^_t{o0j(`qQQl5IwC+Da&)+39J zI2Ugawhp|*|A*ba5R9uynk8L%>&Dys?Bp*Am@W~~H&o$~8xUX@NZgQKI&IlO`c41u zaOCRTcb*U^DuXg#AELc?Pqx!vb_z_oW+d<7KcK%Vrs|pZ68MosfMA6x0qWT zsNO?WAW=HTL925xiPPoRccM zKbj1Jd48uO4xT*Gg*6mZXRR7cp^M)*z-o^|VzwP!)T8sNr*j7;fr-56<49Xc?w&{# zCM*mx7iL)UlOg3W&POe@)}EcOmw);0LnnK}lBOE$iVB_Mhl?h$w9}jl^`}NAWa!ex z5 zsN5w~wI_eW?I36SlXtU#*Ye(g=2M#AFt4=z&s22d@n#*5KbXnZk{TfuEm<(p`rHDo z-s8CW8q3gWt^aV^HoI!$Kj-+P{_6amo~6=92dUrPe>P$k$8qJ}fbeZJxLvLheuJ0p z1#SD}Hz8ImDV~?YZG@8CuN)K5rmpDtF^Qxs9oN^Q40UxP-Y1h*WzJeIn9pr%CPCtE zP&KDV7jJv&V9;8pqn@6DL5)wlxN30GD_XgoAlJILil$>~sf%76%jG{{fc3wLj zi;*OL01!e^su26vs7W{}UO#uX%)-1npQ(dIaqCyyHeTsR`~6tukXfV-+OL%=96N4n zcI6bC6Ur6@Wb9aL_F?yH;%V&Zu@Y^c?%I<_bEz3jk1eD+53i^8u~JfhOewXAD-Ht> z-I`3<%;ey#Q*HdkT8E4S*e&QxR;+R0(7OZh1wINJ`|p$wH^KCXP@|)XhmcqDJi)w} zTFLn3H?nnNN?n~7>_vFrn<_W~$KCUD^pfu(6%)q8rmw^vH7X#fiVGKDb$hh7^^nL= zp-Y1D^USi@H4K!98DVjiyVc|x5eK~&u3UI}{&YonNmmRB=be^^fN9 z)i`dIIOP@Vgf3t|gOy2u$cb*)sGRtf;RMK(|2I`EGZvEYe{VjUs|G(rbbCbaUMg>a zP2LJ=H@9=bMjn&{^rSXtUHrz$o3U zSRF3kQ&F$-O%g(r;MO4{y_nq3%4#pBbAaJ9&)LK6FEnh&2|0B zA;J6i)1F-x6mw_i+z^(rE-8~BCF=rM83ku4nVRhw?5Ebjlwg>Hfz{|bi_2dI=iy8BwOQRPJ+_O8*kcnskNEd^4KlgVloNvaw=r2LfjE#A8&3nJKT(PuuDi$}r2PayCpq z*iV#CanR)DhLYMR!@n zx>JahP4`b*6r%N~o-G+nOaYf@?~)Ji%lD{5d0EN122k^wzeS6HdCySb^cNha!jJ(1BSE_JpSCrc?wLDBSY|r<8EQf!Y>nxx)9#u9?0m68j&PwpT56JxEhqn*_^vrC)BpsjgQFEHHg4 ze=B1_X7e;VFn|C8Qz9Lk`ME!=09VxUxRF}ZST;B6rJwF(2FDq0&Io<_FYS3DB{Lis zrZEWw)gPsvOww{{U6f`%eIEfZC6{qYB9@7xSP~yWzRq`Z zxwa2O%A?=a#+04PSG8|ktM>vAI($qlm1#)4l4>vcz*|5JOF{~T1iVL)&l*3J4Z24}rb7HE_FYy`q z*K9_xO|PZ%ByEl0VU9+0KKqV6U;~Lv%Bw=PTvu$@j?a2>3|o*^(&hY?A|gB|y5(zf z=NY4f$kQHS5meAmecWU>o{Xu7#kNPnZ1=iP@gMPW=tO5sF>BfazTc;Etuybk$F$kl^Y; zq@`RuL)$w_Ku~B4=*+o}2Fm28rk0Eur6f*ek*MOdYXICd519QCniP9%J*NTyHjasPL7#lLma` zk&0>pLR#aH=<`V()<;vKHck^^^~NJ=WB$H?A+ZOfR+lJlz{V}!&|@!oM$HMT#@k>F zd$7uDkc3sIyl}9(;wl(7P~j9uVUzeQWTd5YFL2#~HGIE!tqAVO#tg;EB9RWH3%j6V z1&Z$0Jp1LUmv=zK3l-h0dH2gzF7APd7BU1atxHOv8Qyf1OL$vh`P?xy0w4eZN9JiO zM^qq%nk$rN+ho3&4fTJTBea}Ntvk#sYe0rWxsyFBx(v=K&e=e#3~y!yKH9-1T%*Gs zw}3_qx7Rb$YB#7SW)WwUI8%55{$l4E4Yj?*P1Ov2<}G+a zEKYU4%+<`XY9O2yo_%6jCd>y{VCwHGqrjcW{%)e6UtV4bU=!=BCyO`M1(#f^H0>*p zgwW15LRkqCD9a6(P%8dBe+~q}iPNTVQU;P;KORXYadSa`T)Suf&{z)2%<(gf#U<{1 z)_cawO2X{&Gffa~@fnR2oud)J%m_nw>~gDdMo6<)&EL_wS_rzLha$ZY_K-EHE{oUg zRp}&GG3%I^CzjzInggy8&(RdT)>Wyj(`D;Y zehLU9C1Z5Y9cu1N_GWFulmlbLPW!ILyYt%}Ks7VAS}8jRLvLcOHfS!L!-v)cN+<_2 zUCtG|;oX4#6F)nHCZZ0OLH@ch;&wk~kgMeoTgoI|c?8`@J7I#~@+as3ytMB7nZ_sw zG9~U7hwFTuDx8p;aPJew^CNk@((johwH*sxE<0|oBzwl$lcTurO>Z+@9<%;prf3GH zcGEF^eYXy2%jWk$s)*^O(WS7$!Zu?;nBXZLidP7hl;irQ*AQqm+_dqrbixhJXXiI5 z@Z;`*T6srkp3#%$N8=hLh?sNZP0$CGDuMwgAPhhhsucQe{xeHNbV^Kwz5d_>ree4|5p?xWuh6mSI`1*TO9)KOy zu!2dSb1Xu|rfn10 zRn9GidRDq-P|^*P^0Lr{a=~O8fs4m8kWioeZ^ig>(?F2QMT+lMb6;+vUkulFo^4r8 zCD{Lz%!i`%uxQKE5i$f!A`XReb$W)TF0AnK)Tua<^r*$a5Q!}IEktu*vIO$b>1TOE zJT_@?w}OYK6KaI|JuM&f3d{Oe!BElpT(m|5ot3Hi@>)MvNu68y_o3`j z`>(FrmwCaeKFii+-G7F8{Et2*eau)7Hg#Vqd!sgkY>oLg?h(z7lKD@RK^@91(f@IC zoA3M(*`^L?Pq!_};T!ERcQk@TAYh4_IG@-N9uB=}^(x3JPzp}1T++piD9tl$~2uFi7U=TjbYTS-!h6P>K zfFK}te!*}tZ~bFyF>aD_rfL*mj2^}Jq_k#peB{6kefTq%w_zYI)(@0;Ws#tra0w=a zh8<8ihwtvAb7DBgagUWisHjsi!VvL}rMAzlUH4xXmUD5!T`v^}mD<}fL;U`QEALQF zr#Nb~tlW;pcam8?AEsik8E0m?v?EQkw9LKmE#x2=A`X|(6=PR)LKF&jU?ysC_ z`>bH(9tW%hd3Nd&C%XYFDAd=k<>ROe-0{|`a}(&sk4hfLPWyHlCu?r{cu4oJ?HuVED%@SUjv2`RB17gAe~#5 zbz+Rikj~AP%WHrV)(H=S&Uj^^y;-EBZ>kir_@y)hy%&e_(6)kH3;KE5Lye`~kBYR- z1`iC#u=A3HZ^=P77n>U3RF3WohpgqO*-;1LCn}VpYeSFOEeh_K{u^)atpj3DhGPvl z)7E*0Afs7DF;R1iy|a7$oML~mrt{O`06|0mVLy;s+_6$jF|BWeh`?}pxFva=UwfU za;o)JHP7`@*5gQTa(m$u!0Yad3<_2RbjRl}O%4OQ62ZYIFvew<3HcCDFJ$Xuhw&qxb42q_+7Z#*Ptqx95BsYI0q>A zyZcK0TspTy#8}lrBe+MKBC&A_NZWCTQ64i~`xHfBb!YX{wDUcsx3{#Pu5w|yYj%~t zM!T_7O{3}hFjdUABHd}|GEv;J->CJ$eJz15M>YhAkw5xrTV`M7c0L^1zNM}6 zSgq{P;CgK0Tp*DZz1>6<2rJK{cCUt*Ssj4gZ(WehBgb|iuzkmhmbF(Cru|q7z9NJk zei0=xbqx)vI*bW56mI!24W*^lojJEz&kqk^kj=)a=J&tQiSjR-7UtxUP{?yumnw zUpCpDtc7bpMxiVON9~|pR%JC+4ieFT8mNGDqkpWhOWXq-BG=zxLN5yFv?EUJdp|se zJYFM0^3C!y)?=xDRI@6wGQn|hoou?!F&5hY?z##_TGT}+KBCSI>M#m;;^_TqF@Nps z>q67r#t~xL5vr(qv%x8&8)--zgtBN`4MNGS&viIbc4x<}pj}i-hDNC{()J$kv+x!VzaxQ{s>Pwb2>Qy~U=2@7 z-IOnpYQu2)lu}3Z0W($TsHIomEy2;8SnkXOLc*(B%x%iGp(v6D1lvdfav|F8Sn4z} zi`yVTh~(*(l1;D#;gB&6lf9Ko?2cQ~d99{8?oqYv`8R-ZO>sb%Kk8U?2}iHFVibQD z9GN2vLjrtMNX%IGQp0cH(nPX6`Gj6G&O`ccWwwrba=0e30q1KCR}?P|<8>QFQ;zYG zQ`wvit-E_hq6?F1nZduCn*&)JuQP_L#qV5m)^Q9JtA=xQ#RY@@);$Imdyd2c;6n3I z6h8!NqipwCr*Y70qGlMs^-1N6A^rBuFa*zRYAA^d=WK|p&lvO`<`zf@aZImX>amlA zFx;s6;dsON1wVm7P-;tnPF1Gn75*RJzV)3J5mk_)z}t%tWkK)(y~AYa@Q?@CfD1CG z)s33&%2+#G1rlk4QdT^tL1E50q7U3o({~@yx2D<>?pP!@eYe5b*>%uMF=s2)0f*^&c%;TtG4}=~~UklQbRV-mXCHsT9Do zaSN)bLy-y7W@)YQl~4ubN~ZLPAroXVK)xtjE2k(`h`%L!wjv+g5tzDf*4PeIku<0J z(jx%d*0e{Z(wWRmNtQGCMpcc(9d1nJp)6$jXvx4StM-eS0m37|5XW-PO*e4*aT0L? z1d1-xuNJ8WM}>xMF{oh>@*%%4D3kXF<3A2B)gh*<`8N~^pi-ODdEue4d8%mgaE4DRk}$))@leb*J0G!c=AwKhG=Ki{2x=+Qz^5TEI&`+ zS!?6td^uTLyxFIJo}v`}2C4=`LJ_(ZHHmarJ>(wSqHW0Z`N5Gw?jo(rYj!Mu0JB0`R`Ci6-e5Irj1h%&)Q z5_s`7!Dm^a?Ua#MM^ZW4B-Own;s7gX0=RJIv?F1ZInkZWvRmI*+R|*f;~*Lg>es)B zOWAg^?c%0dmL1&BF(8cKn~9WEMWwxd%=P^MMa6c%;5({*S$kRpVIn&cc=*g$d+qr6 z^>zP9jJv>S)1x36C4ES-rqw0+t-U(&zudm7*bLE^Zt$9$B>jSqcSDRbwPB@`%xGmNd^QKYxKc z5{M?l0|OF6)eqLudyS6+vAFJmTr<@H0yiH3i^tbv&(wM0l=06%)y29Xc)aMci3h<9 zk5xnP*_Gd3jL3F2`Bd7L*JEQ)Oj|7Y@At*oSjFg*s7aUOTIgAzYVApYfPklqL=*qd znW0s&6Y%_UloWwl(cdJ(i2&uWxO8RKuSSJ3T1KV;F^mV);Ppgj8qRl8GshvMTf zzG&2SnE~t#q_2ZW-ed{#YnOIl9D>3WfV(HTcc{*HE2?KQZ{@|`$?yD=*S%KjQ5s?` zIYIaV!AL-Or7&p;=zl#YuDw*ggXW{F=^EA){|?{N3Ux?Cz1MncBN;)&oupSTO1>b_ zXIVLW7g=|eA)RrEC(1aoKxT~Gu?2ylW8ybf>iCHIV`L|_hd4`lH&vgFE-YgBzR zK=g+4rUpFsC`)9Xg*YE+pTt9y>XP|}&`+Fu%oK7zFxMkNc<0n@*Cj-{6BCin)AxkK z1*3R~nTu)^;cvTd8E*=)pe+_%XCafcM%5I#>rwiPA>ImrCFU;@s9VnQfxgLP=U3{r zhxFZ7r=RBK>hGf5RSOUpw^4NFD3z8xg*-2k|Mfuq4>bN>aXp5&daVGe!jk7rFYj2{PXU^$2^;f@W$qO zVE%!x2V&R&$?+P|!Jzjqm%F?Gi6Df4b-u)NumUYqd_2G<9=KkG(jrAVs#ZR=yFxN= zaZ|ENy28<2oqi!`pCM1V_=g$Rz>}>sgJ0Zb77U+FVmyaR@Xf~%d{ip|F#dTgkqDx} zfQ;Wxn);4xk&3icx96D&6i!pA@gRKoITw6;7{Ym7b5@kItI9YHk*TnB|GEjHA zZoNVn?7FdULJ)~MD41uy4g}+uyLM;T+D5|?L?*E0(!^;93TRO_^r=PQ}IVp?O462`N{8u zN{f!2?y$6NZwC%ATd3_6bM>Q!dJp#7o=UD@4%?2lj8cY2Ey+4@k^o3R+}#0ER|ZS} zP)fuPep4wU^Ls^NH&y2KWzqYppFh>!OQhLOj*wqc-cez*xTpmCfCS)W?16Tc3itvV zj*DS|(;N8Y0j!vpD?ET7g`tJC!N3j*0bbrDlXfyu`C~WWK9~R>VgM=VUU{6Wwr+exN3 z_YBe3W~U?48eI0duDRszOAM0wa%`ir1SVP{Mai6_%r*^{TDVcmKx=doj*)+?3KC5f zzEZTxyKB(LE13A1pi};w?k`0L#AM2A6)6aYfZl2F{eqHe;nt^LMH+f$p^GM?Y3gVP zJWnXczbR6BKs$~K{^`aZ#In-Hb#J{*rKJy+%LoeG*iWP3%OE0?JS1)(`rq%nv7Mk zRU(^627$*9;l~QBGj2qtYZjoqU`IqtMt{&SJ=E*MPH9SXjH#q0O8$q##&AocyS*sZ zAIq%77jDfiuStr*8z`^Tt{B#w)~BeG7XxCbueDzkA%X(;)Fop-=EH#N)@ZkY3QHj~ zJ=OBr=eE7w;gYJM9}1Up_6K1rsj2Qx{fZHm0#F#Bn`ZiY@aIK$5Yp=c;ME@t>ZjaKXVB!ZXS;bIoP}`TKvwGRJ>_P>y)0x8dcbq5z zuB;lKY|+g2I3*od(HHaLIHbZJ2_xS`zuoeg0DJ1tN_J4z>jY_ui^;wGKDMFa>LHXjgng{UmSt;wTtJuim+3} z)Q=Odzo}i>a!+z3q*RIx^4G@o7D;M@-6FG(`JD(}djJ#_Qg2)vWbJ}qP$)Xy5ZJ1v zX6NUu#p(I#y7T3#S?X@DOA!~fQ`OgKC%X6Ggdg8}NBUt>XM3B=i=kq+yJ}lT(L6uw|B5F9o8h!m2 z+E(haBSi#kNPmsizkDh0JbGZ1UK&c$=fK?DCWO0JeE4;eN7b^_5@0Enz^vkU5dTi~ z$#gZ&J8nMS@kQ<+6{}ll`~}zf+eb;j07rxXX8C4IV z^#`r3m@Vh@*nX24TC&kJoZlpsRy=_Hs;`TMI-IE8i1!43HBSXEzf*|$`GhAnmG~gx zk_uboTk&LZ#Wz~7di(V#vE?1^RnsF@T0h(>(u+7_x=GT7h9Q}}nk^5J-0y^MS>xCT zIsi_rp@u+D{8dK%IIv@7zVyNCc|ggF21*DuKs$djl-R zbd))nWwC6&tYLaE=d_|ZmG)^;@i>!!3~gk`k@BRPn0-$?K6yLDDW%_Bi4(iLUQWZd zPs%NRK}ogyzFpDuLqDEtgb)A-+aiyW%f1=!PoxA^*}#7ia;5YGV(uwIhQeFdd%mt| zRHxIU01Ai?(A~>Xj^q!uo^wiYxdKp|LSuY^6HNeM)6<%Qu(B4QIw>HXKnDjgxi6D!|>iYSKW(JxYm`Vy{;v0{i zg?@i@k*`gDcw0opqg5u4QnQ9fCAu`s`To9tM7l9a%HHkOlQ{8CFUH)N?izb46Aq0P z`>jx2BaUg0>NQ;~Ws~W=N`_qxqEBV6|3^Vm7hPsS3?fq#1YG%<7Z%j(2c*njE^(NX zc6h9E)uhHt?mrqTzsEkCE}98@SiqmWY!1yTLXhSaZAi7RjVf87kBF}}s3*8Lalwqr zKt0T|8nFcD2t9;E(v1y;=k|1dS!EcU1i{Vto~(w@t%}$Vg|_Uc>0Wv$!H56m<9pM7 zHTlsTReq)@_$)45D07o_XFxK1SU=cN$*AjCO-ahV{F9?jDhpJP^5iu{q}BhVy{XO- z!6K3MX-~kqK-}7-CEeRbSCJ$Y%voKIGe%p%8`ffy@Tnemnb`|{nbh&_^Wp2}(G^gK z#kHoG<(C18S3H4uRvah3`-{mAZSO*Nw`Lq4 z-M|0nw zKemH;e&PVyVk(QAW_iD{Si}NLrjxAz-0iHIvO7HT?+pS&zPY3;mXLZdf|fC{vFe8> z{>T3L?`z&_`d2t^OjuGf{H0c~69I_XrPHi-yQh$sFPpM;2`*ekZ!F@XQlQnY&ns_? zU@gN2sI1+82sd2q(jGmLdv=_k6szjp!Y!`%?)r{vrjhpF+`iE`Q?a%>@8VLm0?|;F zs(B%<5OvFR?2X}(3bw8mkLlh|CY(1cE!2Q6t8cy(Sl#aubJXbVxhUvU03~KF==zsVPGgqWVZTpIyDv~>b+i&1f~^-eH%S>lH>7iSBPh3CJzO70;G^z zFOvlpn7Iii7^Y8*-8I$yy^H{VL4Po)G0`&$Oj~)u77BDCQ`ZQa0KKv_^r%XjOr7nf zZVnwctVh~`06{41#3L>I`p6BB?s8 zvDmts>mIz^l!iT}rlzxup=&tVm6%#JfspKTwAP`mxe@xBR9r^dPYE;vaCq$KhlarPMEs3_&SsZXPLtIEtzDa! z>Zj*yi~_(m;OWW%0$2mkj;52s6S^9x>$4`R;jelM!0NYVPPYenAxxd?4T+0z;BN=1gVE((W{~^~_We}!-Dm_73Yg|tf$HHhjAGXs?k-QO zJ=0Yz^qzmX;&$(uc#h~2SC=kN{w}2w$fN(Y6dhXYLoEyB>2(m{A>?h6WF34)48k27 zLI`(pmHaKcJw0{#iliHJB{o*r8W{3q4Td4SJ+17k#v)Xil9EvO(6slpBY<~lAg93C zFL3|^(Ozluvr8(y&Hu=GoC%obakmrU#u!BUo{`bAR^sm_O$l}Fx3ys89sb;|C5(A# z;c0g&TnCp?zfu)U+@;tvBdxdQQN`P4TH!y)S8DaN{LtCQ&aC#_C`>K`0@ zOC&8P_n-^5#M8Xha{{N$2WuJ*r3B4UKngWzYWgpA^-!9Km?)g;6MT6AQ}Mx zDZS)0?m8*dVKvh+L63_3K3HA?LpL|R_sdX66(N_`dEW6GW}zKTq*nUP_bFUBgD+lRnlkPd^BjD7wG5j?x4hFpy2(?W!Ziu2RYw6pfGLFva=Y$i_Qv&(J5T$^&d$|2^$2Z*lN7?go2Zt|Ly!IDS zdd7ralSOcVJdn<3<4lLoyRN)4)X zi(@JIJx#}UA3Kr-7pO>nxMt>H9L>~YS(rJ3c3J@--PFVKKI5K;3QRZ+B+jV+kUM>& zn!{mG4_Uks0B3=O^lQx=p*b?o+JvQz${UNVN77PZZq>tak3g0_csENzKix68-+!7O zsXGe4YjrnrL{CoTWyG4|x2it;3p{TTn9)k74K>-=UFK+ybw$*82?=6(cV<=;v#=;U zNF`?HOUQQl%Pd@W(2KEg$UX}Vel*YFLliSUVyilKt!Bu@w1bL}Eb&J;&bOfu;JrmcYwzcX=&$k#i4bv< zA@Gg~MnXLnFE0TJnK;92=xJqtP(>mO)~u!!wc1AiP$d;pTc5&+KQ6ZO#?~lN%qo}r zr#~l8;lL--A3_FK5t0(uvGPnm$weXlV|%4C%~k(Ol%sPN9m|<+w2JV})+7Q{z}J7I zCifLM`|=N^`6grLnsYJ16Erm6C}f(-8&xvCo_WW$^trmpVd=-=n;r9dj6%41WKbn! z+N#yL9kYa9d773xEbFCzk3f$1?os=@;h#7!Xu&UDkXG)D@@h(+NxqlXcns^jZ!~W{Eudlc%d1}tU{jN(*--KC zh|6GiSw43<@A~j*?226Tm}P|U(zwf`&t!4>62gA_P^EgTYxhKZ%s3!+ORG5`9^I|n zu$C;cSNK*6rlob_sDUg?Q@oLXz@jS#a?1i?Db`;f{C%_+_(qfIN5(W(-!F|?wG1Xk zVyL-}zGaJ$pP!R)x(!e^6yt$Qvj8RtJ{T(uXD=!|=N0Gzm#2oDuL8@J+|k=o9$YBU zZu0G%3Cl!5t0%4WP4YOR3v`clT2PiW)=&ph=Ix7kFjAt3qLwkh^N~#~p-<@SsrvxA zp=Nz|L!yHgR?K!~8f0jw=~eXFRVR!<+JU7rRwyW^j`aYZ;TVK4YQGA87Fsfp8@Szj zMcxmR?Bj{W-g-`S7Qxo19F(`cvJ)m_Q}e{?KI8=U>Md_GP^vHsh;Kg?^j243>hCKt z{mQ=+Rqk&S3nuA*YeWG8x~G;`XX2RO-|&>?CB`5QRj>e7;+PG&$wtgSioOa8!-KD9 zZ`tSirQpbUNKu;4gYIjvjsU?BrTprlYS}0QmFb5~6e}UsJxu~M=g*Z7bxnPfG~dc& zo6j$l;N!2Pm!S{RQ3tnc@VG^wQcz@E-_@rV%veUlKwRX7V7zzv0G>Fquo*;}s^6Ex zL{4iHU&?15+LIy!m`c^8#cLw03E5*>+>`3VFl*K5!sK43LzQ-|9Bv6gmqoOxqMekP zJ~&se8;^%A<;GMzxYiQ3i0gd=cLiN!E6K{M<7phhZssw$1~fX5nQ@h0qgJw>b9Y_K z(c(Jo@-L!7D6j`9CW}q@HIJdWCl0S$zYU?<&_2??il;@?EKaWI=)KQHpKbaMv96FA zQ?{RsKYUjATb;||H{TyRf6jkQ=7VTJh%w8w0HD%Fy@MNvJBArx1V6);7%FRYwQOnK zf&y|&Gq_f@z91>wMz=pDa`yls;s7rJCKV+v2h;sjpbZ^l|8$jdVhQblbeHdx`9v>n z$nJDoNfI!L_3*}X%j$QOG?a$PFeV_YK2WXM_;gp!G)u1tG{W

rhST=3+1Q;|pxs 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 z%0D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 literal 0 HcmV?d00001 diff --git a/assets/step3-refine-pr.webp b/assets/step3-refine-pr.webp new file mode 100644 index 0000000000000000000000000000000000000000..220d548cd45b582dcd33ddd451184f23bc8dbfeb GIT binary patch literal 42914 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 G0001RLPoIw literal 0 HcmV?d00001 diff --git a/assets/step4-update-bytebase-issue.webp b/assets/step4-update-bytebase-issue.webp new file mode 100644 index 0000000000000000000000000000000000000000..62a872892accbb4d22fbf4fddfb0601c4463d69e GIT binary patch literal 48986 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%0Dvyh^UU>X`o>PB2vg_x^ikO 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

-iu#tq0#{~r`N8jz|Cw1 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 L0000000000a|=Yt literal 0 HcmV?d00001 diff --git a/assets/step5-update-details.webp b/assets/step5-update-details.webp new file mode 100644 index 0000000000000000000000000000000000000000..03dec42aafb534d31ff3b724858012735fa4232f GIT binary patch literal 25208 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
aqNmGbhKS{JUKG3P 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 n)>#JZ@55snnwsWo7kTFQE Date: Thu, 14 Mar 2024 13:22:39 +0800 Subject: [PATCH 2/5] chore: change search action --- .github/actions/search-issue/action.yml | 3 +++ .github/actions/search-issue/dist/index.js | 20 ++++++++++--------- .github/actions/search-issue/index.ts | 7 +++++-- .../bytebase-search-migration-action.yml | 6 +++++- 4 files changed, 24 insertions(+), 12 deletions(-) diff --git a/.github/actions/search-issue/action.yml b/.github/actions/search-issue/action.yml index 5eac451..6c2e07a 100644 --- a/.github/actions/search-issue/action.yml +++ b/.github/actions/search-issue/action.yml @@ -17,6 +17,9 @@ inputs: database: description: "The name of database. Example: instances/prod-instance/databases/example" required: true + # Current search API can't search multi-word text precisely, so it needs to be a single word. + title: + description: "The issue title" outputs: issues: description: "The issue list matching the search criteria" diff --git a/.github/actions/search-issue/dist/index.js b/.github/actions/search-issue/dist/index.js index 9436b83..066f4c4 100644 --- a/.github/actions/search-issue/dist/index.js +++ b/.github/actions/search-issue/dist/index.js @@ -41,7 +41,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge Object.defineProperty(exports, "__esModule", ({ value: true })); const core = __importStar(__nccwpck_require__(9093)); const github = __importStar(__nccwpck_require__(5942)); -function searchAllIssues(endpoint, bytebaseToken, initialQueryParams = new URLSearchParams()) { +let headers = {}; +function searchAllIssues(endpoint, initialQueryParams = new URLSearchParams()) { return __awaiter(this, void 0, void 0, function* () { // Function to recursively fetch pages function fetchPage(accumulatedData = [], pageToken) { @@ -52,11 +53,7 @@ function searchAllIssues(endpoint, bytebaseToken, initialQueryParams = new URLSe } const response = yield fetch(`${endpoint}?${initialQueryParams}`, { method: 'GET', - headers: { - "Content-Type": "application/json", - "Accept-Encoding": "deflate, gzip", - 'Authorization': `Bearer ${bytebaseToken}`, - } + headers, }); const data = yield response.json(); if (data.message) { @@ -85,6 +82,10 @@ function run() { const token = core.getInput("token", { required: true }); const projectId = core.getInput("project-id", { required: true }); const database = core.getInput("database", { required: true }); + const title = core.getInput("title"); + const extraHeaders = core.getInput('headers'); + headers = extraHeaders ? JSON.parse(extraHeaders) : {}; + headers = Object.assign({ "Content-Type": "application/json", Authorization: "Bearer " + token }, headers); const githubContext = github.context; const prNumber = (_a = githubContext.payload.pull_request) === null || _a === void 0 ? void 0 : _a.number; if (!prNumber) { @@ -92,10 +93,11 @@ function run() { } const queryParams = new URLSearchParams({ filter: `status="OPEN" && database=${database}`, - // Current search API can't search multi-word text precisely, so it needs to be a single word. - query: `#${prNumber}` }); - const issues = yield searchAllIssues(`${url}/v1/projects/${projectId}/issues:search`, token, queryParams); + if (title) { + queryParams.set("query", title); + } + const issues = yield searchAllIssues(`${url}/v1/projects/${projectId}/issues:search`, queryParams); core.info("Issues created for PR #" + prNumber + ":\n" + JSON.stringify(issues, null, 2)); core.setOutput('issues', issues); }); diff --git a/.github/actions/search-issue/index.ts b/.github/actions/search-issue/index.ts index 501fc72..dee061b 100644 --- a/.github/actions/search-issue/index.ts +++ b/.github/actions/search-issue/index.ts @@ -42,6 +42,7 @@ async function run(): Promise { const token = core.getInput("token", { required: true }) const projectId = core.getInput("project-id", { required: true }) const database = core.getInput("database", { required: true }) + const title = core.getInput("title") const extraHeaders: string = core.getInput('headers'); headers = extraHeaders ? JSON.parse(extraHeaders) : {}; @@ -59,10 +60,12 @@ async function run(): Promise { const queryParams = new URLSearchParams({ filter: `status="OPEN" && database=${database}`, - // Current search API can't search multi-word text precisely, so it needs to be a single word. - query: `#${prNumber}` }); + if (title) { + queryParams.set("query", title) + } + const issues = await searchAllIssues(`${url}/v1/projects/${projectId}/issues:search`, queryParams); core.info("Issues created for PR #" + prNumber + ":\n" + JSON.stringify(issues, null, 2)) diff --git a/.github/workflows/bytebase-search-migration-action.yml b/.github/workflows/bytebase-search-migration-action.yml index 3f08986..d371d26 100644 --- a/.github/workflows/bytebase-search-migration-action.yml +++ b/.github/workflows/bytebase-search-migration-action.yml @@ -2,6 +2,10 @@ name: Search Migration on: workflow_dispatch: + inputs: + title: + description: "title" + required: false jobs: bytebase-search-migration: @@ -11,7 +15,6 @@ jobs: BYTEBASE_SERVICE_ACCOUNT: "ci@service.bytebase.com" PROJECT: "example" DATABASE: "instances/prod-instance/databases/example" - ISSUE_TITLE: "[${{ github.repository }}#${{ github.event.pull_request.number }}] ${{ github.event.pull_request.title }}" name: Search Migration steps: - name: Checkout @@ -32,3 +35,4 @@ jobs: headers: '{"Accept-Encoding": "deflate, gzip"}' project-id: ${{ env.PROJECT }} database: ${{ env.DATABASE }} + title: ${{ github.event.inputs.title }} From 1d405a06a3d519c04861ec27d530e87068ad1a1d Mon Sep 17 00:00:00 2001 From: tianzhou Date: Thu, 14 Mar 2024 13:30:17 +0800 Subject: [PATCH 3/5] chore: fix search --- .github/actions/search-issue/action.yml | 2 - .github/actions/search-issue/dist/index.js | 4590 +------------------- .github/actions/search-issue/index.ts | 17 +- 3 files changed, 170 insertions(+), 4439 deletions(-) diff --git a/.github/actions/search-issue/action.yml b/.github/actions/search-issue/action.yml index 6c2e07a..e61a9af 100644 --- a/.github/actions/search-issue/action.yml +++ b/.github/actions/search-issue/action.yml @@ -1,5 +1,3 @@ -# This action should only be run on pull_request events. -# It will find the open issue created for the PR. name: "Search Issue" description: "Search the issue" inputs: diff --git a/.github/actions/search-issue/dist/index.js b/.github/actions/search-issue/dist/index.js index 066f4c4..5823c42 100644 --- a/.github/actions/search-issue/dist/index.js +++ b/.github/actions/search-issue/dist/index.js @@ -40,7 +40,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }; Object.defineProperty(exports, "__esModule", ({ value: true })); const core = __importStar(__nccwpck_require__(9093)); -const github = __importStar(__nccwpck_require__(5942)); let headers = {}; function searchAllIssues(endpoint, initialQueryParams = new URLSearchParams()) { return __awaiter(this, void 0, void 0, function* () { @@ -76,7 +75,6 @@ function searchAllIssues(endpoint, initialQueryParams = new URLSearchParams()) { }); } function run() { - var _a; return __awaiter(this, void 0, void 0, function* () { const url = core.getInput("url", { required: true }); const token = core.getInput("token", { required: true }); @@ -86,11 +84,6 @@ function run() { const extraHeaders = core.getInput('headers'); headers = extraHeaders ? JSON.parse(extraHeaders) : {}; headers = Object.assign({ "Content-Type": "application/json", Authorization: "Bearer " + token }, headers); - const githubContext = github.context; - const prNumber = (_a = githubContext.payload.pull_request) === null || _a === void 0 ? void 0 : _a.number; - if (!prNumber) { - throw new Error('Could not get PR number from the context; this action should only be run on pull_request events.'); - } const queryParams = new URLSearchParams({ filter: `status="OPEN" && database=${database}`, }); @@ -98,7 +91,15 @@ function run() { queryParams.set("query", title); } const issues = yield searchAllIssues(`${url}/v1/projects/${projectId}/issues:search`, queryParams); - core.info("Issues created for PR #" + prNumber + ":\n" + JSON.stringify(issues, null, 2)); + if (issues.length == 0) { + core.info("No issue found for " + decodeURIComponent(queryParams.toString())); + } + else { + core.info(issues.length + " issue(s) found for " + decodeURIComponent(queryParams.toString())); + } + issues.forEach((issue) => { + core.info("Issue URL " + `${url}/projects/${projectId}/issues/${issue.uid}`); + }); core.setOutput('issues', issues); }); } @@ -1100,259 +1101,6 @@ exports.toCommandProperties = toCommandProperties; /***/ }), -/***/ 8282: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Context = void 0; -const fs_1 = __nccwpck_require__(7147); -const os_1 = __nccwpck_require__(2037); -class Context { - /** - * Hydrate the context from the environment - */ - constructor() { - var _a, _b, _c; - this.payload = {}; - if (process.env.GITHUB_EVENT_PATH) { - if ((0, fs_1.existsSync)(process.env.GITHUB_EVENT_PATH)) { - this.payload = JSON.parse((0, fs_1.readFileSync)(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' })); - } - else { - const path = process.env.GITHUB_EVENT_PATH; - process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`); - } - } - this.eventName = process.env.GITHUB_EVENT_NAME; - this.sha = process.env.GITHUB_SHA; - this.ref = process.env.GITHUB_REF; - this.workflow = process.env.GITHUB_WORKFLOW; - this.action = process.env.GITHUB_ACTION; - this.actor = process.env.GITHUB_ACTOR; - this.job = process.env.GITHUB_JOB; - this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10); - this.runId = parseInt(process.env.GITHUB_RUN_ID, 10); - this.apiUrl = (_a = process.env.GITHUB_API_URL) !== null && _a !== void 0 ? _a : `https://api.github.com`; - this.serverUrl = (_b = process.env.GITHUB_SERVER_URL) !== null && _b !== void 0 ? _b : `https://github.com`; - this.graphqlUrl = - (_c = process.env.GITHUB_GRAPHQL_URL) !== null && _c !== void 0 ? _c : `https://api.github.com/graphql`; - } - get issue() { - const payload = this.payload; - return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pull_request || payload).number }); - } - get repo() { - if (process.env.GITHUB_REPOSITORY) { - const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/'); - return { owner, repo }; - } - if (this.payload.repository) { - return { - owner: this.payload.repository.owner.login, - repo: this.payload.repository.name - }; - } - throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'"); - } -} -exports.Context = Context; -//# sourceMappingURL=context.js.map - -/***/ }), - -/***/ 5942: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getOctokit = exports.context = void 0; -const Context = __importStar(__nccwpck_require__(8282)); -const utils_1 = __nccwpck_require__(7375); -exports.context = new Context.Context(); -/** - * Returns a hydrated octokit ready to use for GitHub Actions - * - * @param token the repo PAT or GITHUB_TOKEN - * @param options other options to set - */ -function getOctokit(token, options, ...additionalPlugins) { - const GitHubWithPlugins = utils_1.GitHub.plugin(...additionalPlugins); - return new GitHubWithPlugins((0, utils_1.getOctokitOptions)(token, options)); -} -exports.getOctokit = getOctokit; -//# sourceMappingURL=github.js.map - -/***/ }), - -/***/ 1181: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getApiBaseUrl = exports.getProxyFetch = exports.getProxyAgentDispatcher = exports.getProxyAgent = exports.getAuthString = void 0; -const httpClient = __importStar(__nccwpck_require__(1759)); -const undici_1 = __nccwpck_require__(2988); -function getAuthString(token, options) { - if (!token && !options.auth) { - throw new Error('Parameter token or opts.auth is required'); - } - else if (token && options.auth) { - throw new Error('Parameters token and opts.auth may not both be specified'); - } - return typeof options.auth === 'string' ? options.auth : `token ${token}`; -} -exports.getAuthString = getAuthString; -function getProxyAgent(destinationUrl) { - const hc = new httpClient.HttpClient(); - return hc.getAgent(destinationUrl); -} -exports.getProxyAgent = getProxyAgent; -function getProxyAgentDispatcher(destinationUrl) { - const hc = new httpClient.HttpClient(); - return hc.getAgentDispatcher(destinationUrl); -} -exports.getProxyAgentDispatcher = getProxyAgentDispatcher; -function getProxyFetch(destinationUrl) { - const httpDispatcher = getProxyAgentDispatcher(destinationUrl); - const proxyFetch = (url, opts) => __awaiter(this, void 0, void 0, function* () { - return (0, undici_1.fetch)(url, Object.assign(Object.assign({}, opts), { dispatcher: httpDispatcher })); - }); - return proxyFetch; -} -exports.getProxyFetch = getProxyFetch; -function getApiBaseUrl() { - return process.env['GITHUB_API_URL'] || 'https://api.github.com'; -} -exports.getApiBaseUrl = getApiBaseUrl; -//# sourceMappingURL=utils.js.map - -/***/ }), - -/***/ 7375: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - var desc = Object.getOwnPropertyDescriptor(m, k); - if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { - desc = { enumerable: true, get: function() { return m[k]; } }; - } - Object.defineProperty(o, k2, desc); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.getOctokitOptions = exports.GitHub = exports.defaults = exports.context = void 0; -const Context = __importStar(__nccwpck_require__(8282)); -const Utils = __importStar(__nccwpck_require__(1181)); -// octokit + plugins -const core_1 = __nccwpck_require__(9698); -const plugin_rest_endpoint_methods_1 = __nccwpck_require__(4319); -const plugin_paginate_rest_1 = __nccwpck_require__(2889); -exports.context = new Context.Context(); -const baseUrl = Utils.getApiBaseUrl(); -exports.defaults = { - baseUrl, - request: { - agent: Utils.getProxyAgent(baseUrl), - fetch: Utils.getProxyFetch(baseUrl) - } -}; -exports.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(exports.defaults); -/** - * Convience function to correctly format Octokit Options to pass into the constructor. - * - * @param token the repo PAT or GITHUB_TOKEN - * @param options other options to set - */ -function getOctokitOptions(token, options) { - const opts = Object.assign({}, options || {}); // Shallow clone - don't mutate the object provided by the caller - // Auth - const auth = Utils.getAuthString(token, opts); - if (auth) { - opts.auth = auth; - } - return opts; -} -exports.getOctokitOptions = getOctokitOptions; -//# sourceMappingURL=utils.js.map - -/***/ }), - /***/ 1366: /***/ (function(__unused_webpack_module, exports) { @@ -2023,4125 +1771,173 @@ class HttpClient { rejectUnauthorized: false }); } - return proxyAgent; - } - _performExponentialBackoff(retryNumber) { - return __awaiter(this, void 0, void 0, function* () { - retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber); - const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber); - return new Promise(resolve => setTimeout(() => resolve(), ms)); - }); - } - _processResponse(res, options) { - return __awaiter(this, void 0, void 0, function* () { - return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { - const statusCode = res.message.statusCode || 0; - const response = { - statusCode, - result: null, - headers: {} - }; - // not found leads to null obj returned - if (statusCode === HttpCodes.NotFound) { - resolve(response); - } - // get the result from the body - function dateTimeDeserializer(key, value) { - if (typeof value === 'string') { - const a = new Date(value); - if (!isNaN(a.valueOf())) { - return a; - } - } - return value; - } - let obj; - let contents; - try { - contents = yield res.readBody(); - if (contents && contents.length > 0) { - if (options && options.deserializeDates) { - obj = JSON.parse(contents, dateTimeDeserializer); - } - else { - obj = JSON.parse(contents); - } - response.result = obj; - } - response.headers = res.message.headers; - } - catch (err) { - // Invalid resource (contents not json); leaving result obj null - } - // note that 3xx redirects are handled by the http layer. - if (statusCode > 299) { - let msg; - // if exception/error in body, attempt to get better error - if (obj && obj.message) { - msg = obj.message; - } - else if (contents && contents.length > 0) { - // it may be the case that the exception is in the body message as string - msg = contents; - } - else { - msg = `Failed request: (${statusCode})`; - } - const err = new HttpClientError(msg, statusCode); - err.result = response.result; - reject(err); - } - else { - resolve(response); - } - })); - }); - } -} -exports.HttpClient = HttpClient; -const lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ 9379: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.checkBypass = exports.getProxyUrl = void 0; -function getProxyUrl(reqUrl) { - const usingSsl = reqUrl.protocol === 'https:'; - if (checkBypass(reqUrl)) { - return undefined; - } - const proxyVar = (() => { - if (usingSsl) { - return process.env['https_proxy'] || process.env['HTTPS_PROXY']; - } - else { - return process.env['http_proxy'] || process.env['HTTP_PROXY']; - } - })(); - if (proxyVar) { - try { - return new URL(proxyVar); - } - catch (_a) { - if (!proxyVar.startsWith('http://') && !proxyVar.startsWith('https://')) - return new URL(`http://${proxyVar}`); - } - } - else { - return undefined; - } -} -exports.getProxyUrl = getProxyUrl; -function checkBypass(reqUrl) { - if (!reqUrl.hostname) { - return false; - } - const reqHost = reqUrl.hostname; - if (isLoopbackAddress(reqHost)) { - return true; - } - const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || ''; - if (!noProxy) { - return false; - } - // Determine the request port - let reqPort; - if (reqUrl.port) { - reqPort = Number(reqUrl.port); - } - else if (reqUrl.protocol === 'http:') { - reqPort = 80; - } - else if (reqUrl.protocol === 'https:') { - reqPort = 443; - } - // Format the request hostname and hostname with port - const upperReqHosts = [reqUrl.hostname.toUpperCase()]; - if (typeof reqPort === 'number') { - upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`); - } - // Compare request host against noproxy - for (const upperNoProxyItem of noProxy - .split(',') - .map(x => x.trim().toUpperCase()) - .filter(x => x)) { - if (upperNoProxyItem === '*' || - upperReqHosts.some(x => x === upperNoProxyItem || - x.endsWith(`.${upperNoProxyItem}`) || - (upperNoProxyItem.startsWith('.') && - x.endsWith(`${upperNoProxyItem}`)))) { - return true; - } - } - return false; -} -exports.checkBypass = checkBypass; -function isLoopbackAddress(host) { - const hostLower = host.toLowerCase(); - return (hostLower === 'localhost' || - hostLower.startsWith('127.') || - hostLower.startsWith('[::1]') || - hostLower.startsWith('[0:0:0:0:0:0:0:1]')); -} -//# sourceMappingURL=proxy.js.map - -/***/ }), - -/***/ 1410: -/***/ ((module) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// pkg/dist-src/index.js -var dist_src_exports = {}; -__export(dist_src_exports, { - createTokenAuth: () => createTokenAuth -}); -module.exports = __toCommonJS(dist_src_exports); - -// pkg/dist-src/auth.js -var REGEX_IS_INSTALLATION_LEGACY = /^v1\./; -var REGEX_IS_INSTALLATION = /^ghs_/; -var REGEX_IS_USER_TO_SERVER = /^ghu_/; -async function auth(token) { - const isApp = token.split(/\./).length === 3; - const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token); - const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token); - const tokenType = isApp ? "app" : isInstallation ? "installation" : isUserToServer ? "user-to-server" : "oauth"; - return { - type: "token", - token, - tokenType - }; -} - -// pkg/dist-src/with-authorization-prefix.js -function withAuthorizationPrefix(token) { - if (token.split(/\./).length === 3) { - return `bearer ${token}`; - } - return `token ${token}`; -} - -// pkg/dist-src/hook.js -async function hook(token, request, route, parameters) { - const endpoint = request.endpoint.merge( - route, - parameters - ); - endpoint.headers.authorization = withAuthorizationPrefix(token); - return request(endpoint); -} - -// pkg/dist-src/index.js -var createTokenAuth = function createTokenAuth2(token) { - if (!token) { - throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); - } - if (typeof token !== "string") { - throw new Error( - "[@octokit/auth-token] Token passed to createTokenAuth is not a string" - ); - } - token = token.replace(/^(token|bearer) +/i, ""); - return Object.assign(auth.bind(null, token), { - hook: hook.bind(null, token) - }); -}; -// Annotate the CommonJS export names for ESM import in node: -0 && (0); - - -/***/ }), - -/***/ 9698: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// pkg/dist-src/index.js -var dist_src_exports = {}; -__export(dist_src_exports, { - Octokit: () => Octokit -}); -module.exports = __toCommonJS(dist_src_exports); -var import_universal_user_agent = __nccwpck_require__(5592); -var import_before_after_hook = __nccwpck_require__(3990); -var import_request = __nccwpck_require__(9620); -var import_graphql = __nccwpck_require__(7667); -var import_auth_token = __nccwpck_require__(1410); - -// pkg/dist-src/version.js -var VERSION = "5.1.0"; - -// pkg/dist-src/index.js -var noop = () => { -}; -var consoleWarn = console.warn.bind(console); -var consoleError = console.error.bind(console); -var userAgentTrail = `octokit-core.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}`; -var Octokit = class { - static { - this.VERSION = VERSION; - } - static defaults(defaults) { - const OctokitWithDefaults = class extends this { - constructor(...args) { - const options = args[0] || {}; - if (typeof defaults === "function") { - super(defaults(options)); - return; - } - super( - Object.assign( - {}, - defaults, - options, - options.userAgent && defaults.userAgent ? { - userAgent: `${options.userAgent} ${defaults.userAgent}` - } : null - ) - ); - } - }; - return OctokitWithDefaults; - } - static { - this.plugins = []; - } - /** - * Attach a plugin (or many) to your Octokit instance. - * - * @example - * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) - */ - static plugin(...newPlugins) { - const currentPlugins = this.plugins; - const NewOctokit = class extends this { - static { - this.plugins = currentPlugins.concat( - newPlugins.filter((plugin) => !currentPlugins.includes(plugin)) - ); - } - }; - return NewOctokit; - } - constructor(options = {}) { - const hook = new import_before_after_hook.Collection(); - const requestDefaults = { - baseUrl: import_request.request.endpoint.DEFAULTS.baseUrl, - headers: {}, - request: Object.assign({}, options.request, { - // @ts-ignore internal usage only, no need to type - hook: hook.bind(null, "request") - }), - mediaType: { - previews: [], - format: "" - } - }; - requestDefaults.headers["user-agent"] = options.userAgent ? `${options.userAgent} ${userAgentTrail}` : userAgentTrail; - if (options.baseUrl) { - requestDefaults.baseUrl = options.baseUrl; - } - if (options.previews) { - requestDefaults.mediaType.previews = options.previews; - } - if (options.timeZone) { - requestDefaults.headers["time-zone"] = options.timeZone; - } - this.request = import_request.request.defaults(requestDefaults); - this.graphql = (0, import_graphql.withCustomRequest)(this.request).defaults(requestDefaults); - this.log = Object.assign( - { - debug: noop, - info: noop, - warn: consoleWarn, - error: consoleError - }, - options.log - ); - this.hook = hook; - if (!options.authStrategy) { - if (!options.auth) { - this.auth = async () => ({ - type: "unauthenticated" - }); - } else { - const auth = (0, import_auth_token.createTokenAuth)(options.auth); - hook.wrap("request", auth.hook); - this.auth = auth; - } - } else { - const { authStrategy, ...otherOptions } = options; - const auth = authStrategy( - Object.assign( - { - request: this.request, - log: this.log, - // we pass the current octokit instance as well as its constructor options - // to allow for authentication strategies that return a new octokit instance - // that shares the same internal state as the current one. The original - // requirement for this was the "event-octokit" authentication strategy - // of https://github.com/probot/octokit-auth-probot. - octokit: this, - octokitOptions: otherOptions - }, - options.auth - ) - ); - hook.wrap("request", auth.hook); - this.auth = auth; - } - const classConstructor = this.constructor; - for (let i = 0; i < classConstructor.plugins.length; ++i) { - Object.assign(this, classConstructor.plugins[i](this, options)); - } - } -}; -// Annotate the CommonJS export names for ESM import in node: -0 && (0); - - -/***/ }), - -/***/ 5092: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// pkg/dist-src/index.js -var dist_src_exports = {}; -__export(dist_src_exports, { - endpoint: () => endpoint -}); -module.exports = __toCommonJS(dist_src_exports); - -// pkg/dist-src/defaults.js -var import_universal_user_agent = __nccwpck_require__(5592); - -// pkg/dist-src/version.js -var VERSION = "9.0.4"; - -// pkg/dist-src/defaults.js -var userAgent = `octokit-endpoint.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}`; -var DEFAULTS = { - method: "GET", - baseUrl: "https://api.github.com", - headers: { - accept: "application/vnd.github.v3+json", - "user-agent": userAgent - }, - mediaType: { - format: "" - } -}; - -// pkg/dist-src/util/lowercase-keys.js -function lowercaseKeys(object) { - if (!object) { - return {}; - } - return Object.keys(object).reduce((newObj, key) => { - newObj[key.toLowerCase()] = object[key]; - return newObj; - }, {}); -} - -// pkg/dist-src/util/is-plain-object.js -function isPlainObject(value) { - if (typeof value !== "object" || value === null) - return false; - if (Object.prototype.toString.call(value) !== "[object Object]") - return false; - const proto = Object.getPrototypeOf(value); - if (proto === null) - return true; - const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; - return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value); -} - -// pkg/dist-src/util/merge-deep.js -function mergeDeep(defaults, options) { - const result = Object.assign({}, defaults); - Object.keys(options).forEach((key) => { - if (isPlainObject(options[key])) { - if (!(key in defaults)) - Object.assign(result, { [key]: options[key] }); - else - result[key] = mergeDeep(defaults[key], options[key]); - } else { - Object.assign(result, { [key]: options[key] }); - } - }); - return result; -} - -// pkg/dist-src/util/remove-undefined-properties.js -function removeUndefinedProperties(obj) { - for (const key in obj) { - if (obj[key] === void 0) { - delete obj[key]; - } - } - return obj; -} - -// pkg/dist-src/merge.js -function merge(defaults, route, options) { - if (typeof route === "string") { - let [method, url] = route.split(" "); - options = Object.assign(url ? { method, url } : { url: method }, options); - } else { - options = Object.assign({}, route); - } - options.headers = lowercaseKeys(options.headers); - removeUndefinedProperties(options); - removeUndefinedProperties(options.headers); - const mergedOptions = mergeDeep(defaults || {}, options); - if (options.url === "/graphql") { - if (defaults && defaults.mediaType.previews?.length) { - mergedOptions.mediaType.previews = defaults.mediaType.previews.filter( - (preview) => !mergedOptions.mediaType.previews.includes(preview) - ).concat(mergedOptions.mediaType.previews); - } - mergedOptions.mediaType.previews = (mergedOptions.mediaType.previews || []).map((preview) => preview.replace(/-preview/, "")); - } - return mergedOptions; -} - -// pkg/dist-src/util/add-query-parameters.js -function addQueryParameters(url, parameters) { - const separator = /\?/.test(url) ? "&" : "?"; - const names = Object.keys(parameters); - if (names.length === 0) { - return url; - } - return url + separator + names.map((name) => { - if (name === "q") { - return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+"); - } - return `${name}=${encodeURIComponent(parameters[name])}`; - }).join("&"); -} - -// pkg/dist-src/util/extract-url-variable-names.js -var urlVariableRegex = /\{[^}]+\}/g; -function removeNonChars(variableName) { - return variableName.replace(/^\W+|\W+$/g, "").split(/,/); -} -function extractUrlVariableNames(url) { - const matches = url.match(urlVariableRegex); - if (!matches) { - return []; - } - return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); -} - -// pkg/dist-src/util/omit.js -function omit(object, keysToOmit) { - const result = { __proto__: null }; - for (const key of Object.keys(object)) { - if (keysToOmit.indexOf(key) === -1) { - result[key] = object[key]; - } - } - return result; -} - -// pkg/dist-src/util/url-template.js -function encodeReserved(str) { - return str.split(/(%[0-9A-Fa-f]{2})/g).map(function(part) { - if (!/%[0-9A-Fa-f]/.test(part)) { - part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]"); - } - return part; - }).join(""); -} -function encodeUnreserved(str) { - return encodeURIComponent(str).replace(/[!'()*]/g, function(c) { - return "%" + c.charCodeAt(0).toString(16).toUpperCase(); - }); -} -function encodeValue(operator, value, key) { - value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value); - if (key) { - return encodeUnreserved(key) + "=" + value; - } else { - return value; - } -} -function isDefined(value) { - return value !== void 0 && value !== null; -} -function isKeyOperator(operator) { - return operator === ";" || operator === "&" || operator === "?"; -} -function getValues(context, operator, key, modifier) { - var value = context[key], result = []; - if (isDefined(value) && value !== "") { - if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") { - value = value.toString(); - if (modifier && modifier !== "*") { - value = value.substring(0, parseInt(modifier, 10)); - } - result.push( - encodeValue(operator, value, isKeyOperator(operator) ? key : "") - ); - } else { - if (modifier === "*") { - if (Array.isArray(value)) { - value.filter(isDefined).forEach(function(value2) { - result.push( - encodeValue(operator, value2, isKeyOperator(operator) ? key : "") - ); - }); - } else { - Object.keys(value).forEach(function(k) { - if (isDefined(value[k])) { - result.push(encodeValue(operator, value[k], k)); - } - }); - } - } else { - const tmp = []; - if (Array.isArray(value)) { - value.filter(isDefined).forEach(function(value2) { - tmp.push(encodeValue(operator, value2)); - }); - } else { - Object.keys(value).forEach(function(k) { - if (isDefined(value[k])) { - tmp.push(encodeUnreserved(k)); - tmp.push(encodeValue(operator, value[k].toString())); - } - }); - } - if (isKeyOperator(operator)) { - result.push(encodeUnreserved(key) + "=" + tmp.join(",")); - } else if (tmp.length !== 0) { - result.push(tmp.join(",")); - } - } - } - } else { - if (operator === ";") { - if (isDefined(value)) { - result.push(encodeUnreserved(key)); - } - } else if (value === "" && (operator === "&" || operator === "?")) { - result.push(encodeUnreserved(key) + "="); - } else if (value === "") { - result.push(""); - } - } - return result; -} -function parseUrl(template) { - return { - expand: expand.bind(null, template) - }; -} -function expand(template, context) { - var operators = ["+", "#", ".", "/", ";", "?", "&"]; - template = template.replace( - /\{([^\{\}]+)\}|([^\{\}]+)/g, - function(_, expression, literal) { - if (expression) { - let operator = ""; - const values = []; - if (operators.indexOf(expression.charAt(0)) !== -1) { - operator = expression.charAt(0); - expression = expression.substr(1); - } - expression.split(/,/g).forEach(function(variable) { - var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable); - values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3])); - }); - if (operator && operator !== "+") { - var separator = ","; - if (operator === "?") { - separator = "&"; - } else if (operator !== "#") { - separator = operator; - } - return (values.length !== 0 ? operator : "") + values.join(separator); - } else { - return values.join(","); - } - } else { - return encodeReserved(literal); - } - } - ); - if (template === "/") { - return template; - } else { - return template.replace(/\/$/, ""); - } -} - -// pkg/dist-src/parse.js -function parse(options) { - let method = options.method.toUpperCase(); - let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}"); - let headers = Object.assign({}, options.headers); - let body; - let parameters = omit(options, [ - "method", - "baseUrl", - "url", - "headers", - "request", - "mediaType" - ]); - const urlVariableNames = extractUrlVariableNames(url); - url = parseUrl(url).expand(parameters); - if (!/^http/.test(url)) { - url = options.baseUrl + url; - } - const omittedParameters = Object.keys(options).filter((option) => urlVariableNames.includes(option)).concat("baseUrl"); - const remainingParameters = omit(parameters, omittedParameters); - const isBinaryRequest = /application\/octet-stream/i.test(headers.accept); - if (!isBinaryRequest) { - if (options.mediaType.format) { - headers.accept = headers.accept.split(/,/).map( - (format) => format.replace( - /application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, - `application/vnd$1$2.${options.mediaType.format}` - ) - ).join(","); - } - if (url.endsWith("/graphql")) { - if (options.mediaType.previews?.length) { - const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; - headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map((preview) => { - const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; - return `application/vnd.github.${preview}-preview${format}`; - }).join(","); - } - } - } - if (["GET", "HEAD"].includes(method)) { - url = addQueryParameters(url, remainingParameters); - } else { - if ("data" in remainingParameters) { - body = remainingParameters.data; - } else { - if (Object.keys(remainingParameters).length) { - body = remainingParameters; - } - } - } - if (!headers["content-type"] && typeof body !== "undefined") { - headers["content-type"] = "application/json; charset=utf-8"; - } - if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { - body = ""; - } - return Object.assign( - { method, url, headers }, - typeof body !== "undefined" ? { body } : null, - options.request ? { request: options.request } : null - ); -} - -// pkg/dist-src/endpoint-with-defaults.js -function endpointWithDefaults(defaults, route, options) { - return parse(merge(defaults, route, options)); -} - -// pkg/dist-src/with-defaults.js -function withDefaults(oldDefaults, newDefaults) { - const DEFAULTS2 = merge(oldDefaults, newDefaults); - const endpoint2 = endpointWithDefaults.bind(null, DEFAULTS2); - return Object.assign(endpoint2, { - DEFAULTS: DEFAULTS2, - defaults: withDefaults.bind(null, DEFAULTS2), - merge: merge.bind(null, DEFAULTS2), - parse - }); -} - -// pkg/dist-src/index.js -var endpoint = withDefaults(null, DEFAULTS); -// Annotate the CommonJS export names for ESM import in node: -0 && (0); - - -/***/ }), - -/***/ 7667: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// pkg/dist-src/index.js -var dist_src_exports = {}; -__export(dist_src_exports, { - GraphqlResponseError: () => GraphqlResponseError, - graphql: () => graphql2, - withCustomRequest: () => withCustomRequest -}); -module.exports = __toCommonJS(dist_src_exports); -var import_request3 = __nccwpck_require__(9620); -var import_universal_user_agent = __nccwpck_require__(5592); - -// pkg/dist-src/version.js -var VERSION = "7.0.2"; - -// pkg/dist-src/with-defaults.js -var import_request2 = __nccwpck_require__(9620); - -// pkg/dist-src/graphql.js -var import_request = __nccwpck_require__(9620); - -// pkg/dist-src/error.js -function _buildMessageForResponseErrors(data) { - return `Request failed due to following response errors: -` + data.errors.map((e) => ` - ${e.message}`).join("\n"); -} -var GraphqlResponseError = class extends Error { - constructor(request2, headers, response) { - super(_buildMessageForResponseErrors(response)); - this.request = request2; - this.headers = headers; - this.response = response; - this.name = "GraphqlResponseError"; - this.errors = response.errors; - this.data = response.data; - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } - } -}; - -// pkg/dist-src/graphql.js -var NON_VARIABLE_OPTIONS = [ - "method", - "baseUrl", - "url", - "headers", - "request", - "query", - "mediaType" -]; -var FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; -var GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; -function graphql(request2, query, options) { - if (options) { - if (typeof query === "string" && "query" in options) { - return Promise.reject( - new Error(`[@octokit/graphql] "query" cannot be used as variable name`) - ); - } - for (const key in options) { - if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) - continue; - return Promise.reject( - new Error( - `[@octokit/graphql] "${key}" cannot be used as variable name` - ) - ); - } - } - const parsedOptions = typeof query === "string" ? Object.assign({ query }, options) : query; - const requestOptions = Object.keys( - parsedOptions - ).reduce((result, key) => { - if (NON_VARIABLE_OPTIONS.includes(key)) { - result[key] = parsedOptions[key]; - return result; - } - if (!result.variables) { - result.variables = {}; - } - result.variables[key] = parsedOptions[key]; - return result; - }, {}); - const baseUrl = parsedOptions.baseUrl || request2.endpoint.DEFAULTS.baseUrl; - if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { - requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); - } - return request2(requestOptions).then((response) => { - if (response.data.errors) { - const headers = {}; - for (const key of Object.keys(response.headers)) { - headers[key] = response.headers[key]; - } - throw new GraphqlResponseError( - requestOptions, - headers, - response.data - ); - } - return response.data.data; - }); -} - -// pkg/dist-src/with-defaults.js -function withDefaults(request2, newDefaults) { - const newRequest = request2.defaults(newDefaults); - const newApi = (query, options) => { - return graphql(newRequest, query, options); - }; - return Object.assign(newApi, { - defaults: withDefaults.bind(null, newRequest), - endpoint: newRequest.endpoint - }); -} - -// pkg/dist-src/index.js -var graphql2 = withDefaults(import_request3.request, { - headers: { - "user-agent": `octokit-graphql.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}` - }, - method: "POST", - url: "/graphql" -}); -function withCustomRequest(customRequest) { - return withDefaults(customRequest, { - method: "POST", - url: "/graphql" - }); -} -// Annotate the CommonJS export names for ESM import in node: -0 && (0); - - -/***/ }), - -/***/ 2889: -/***/ ((module) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// pkg/dist-src/index.js -var dist_src_exports = {}; -__export(dist_src_exports, { - composePaginateRest: () => composePaginateRest, - isPaginatingEndpoint: () => isPaginatingEndpoint, - paginateRest: () => paginateRest, - paginatingEndpoints: () => paginatingEndpoints -}); -module.exports = __toCommonJS(dist_src_exports); - -// pkg/dist-src/version.js -var VERSION = "9.2.1"; - -// pkg/dist-src/normalize-paginated-list-response.js -function normalizePaginatedListResponse(response) { - if (!response.data) { - return { - ...response, - data: [] - }; - } - const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); - if (!responseNeedsNormalization) - return response; - const incompleteResults = response.data.incomplete_results; - const repositorySelection = response.data.repository_selection; - const totalCount = response.data.total_count; - delete response.data.incomplete_results; - delete response.data.repository_selection; - delete response.data.total_count; - const namespaceKey = Object.keys(response.data)[0]; - const data = response.data[namespaceKey]; - response.data = data; - if (typeof incompleteResults !== "undefined") { - response.data.incomplete_results = incompleteResults; - } - if (typeof repositorySelection !== "undefined") { - response.data.repository_selection = repositorySelection; - } - response.data.total_count = totalCount; - return response; -} - -// pkg/dist-src/iterator.js -function iterator(octokit, route, parameters) { - const options = typeof route === "function" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters); - const requestMethod = typeof route === "function" ? route : octokit.request; - const method = options.method; - const headers = options.headers; - let url = options.url; - return { - [Symbol.asyncIterator]: () => ({ - async next() { - if (!url) - return { done: true }; - try { - const response = await requestMethod({ method, url, headers }); - const normalizedResponse = normalizePaginatedListResponse(response); - url = ((normalizedResponse.headers.link || "").match( - /<([^>]+)>;\s*rel="next"/ - ) || [])[1]; - return { value: normalizedResponse }; - } catch (error) { - if (error.status !== 409) - throw error; - url = ""; - return { - value: { - status: 200, - headers: {}, - data: [] - } - }; - } - } - }) - }; -} - -// pkg/dist-src/paginate.js -function paginate(octokit, route, parameters, mapFn) { - if (typeof parameters === "function") { - mapFn = parameters; - parameters = void 0; - } - return gather( - octokit, - [], - iterator(octokit, route, parameters)[Symbol.asyncIterator](), - mapFn - ); -} -function gather(octokit, results, iterator2, mapFn) { - return iterator2.next().then((result) => { - if (result.done) { - return results; - } - let earlyExit = false; - function done() { - earlyExit = true; - } - results = results.concat( - mapFn ? mapFn(result.value, done) : result.value.data - ); - if (earlyExit) { - return results; - } - return gather(octokit, results, iterator2, mapFn); - }); -} - -// pkg/dist-src/compose-paginate.js -var composePaginateRest = Object.assign(paginate, { - iterator -}); - -// pkg/dist-src/generated/paginating-endpoints.js -var paginatingEndpoints = [ - "GET /advisories", - "GET /app/hook/deliveries", - "GET /app/installation-requests", - "GET /app/installations", - "GET /assignments/{assignment_id}/accepted_assignments", - "GET /classrooms", - "GET /classrooms/{classroom_id}/assignments", - "GET /enterprises/{enterprise}/dependabot/alerts", - "GET /enterprises/{enterprise}/secret-scanning/alerts", - "GET /events", - "GET /gists", - "GET /gists/public", - "GET /gists/starred", - "GET /gists/{gist_id}/comments", - "GET /gists/{gist_id}/commits", - "GET /gists/{gist_id}/forks", - "GET /installation/repositories", - "GET /issues", - "GET /licenses", - "GET /marketplace_listing/plans", - "GET /marketplace_listing/plans/{plan_id}/accounts", - "GET /marketplace_listing/stubbed/plans", - "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts", - "GET /networks/{owner}/{repo}/events", - "GET /notifications", - "GET /organizations", - "GET /orgs/{org}/actions/cache/usage-by-repository", - "GET /orgs/{org}/actions/permissions/repositories", - "GET /orgs/{org}/actions/runners", - "GET /orgs/{org}/actions/secrets", - "GET /orgs/{org}/actions/secrets/{secret_name}/repositories", - "GET /orgs/{org}/actions/variables", - "GET /orgs/{org}/actions/variables/{name}/repositories", - "GET /orgs/{org}/blocks", - "GET /orgs/{org}/code-scanning/alerts", - "GET /orgs/{org}/codespaces", - "GET /orgs/{org}/codespaces/secrets", - "GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories", - "GET /orgs/{org}/copilot/billing/seats", - "GET /orgs/{org}/dependabot/alerts", - "GET /orgs/{org}/dependabot/secrets", - "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories", - "GET /orgs/{org}/events", - "GET /orgs/{org}/failed_invitations", - "GET /orgs/{org}/hooks", - "GET /orgs/{org}/hooks/{hook_id}/deliveries", - "GET /orgs/{org}/installations", - "GET /orgs/{org}/invitations", - "GET /orgs/{org}/invitations/{invitation_id}/teams", - "GET /orgs/{org}/issues", - "GET /orgs/{org}/members", - "GET /orgs/{org}/members/{username}/codespaces", - "GET /orgs/{org}/migrations", - "GET /orgs/{org}/migrations/{migration_id}/repositories", - "GET /orgs/{org}/organization-roles/{role_id}/teams", - "GET /orgs/{org}/organization-roles/{role_id}/users", - "GET /orgs/{org}/outside_collaborators", - "GET /orgs/{org}/packages", - "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", - "GET /orgs/{org}/personal-access-token-requests", - "GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories", - "GET /orgs/{org}/personal-access-tokens", - "GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories", - "GET /orgs/{org}/projects", - "GET /orgs/{org}/properties/values", - "GET /orgs/{org}/public_members", - "GET /orgs/{org}/repos", - "GET /orgs/{org}/rulesets", - "GET /orgs/{org}/rulesets/rule-suites", - "GET /orgs/{org}/secret-scanning/alerts", - "GET /orgs/{org}/security-advisories", - "GET /orgs/{org}/teams", - "GET /orgs/{org}/teams/{team_slug}/discussions", - "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", - "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", - "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", - "GET /orgs/{org}/teams/{team_slug}/invitations", - "GET /orgs/{org}/teams/{team_slug}/members", - "GET /orgs/{org}/teams/{team_slug}/projects", - "GET /orgs/{org}/teams/{team_slug}/repos", - "GET /orgs/{org}/teams/{team_slug}/teams", - "GET /projects/columns/{column_id}/cards", - "GET /projects/{project_id}/collaborators", - "GET /projects/{project_id}/columns", - "GET /repos/{owner}/{repo}/actions/artifacts", - "GET /repos/{owner}/{repo}/actions/caches", - "GET /repos/{owner}/{repo}/actions/organization-secrets", - "GET /repos/{owner}/{repo}/actions/organization-variables", - "GET /repos/{owner}/{repo}/actions/runners", - "GET /repos/{owner}/{repo}/actions/runs", - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs", - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs", - "GET /repos/{owner}/{repo}/actions/secrets", - "GET /repos/{owner}/{repo}/actions/variables", - "GET /repos/{owner}/{repo}/actions/workflows", - "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", - "GET /repos/{owner}/{repo}/activity", - "GET /repos/{owner}/{repo}/assignees", - "GET /repos/{owner}/{repo}/branches", - "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", - "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", - "GET /repos/{owner}/{repo}/code-scanning/alerts", - "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", - "GET /repos/{owner}/{repo}/code-scanning/analyses", - "GET /repos/{owner}/{repo}/codespaces", - "GET /repos/{owner}/{repo}/codespaces/devcontainers", - "GET /repos/{owner}/{repo}/codespaces/secrets", - "GET /repos/{owner}/{repo}/collaborators", - "GET /repos/{owner}/{repo}/comments", - "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions", - "GET /repos/{owner}/{repo}/commits", - "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments", - "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls", - "GET /repos/{owner}/{repo}/commits/{ref}/check-runs", - "GET /repos/{owner}/{repo}/commits/{ref}/check-suites", - "GET /repos/{owner}/{repo}/commits/{ref}/status", - "GET /repos/{owner}/{repo}/commits/{ref}/statuses", - "GET /repos/{owner}/{repo}/contributors", - "GET /repos/{owner}/{repo}/dependabot/alerts", - "GET /repos/{owner}/{repo}/dependabot/secrets", - "GET /repos/{owner}/{repo}/deployments", - "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses", - "GET /repos/{owner}/{repo}/environments", - "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies", - "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps", - "GET /repos/{owner}/{repo}/events", - "GET /repos/{owner}/{repo}/forks", - "GET /repos/{owner}/{repo}/hooks", - "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries", - "GET /repos/{owner}/{repo}/invitations", - "GET /repos/{owner}/{repo}/issues", - "GET /repos/{owner}/{repo}/issues/comments", - "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", - "GET /repos/{owner}/{repo}/issues/events", - "GET /repos/{owner}/{repo}/issues/{issue_number}/comments", - "GET /repos/{owner}/{repo}/issues/{issue_number}/events", - "GET /repos/{owner}/{repo}/issues/{issue_number}/labels", - "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions", - "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline", - "GET /repos/{owner}/{repo}/keys", - "GET /repos/{owner}/{repo}/labels", - "GET /repos/{owner}/{repo}/milestones", - "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels", - "GET /repos/{owner}/{repo}/notifications", - "GET /repos/{owner}/{repo}/pages/builds", - "GET /repos/{owner}/{repo}/projects", - "GET /repos/{owner}/{repo}/pulls", - "GET /repos/{owner}/{repo}/pulls/comments", - "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", - "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments", - "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits", - "GET /repos/{owner}/{repo}/pulls/{pull_number}/files", - "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews", - "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", - "GET /repos/{owner}/{repo}/releases", - "GET /repos/{owner}/{repo}/releases/{release_id}/assets", - "GET /repos/{owner}/{repo}/releases/{release_id}/reactions", - "GET /repos/{owner}/{repo}/rules/branches/{branch}", - "GET /repos/{owner}/{repo}/rulesets", - "GET /repos/{owner}/{repo}/rulesets/rule-suites", - "GET /repos/{owner}/{repo}/secret-scanning/alerts", - "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations", - "GET /repos/{owner}/{repo}/security-advisories", - "GET /repos/{owner}/{repo}/stargazers", - "GET /repos/{owner}/{repo}/subscribers", - "GET /repos/{owner}/{repo}/tags", - "GET /repos/{owner}/{repo}/teams", - "GET /repos/{owner}/{repo}/topics", - "GET /repositories", - "GET /repositories/{repository_id}/environments/{environment_name}/secrets", - "GET /repositories/{repository_id}/environments/{environment_name}/variables", - "GET /search/code", - "GET /search/commits", - "GET /search/issues", - "GET /search/labels", - "GET /search/repositories", - "GET /search/topics", - "GET /search/users", - "GET /teams/{team_id}/discussions", - "GET /teams/{team_id}/discussions/{discussion_number}/comments", - "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", - "GET /teams/{team_id}/discussions/{discussion_number}/reactions", - "GET /teams/{team_id}/invitations", - "GET /teams/{team_id}/members", - "GET /teams/{team_id}/projects", - "GET /teams/{team_id}/repos", - "GET /teams/{team_id}/teams", - "GET /user/blocks", - "GET /user/codespaces", - "GET /user/codespaces/secrets", - "GET /user/emails", - "GET /user/followers", - "GET /user/following", - "GET /user/gpg_keys", - "GET /user/installations", - "GET /user/installations/{installation_id}/repositories", - "GET /user/issues", - "GET /user/keys", - "GET /user/marketplace_purchases", - "GET /user/marketplace_purchases/stubbed", - "GET /user/memberships/orgs", - "GET /user/migrations", - "GET /user/migrations/{migration_id}/repositories", - "GET /user/orgs", - "GET /user/packages", - "GET /user/packages/{package_type}/{package_name}/versions", - "GET /user/public_emails", - "GET /user/repos", - "GET /user/repository_invitations", - "GET /user/social_accounts", - "GET /user/ssh_signing_keys", - "GET /user/starred", - "GET /user/subscriptions", - "GET /user/teams", - "GET /users", - "GET /users/{username}/events", - "GET /users/{username}/events/orgs/{org}", - "GET /users/{username}/events/public", - "GET /users/{username}/followers", - "GET /users/{username}/following", - "GET /users/{username}/gists", - "GET /users/{username}/gpg_keys", - "GET /users/{username}/keys", - "GET /users/{username}/orgs", - "GET /users/{username}/packages", - "GET /users/{username}/projects", - "GET /users/{username}/received_events", - "GET /users/{username}/received_events/public", - "GET /users/{username}/repos", - "GET /users/{username}/social_accounts", - "GET /users/{username}/ssh_signing_keys", - "GET /users/{username}/starred", - "GET /users/{username}/subscriptions" -]; - -// pkg/dist-src/paginating-endpoints.js -function isPaginatingEndpoint(arg) { - if (typeof arg === "string") { - return paginatingEndpoints.includes(arg); - } else { - return false; - } -} - -// pkg/dist-src/index.js -function paginateRest(octokit) { - return { - paginate: Object.assign(paginate.bind(null, octokit), { - iterator: iterator.bind(null, octokit) - }) - }; -} -paginateRest.VERSION = VERSION; -// Annotate the CommonJS export names for ESM import in node: -0 && (0); - - -/***/ }), - -/***/ 4319: -/***/ ((module) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// pkg/dist-src/index.js -var dist_src_exports = {}; -__export(dist_src_exports, { - legacyRestEndpointMethods: () => legacyRestEndpointMethods, - restEndpointMethods: () => restEndpointMethods -}); -module.exports = __toCommonJS(dist_src_exports); - -// pkg/dist-src/version.js -var VERSION = "10.4.1"; - -// pkg/dist-src/generated/endpoints.js -var Endpoints = { - actions: { - addCustomLabelsToSelfHostedRunnerForOrg: [ - "POST /orgs/{org}/actions/runners/{runner_id}/labels" - ], - addCustomLabelsToSelfHostedRunnerForRepo: [ - "POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" - ], - addSelectedRepoToOrgSecret: [ - "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}" - ], - addSelectedRepoToOrgVariable: [ - "PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}" - ], - approveWorkflowRun: [ - "POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve" - ], - cancelWorkflowRun: [ - "POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel" - ], - createEnvironmentVariable: [ - "POST /repositories/{repository_id}/environments/{environment_name}/variables" - ], - createOrUpdateEnvironmentSecret: [ - "PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}" - ], - createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], - createOrUpdateRepoSecret: [ - "PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}" - ], - createOrgVariable: ["POST /orgs/{org}/actions/variables"], - createRegistrationTokenForOrg: [ - "POST /orgs/{org}/actions/runners/registration-token" - ], - createRegistrationTokenForRepo: [ - "POST /repos/{owner}/{repo}/actions/runners/registration-token" - ], - createRemoveTokenForOrg: ["POST /orgs/{org}/actions/runners/remove-token"], - createRemoveTokenForRepo: [ - "POST /repos/{owner}/{repo}/actions/runners/remove-token" - ], - createRepoVariable: ["POST /repos/{owner}/{repo}/actions/variables"], - createWorkflowDispatch: [ - "POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches" - ], - deleteActionsCacheById: [ - "DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}" - ], - deleteActionsCacheByKey: [ - "DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}" - ], - deleteArtifact: [ - "DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}" - ], - deleteEnvironmentSecret: [ - "DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}" - ], - deleteEnvironmentVariable: [ - "DELETE /repositories/{repository_id}/environments/{environment_name}/variables/{name}" - ], - deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], - deleteOrgVariable: ["DELETE /orgs/{org}/actions/variables/{name}"], - deleteRepoSecret: [ - "DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}" - ], - deleteRepoVariable: [ - "DELETE /repos/{owner}/{repo}/actions/variables/{name}" - ], - deleteSelfHostedRunnerFromOrg: [ - "DELETE /orgs/{org}/actions/runners/{runner_id}" - ], - deleteSelfHostedRunnerFromRepo: [ - "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}" - ], - deleteWorkflowRun: ["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"], - deleteWorkflowRunLogs: [ - "DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs" - ], - disableSelectedRepositoryGithubActionsOrganization: [ - "DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}" - ], - disableWorkflow: [ - "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable" - ], - downloadArtifact: [ - "GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}" - ], - downloadJobLogsForWorkflowRun: [ - "GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs" - ], - downloadWorkflowRunAttemptLogs: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs" - ], - downloadWorkflowRunLogs: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs" - ], - enableSelectedRepositoryGithubActionsOrganization: [ - "PUT /orgs/{org}/actions/permissions/repositories/{repository_id}" - ], - enableWorkflow: [ - "PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable" - ], - forceCancelWorkflowRun: [ - "POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel" - ], - generateRunnerJitconfigForOrg: [ - "POST /orgs/{org}/actions/runners/generate-jitconfig" - ], - generateRunnerJitconfigForRepo: [ - "POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig" - ], - getActionsCacheList: ["GET /repos/{owner}/{repo}/actions/caches"], - getActionsCacheUsage: ["GET /repos/{owner}/{repo}/actions/cache/usage"], - getActionsCacheUsageByRepoForOrg: [ - "GET /orgs/{org}/actions/cache/usage-by-repository" - ], - getActionsCacheUsageForOrg: ["GET /orgs/{org}/actions/cache/usage"], - getAllowedActionsOrganization: [ - "GET /orgs/{org}/actions/permissions/selected-actions" - ], - getAllowedActionsRepository: [ - "GET /repos/{owner}/{repo}/actions/permissions/selected-actions" - ], - getArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"], - getCustomOidcSubClaimForRepo: [ - "GET /repos/{owner}/{repo}/actions/oidc/customization/sub" - ], - getEnvironmentPublicKey: [ - "GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key" - ], - getEnvironmentSecret: [ - "GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}" - ], - getEnvironmentVariable: [ - "GET /repositories/{repository_id}/environments/{environment_name}/variables/{name}" - ], - getGithubActionsDefaultWorkflowPermissionsOrganization: [ - "GET /orgs/{org}/actions/permissions/workflow" - ], - getGithubActionsDefaultWorkflowPermissionsRepository: [ - "GET /repos/{owner}/{repo}/actions/permissions/workflow" - ], - getGithubActionsPermissionsOrganization: [ - "GET /orgs/{org}/actions/permissions" - ], - getGithubActionsPermissionsRepository: [ - "GET /repos/{owner}/{repo}/actions/permissions" - ], - getJobForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"], - getOrgPublicKey: ["GET /orgs/{org}/actions/secrets/public-key"], - getOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}"], - getOrgVariable: ["GET /orgs/{org}/actions/variables/{name}"], - getPendingDeploymentsForRun: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments" - ], - getRepoPermissions: [ - "GET /repos/{owner}/{repo}/actions/permissions", - {}, - { renamed: ["actions", "getGithubActionsPermissionsRepository"] } - ], - getRepoPublicKey: ["GET /repos/{owner}/{repo}/actions/secrets/public-key"], - getRepoSecret: ["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"], - getRepoVariable: ["GET /repos/{owner}/{repo}/actions/variables/{name}"], - getReviewsForRun: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals" - ], - getSelfHostedRunnerForOrg: ["GET /orgs/{org}/actions/runners/{runner_id}"], - getSelfHostedRunnerForRepo: [ - "GET /repos/{owner}/{repo}/actions/runners/{runner_id}" - ], - getWorkflow: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"], - getWorkflowAccessToRepository: [ - "GET /repos/{owner}/{repo}/actions/permissions/access" - ], - getWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}"], - getWorkflowRunAttempt: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}" - ], - getWorkflowRunUsage: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing" - ], - getWorkflowUsage: [ - "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing" - ], - listArtifactsForRepo: ["GET /repos/{owner}/{repo}/actions/artifacts"], - listEnvironmentSecrets: [ - "GET /repositories/{repository_id}/environments/{environment_name}/secrets" - ], - listEnvironmentVariables: [ - "GET /repositories/{repository_id}/environments/{environment_name}/variables" - ], - listJobsForWorkflowRun: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs" - ], - listJobsForWorkflowRunAttempt: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs" - ], - listLabelsForSelfHostedRunnerForOrg: [ - "GET /orgs/{org}/actions/runners/{runner_id}/labels" - ], - listLabelsForSelfHostedRunnerForRepo: [ - "GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" - ], - listOrgSecrets: ["GET /orgs/{org}/actions/secrets"], - listOrgVariables: ["GET /orgs/{org}/actions/variables"], - listRepoOrganizationSecrets: [ - "GET /repos/{owner}/{repo}/actions/organization-secrets" - ], - listRepoOrganizationVariables: [ - "GET /repos/{owner}/{repo}/actions/organization-variables" - ], - listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], - listRepoVariables: ["GET /repos/{owner}/{repo}/actions/variables"], - listRepoWorkflows: ["GET /repos/{owner}/{repo}/actions/workflows"], - listRunnerApplicationsForOrg: ["GET /orgs/{org}/actions/runners/downloads"], - listRunnerApplicationsForRepo: [ - "GET /repos/{owner}/{repo}/actions/runners/downloads" - ], - listSelectedReposForOrgSecret: [ - "GET /orgs/{org}/actions/secrets/{secret_name}/repositories" - ], - listSelectedReposForOrgVariable: [ - "GET /orgs/{org}/actions/variables/{name}/repositories" - ], - listSelectedRepositoriesEnabledGithubActionsOrganization: [ - "GET /orgs/{org}/actions/permissions/repositories" - ], - listSelfHostedRunnersForOrg: ["GET /orgs/{org}/actions/runners"], - listSelfHostedRunnersForRepo: ["GET /repos/{owner}/{repo}/actions/runners"], - listWorkflowRunArtifacts: [ - "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts" - ], - listWorkflowRuns: [ - "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs" - ], - listWorkflowRunsForRepo: ["GET /repos/{owner}/{repo}/actions/runs"], - reRunJobForWorkflowRun: [ - "POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun" - ], - reRunWorkflow: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"], - reRunWorkflowFailedJobs: [ - "POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs" - ], - removeAllCustomLabelsFromSelfHostedRunnerForOrg: [ - "DELETE /orgs/{org}/actions/runners/{runner_id}/labels" - ], - removeAllCustomLabelsFromSelfHostedRunnerForRepo: [ - "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" - ], - removeCustomLabelFromSelfHostedRunnerForOrg: [ - "DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}" - ], - removeCustomLabelFromSelfHostedRunnerForRepo: [ - "DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}" - ], - removeSelectedRepoFromOrgSecret: [ - "DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}" - ], - removeSelectedRepoFromOrgVariable: [ - "DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}" - ], - reviewCustomGatesForRun: [ - "POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule" - ], - reviewPendingDeploymentsForRun: [ - "POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments" - ], - setAllowedActionsOrganization: [ - "PUT /orgs/{org}/actions/permissions/selected-actions" - ], - setAllowedActionsRepository: [ - "PUT /repos/{owner}/{repo}/actions/permissions/selected-actions" - ], - setCustomLabelsForSelfHostedRunnerForOrg: [ - "PUT /orgs/{org}/actions/runners/{runner_id}/labels" - ], - setCustomLabelsForSelfHostedRunnerForRepo: [ - "PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels" - ], - setCustomOidcSubClaimForRepo: [ - "PUT /repos/{owner}/{repo}/actions/oidc/customization/sub" - ], - setGithubActionsDefaultWorkflowPermissionsOrganization: [ - "PUT /orgs/{org}/actions/permissions/workflow" - ], - setGithubActionsDefaultWorkflowPermissionsRepository: [ - "PUT /repos/{owner}/{repo}/actions/permissions/workflow" - ], - setGithubActionsPermissionsOrganization: [ - "PUT /orgs/{org}/actions/permissions" - ], - setGithubActionsPermissionsRepository: [ - "PUT /repos/{owner}/{repo}/actions/permissions" - ], - setSelectedReposForOrgSecret: [ - "PUT /orgs/{org}/actions/secrets/{secret_name}/repositories" - ], - setSelectedReposForOrgVariable: [ - "PUT /orgs/{org}/actions/variables/{name}/repositories" - ], - setSelectedRepositoriesEnabledGithubActionsOrganization: [ - "PUT /orgs/{org}/actions/permissions/repositories" - ], - setWorkflowAccessToRepository: [ - "PUT /repos/{owner}/{repo}/actions/permissions/access" - ], - updateEnvironmentVariable: [ - "PATCH /repositories/{repository_id}/environments/{environment_name}/variables/{name}" - ], - updateOrgVariable: ["PATCH /orgs/{org}/actions/variables/{name}"], - updateRepoVariable: [ - "PATCH /repos/{owner}/{repo}/actions/variables/{name}" - ] - }, - activity: { - checkRepoIsStarredByAuthenticatedUser: ["GET /user/starred/{owner}/{repo}"], - deleteRepoSubscription: ["DELETE /repos/{owner}/{repo}/subscription"], - deleteThreadSubscription: [ - "DELETE /notifications/threads/{thread_id}/subscription" - ], - getFeeds: ["GET /feeds"], - getRepoSubscription: ["GET /repos/{owner}/{repo}/subscription"], - getThread: ["GET /notifications/threads/{thread_id}"], - getThreadSubscriptionForAuthenticatedUser: [ - "GET /notifications/threads/{thread_id}/subscription" - ], - listEventsForAuthenticatedUser: ["GET /users/{username}/events"], - listNotificationsForAuthenticatedUser: ["GET /notifications"], - listOrgEventsForAuthenticatedUser: [ - "GET /users/{username}/events/orgs/{org}" - ], - listPublicEvents: ["GET /events"], - listPublicEventsForRepoNetwork: ["GET /networks/{owner}/{repo}/events"], - listPublicEventsForUser: ["GET /users/{username}/events/public"], - listPublicOrgEvents: ["GET /orgs/{org}/events"], - listReceivedEventsForUser: ["GET /users/{username}/received_events"], - listReceivedPublicEventsForUser: [ - "GET /users/{username}/received_events/public" - ], - listRepoEvents: ["GET /repos/{owner}/{repo}/events"], - listRepoNotificationsForAuthenticatedUser: [ - "GET /repos/{owner}/{repo}/notifications" - ], - listReposStarredByAuthenticatedUser: ["GET /user/starred"], - listReposStarredByUser: ["GET /users/{username}/starred"], - listReposWatchedByUser: ["GET /users/{username}/subscriptions"], - listStargazersForRepo: ["GET /repos/{owner}/{repo}/stargazers"], - listWatchedReposForAuthenticatedUser: ["GET /user/subscriptions"], - listWatchersForRepo: ["GET /repos/{owner}/{repo}/subscribers"], - markNotificationsAsRead: ["PUT /notifications"], - markRepoNotificationsAsRead: ["PUT /repos/{owner}/{repo}/notifications"], - markThreadAsDone: ["DELETE /notifications/threads/{thread_id}"], - markThreadAsRead: ["PATCH /notifications/threads/{thread_id}"], - setRepoSubscription: ["PUT /repos/{owner}/{repo}/subscription"], - setThreadSubscription: [ - "PUT /notifications/threads/{thread_id}/subscription" - ], - starRepoForAuthenticatedUser: ["PUT /user/starred/{owner}/{repo}"], - unstarRepoForAuthenticatedUser: ["DELETE /user/starred/{owner}/{repo}"] - }, - apps: { - addRepoToInstallation: [ - "PUT /user/installations/{installation_id}/repositories/{repository_id}", - {}, - { renamed: ["apps", "addRepoToInstallationForAuthenticatedUser"] } - ], - addRepoToInstallationForAuthenticatedUser: [ - "PUT /user/installations/{installation_id}/repositories/{repository_id}" - ], - checkToken: ["POST /applications/{client_id}/token"], - createFromManifest: ["POST /app-manifests/{code}/conversions"], - createInstallationAccessToken: [ - "POST /app/installations/{installation_id}/access_tokens" - ], - deleteAuthorization: ["DELETE /applications/{client_id}/grant"], - deleteInstallation: ["DELETE /app/installations/{installation_id}"], - deleteToken: ["DELETE /applications/{client_id}/token"], - getAuthenticated: ["GET /app"], - getBySlug: ["GET /apps/{app_slug}"], - getInstallation: ["GET /app/installations/{installation_id}"], - getOrgInstallation: ["GET /orgs/{org}/installation"], - getRepoInstallation: ["GET /repos/{owner}/{repo}/installation"], - getSubscriptionPlanForAccount: [ - "GET /marketplace_listing/accounts/{account_id}" - ], - getSubscriptionPlanForAccountStubbed: [ - "GET /marketplace_listing/stubbed/accounts/{account_id}" - ], - getUserInstallation: ["GET /users/{username}/installation"], - getWebhookConfigForApp: ["GET /app/hook/config"], - getWebhookDelivery: ["GET /app/hook/deliveries/{delivery_id}"], - listAccountsForPlan: ["GET /marketplace_listing/plans/{plan_id}/accounts"], - listAccountsForPlanStubbed: [ - "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts" - ], - listInstallationReposForAuthenticatedUser: [ - "GET /user/installations/{installation_id}/repositories" - ], - listInstallationRequestsForAuthenticatedApp: [ - "GET /app/installation-requests" - ], - listInstallations: ["GET /app/installations"], - listInstallationsForAuthenticatedUser: ["GET /user/installations"], - listPlans: ["GET /marketplace_listing/plans"], - listPlansStubbed: ["GET /marketplace_listing/stubbed/plans"], - listReposAccessibleToInstallation: ["GET /installation/repositories"], - listSubscriptionsForAuthenticatedUser: ["GET /user/marketplace_purchases"], - listSubscriptionsForAuthenticatedUserStubbed: [ - "GET /user/marketplace_purchases/stubbed" - ], - listWebhookDeliveries: ["GET /app/hook/deliveries"], - redeliverWebhookDelivery: [ - "POST /app/hook/deliveries/{delivery_id}/attempts" - ], - removeRepoFromInstallation: [ - "DELETE /user/installations/{installation_id}/repositories/{repository_id}", - {}, - { renamed: ["apps", "removeRepoFromInstallationForAuthenticatedUser"] } - ], - removeRepoFromInstallationForAuthenticatedUser: [ - "DELETE /user/installations/{installation_id}/repositories/{repository_id}" - ], - resetToken: ["PATCH /applications/{client_id}/token"], - revokeInstallationAccessToken: ["DELETE /installation/token"], - scopeToken: ["POST /applications/{client_id}/token/scoped"], - suspendInstallation: ["PUT /app/installations/{installation_id}/suspended"], - unsuspendInstallation: [ - "DELETE /app/installations/{installation_id}/suspended" - ], - updateWebhookConfigForApp: ["PATCH /app/hook/config"] - }, - billing: { - getGithubActionsBillingOrg: ["GET /orgs/{org}/settings/billing/actions"], - getGithubActionsBillingUser: [ - "GET /users/{username}/settings/billing/actions" - ], - getGithubPackagesBillingOrg: ["GET /orgs/{org}/settings/billing/packages"], - getGithubPackagesBillingUser: [ - "GET /users/{username}/settings/billing/packages" - ], - getSharedStorageBillingOrg: [ - "GET /orgs/{org}/settings/billing/shared-storage" - ], - getSharedStorageBillingUser: [ - "GET /users/{username}/settings/billing/shared-storage" - ] - }, - checks: { - create: ["POST /repos/{owner}/{repo}/check-runs"], - createSuite: ["POST /repos/{owner}/{repo}/check-suites"], - get: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"], - getSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"], - listAnnotations: [ - "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations" - ], - listForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"], - listForSuite: [ - "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs" - ], - listSuitesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"], - rerequestRun: [ - "POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest" - ], - rerequestSuite: [ - "POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest" - ], - setSuitesPreferences: [ - "PATCH /repos/{owner}/{repo}/check-suites/preferences" - ], - update: ["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"] - }, - codeScanning: { - deleteAnalysis: [ - "DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}" - ], - getAlert: [ - "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", - {}, - { renamedParameters: { alert_id: "alert_number" } } - ], - getAnalysis: [ - "GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}" - ], - getCodeqlDatabase: [ - "GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}" - ], - getDefaultSetup: ["GET /repos/{owner}/{repo}/code-scanning/default-setup"], - getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"], - listAlertInstances: [ - "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances" - ], - listAlertsForOrg: ["GET /orgs/{org}/code-scanning/alerts"], - listAlertsForRepo: ["GET /repos/{owner}/{repo}/code-scanning/alerts"], - listAlertsInstances: [ - "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", - {}, - { renamed: ["codeScanning", "listAlertInstances"] } - ], - listCodeqlDatabases: [ - "GET /repos/{owner}/{repo}/code-scanning/codeql/databases" - ], - listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], - updateAlert: [ - "PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}" - ], - updateDefaultSetup: [ - "PATCH /repos/{owner}/{repo}/code-scanning/default-setup" - ], - uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"] - }, - codesOfConduct: { - getAllCodesOfConduct: ["GET /codes_of_conduct"], - getConductCode: ["GET /codes_of_conduct/{key}"] - }, - codespaces: { - addRepositoryForSecretForAuthenticatedUser: [ - "PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}" - ], - addSelectedRepoToOrgSecret: [ - "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}" - ], - checkPermissionsForDevcontainer: [ - "GET /repos/{owner}/{repo}/codespaces/permissions_check" - ], - codespaceMachinesForAuthenticatedUser: [ - "GET /user/codespaces/{codespace_name}/machines" - ], - createForAuthenticatedUser: ["POST /user/codespaces"], - createOrUpdateOrgSecret: [ - "PUT /orgs/{org}/codespaces/secrets/{secret_name}" - ], - createOrUpdateRepoSecret: [ - "PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" - ], - createOrUpdateSecretForAuthenticatedUser: [ - "PUT /user/codespaces/secrets/{secret_name}" - ], - createWithPrForAuthenticatedUser: [ - "POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces" - ], - createWithRepoForAuthenticatedUser: [ - "POST /repos/{owner}/{repo}/codespaces" - ], - deleteForAuthenticatedUser: ["DELETE /user/codespaces/{codespace_name}"], - deleteFromOrganization: [ - "DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}" - ], - deleteOrgSecret: ["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"], - deleteRepoSecret: [ - "DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" - ], - deleteSecretForAuthenticatedUser: [ - "DELETE /user/codespaces/secrets/{secret_name}" - ], - exportForAuthenticatedUser: [ - "POST /user/codespaces/{codespace_name}/exports" - ], - getCodespacesForUserInOrg: [ - "GET /orgs/{org}/members/{username}/codespaces" - ], - getExportDetailsForAuthenticatedUser: [ - "GET /user/codespaces/{codespace_name}/exports/{export_id}" - ], - getForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}"], - getOrgPublicKey: ["GET /orgs/{org}/codespaces/secrets/public-key"], - getOrgSecret: ["GET /orgs/{org}/codespaces/secrets/{secret_name}"], - getPublicKeyForAuthenticatedUser: [ - "GET /user/codespaces/secrets/public-key" - ], - getRepoPublicKey: [ - "GET /repos/{owner}/{repo}/codespaces/secrets/public-key" - ], - getRepoSecret: [ - "GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}" - ], - getSecretForAuthenticatedUser: [ - "GET /user/codespaces/secrets/{secret_name}" - ], - listDevcontainersInRepositoryForAuthenticatedUser: [ - "GET /repos/{owner}/{repo}/codespaces/devcontainers" - ], - listForAuthenticatedUser: ["GET /user/codespaces"], - listInOrganization: [ - "GET /orgs/{org}/codespaces", - {}, - { renamedParameters: { org_id: "org" } } - ], - listInRepositoryForAuthenticatedUser: [ - "GET /repos/{owner}/{repo}/codespaces" - ], - listOrgSecrets: ["GET /orgs/{org}/codespaces/secrets"], - listRepoSecrets: ["GET /repos/{owner}/{repo}/codespaces/secrets"], - listRepositoriesForSecretForAuthenticatedUser: [ - "GET /user/codespaces/secrets/{secret_name}/repositories" - ], - listSecretsForAuthenticatedUser: ["GET /user/codespaces/secrets"], - listSelectedReposForOrgSecret: [ - "GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories" - ], - preFlightWithRepoForAuthenticatedUser: [ - "GET /repos/{owner}/{repo}/codespaces/new" - ], - publishForAuthenticatedUser: [ - "POST /user/codespaces/{codespace_name}/publish" - ], - removeRepositoryForSecretForAuthenticatedUser: [ - "DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}" - ], - removeSelectedRepoFromOrgSecret: [ - "DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}" - ], - repoMachinesForAuthenticatedUser: [ - "GET /repos/{owner}/{repo}/codespaces/machines" - ], - setRepositoriesForSecretForAuthenticatedUser: [ - "PUT /user/codespaces/secrets/{secret_name}/repositories" - ], - setSelectedReposForOrgSecret: [ - "PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories" - ], - startForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/start"], - stopForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/stop"], - stopInOrganization: [ - "POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop" - ], - updateForAuthenticatedUser: ["PATCH /user/codespaces/{codespace_name}"] - }, - copilot: { - addCopilotSeatsForTeams: [ - "POST /orgs/{org}/copilot/billing/selected_teams" - ], - addCopilotSeatsForUsers: [ - "POST /orgs/{org}/copilot/billing/selected_users" - ], - cancelCopilotSeatAssignmentForTeams: [ - "DELETE /orgs/{org}/copilot/billing/selected_teams" - ], - cancelCopilotSeatAssignmentForUsers: [ - "DELETE /orgs/{org}/copilot/billing/selected_users" - ], - getCopilotOrganizationDetails: ["GET /orgs/{org}/copilot/billing"], - getCopilotSeatDetailsForUser: [ - "GET /orgs/{org}/members/{username}/copilot" - ], - listCopilotSeats: ["GET /orgs/{org}/copilot/billing/seats"] - }, - dependabot: { - addSelectedRepoToOrgSecret: [ - "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}" - ], - createOrUpdateOrgSecret: [ - "PUT /orgs/{org}/dependabot/secrets/{secret_name}" - ], - createOrUpdateRepoSecret: [ - "PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" - ], - deleteOrgSecret: ["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"], - deleteRepoSecret: [ - "DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" - ], - getAlert: ["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"], - getOrgPublicKey: ["GET /orgs/{org}/dependabot/secrets/public-key"], - getOrgSecret: ["GET /orgs/{org}/dependabot/secrets/{secret_name}"], - getRepoPublicKey: [ - "GET /repos/{owner}/{repo}/dependabot/secrets/public-key" - ], - getRepoSecret: [ - "GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}" - ], - listAlertsForEnterprise: [ - "GET /enterprises/{enterprise}/dependabot/alerts" - ], - listAlertsForOrg: ["GET /orgs/{org}/dependabot/alerts"], - listAlertsForRepo: ["GET /repos/{owner}/{repo}/dependabot/alerts"], - listOrgSecrets: ["GET /orgs/{org}/dependabot/secrets"], - listRepoSecrets: ["GET /repos/{owner}/{repo}/dependabot/secrets"], - listSelectedReposForOrgSecret: [ - "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories" - ], - removeSelectedRepoFromOrgSecret: [ - "DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}" - ], - setSelectedReposForOrgSecret: [ - "PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories" - ], - updateAlert: [ - "PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}" - ] - }, - dependencyGraph: { - createRepositorySnapshot: [ - "POST /repos/{owner}/{repo}/dependency-graph/snapshots" - ], - diffRange: [ - "GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}" - ], - exportSbom: ["GET /repos/{owner}/{repo}/dependency-graph/sbom"] - }, - emojis: { get: ["GET /emojis"] }, - gists: { - checkIsStarred: ["GET /gists/{gist_id}/star"], - create: ["POST /gists"], - createComment: ["POST /gists/{gist_id}/comments"], - delete: ["DELETE /gists/{gist_id}"], - deleteComment: ["DELETE /gists/{gist_id}/comments/{comment_id}"], - fork: ["POST /gists/{gist_id}/forks"], - get: ["GET /gists/{gist_id}"], - getComment: ["GET /gists/{gist_id}/comments/{comment_id}"], - getRevision: ["GET /gists/{gist_id}/{sha}"], - list: ["GET /gists"], - listComments: ["GET /gists/{gist_id}/comments"], - listCommits: ["GET /gists/{gist_id}/commits"], - listForUser: ["GET /users/{username}/gists"], - listForks: ["GET /gists/{gist_id}/forks"], - listPublic: ["GET /gists/public"], - listStarred: ["GET /gists/starred"], - star: ["PUT /gists/{gist_id}/star"], - unstar: ["DELETE /gists/{gist_id}/star"], - update: ["PATCH /gists/{gist_id}"], - updateComment: ["PATCH /gists/{gist_id}/comments/{comment_id}"] - }, - git: { - createBlob: ["POST /repos/{owner}/{repo}/git/blobs"], - createCommit: ["POST /repos/{owner}/{repo}/git/commits"], - createRef: ["POST /repos/{owner}/{repo}/git/refs"], - createTag: ["POST /repos/{owner}/{repo}/git/tags"], - createTree: ["POST /repos/{owner}/{repo}/git/trees"], - deleteRef: ["DELETE /repos/{owner}/{repo}/git/refs/{ref}"], - getBlob: ["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"], - getCommit: ["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"], - getRef: ["GET /repos/{owner}/{repo}/git/ref/{ref}"], - getTag: ["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"], - getTree: ["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"], - listMatchingRefs: ["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"], - updateRef: ["PATCH /repos/{owner}/{repo}/git/refs/{ref}"] - }, - gitignore: { - getAllTemplates: ["GET /gitignore/templates"], - getTemplate: ["GET /gitignore/templates/{name}"] - }, - interactions: { - getRestrictionsForAuthenticatedUser: ["GET /user/interaction-limits"], - getRestrictionsForOrg: ["GET /orgs/{org}/interaction-limits"], - getRestrictionsForRepo: ["GET /repos/{owner}/{repo}/interaction-limits"], - getRestrictionsForYourPublicRepos: [ - "GET /user/interaction-limits", - {}, - { renamed: ["interactions", "getRestrictionsForAuthenticatedUser"] } - ], - removeRestrictionsForAuthenticatedUser: ["DELETE /user/interaction-limits"], - removeRestrictionsForOrg: ["DELETE /orgs/{org}/interaction-limits"], - removeRestrictionsForRepo: [ - "DELETE /repos/{owner}/{repo}/interaction-limits" - ], - removeRestrictionsForYourPublicRepos: [ - "DELETE /user/interaction-limits", - {}, - { renamed: ["interactions", "removeRestrictionsForAuthenticatedUser"] } - ], - setRestrictionsForAuthenticatedUser: ["PUT /user/interaction-limits"], - setRestrictionsForOrg: ["PUT /orgs/{org}/interaction-limits"], - setRestrictionsForRepo: ["PUT /repos/{owner}/{repo}/interaction-limits"], - setRestrictionsForYourPublicRepos: [ - "PUT /user/interaction-limits", - {}, - { renamed: ["interactions", "setRestrictionsForAuthenticatedUser"] } - ] - }, - issues: { - addAssignees: [ - "POST /repos/{owner}/{repo}/issues/{issue_number}/assignees" - ], - addLabels: ["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"], - checkUserCanBeAssigned: ["GET /repos/{owner}/{repo}/assignees/{assignee}"], - checkUserCanBeAssignedToIssue: [ - "GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}" - ], - create: ["POST /repos/{owner}/{repo}/issues"], - createComment: [ - "POST /repos/{owner}/{repo}/issues/{issue_number}/comments" - ], - createLabel: ["POST /repos/{owner}/{repo}/labels"], - createMilestone: ["POST /repos/{owner}/{repo}/milestones"], - deleteComment: [ - "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}" - ], - deleteLabel: ["DELETE /repos/{owner}/{repo}/labels/{name}"], - deleteMilestone: [ - "DELETE /repos/{owner}/{repo}/milestones/{milestone_number}" - ], - get: ["GET /repos/{owner}/{repo}/issues/{issue_number}"], - getComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"], - getEvent: ["GET /repos/{owner}/{repo}/issues/events/{event_id}"], - getLabel: ["GET /repos/{owner}/{repo}/labels/{name}"], - getMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}"], - list: ["GET /issues"], - listAssignees: ["GET /repos/{owner}/{repo}/assignees"], - listComments: ["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"], - listCommentsForRepo: ["GET /repos/{owner}/{repo}/issues/comments"], - listEvents: ["GET /repos/{owner}/{repo}/issues/{issue_number}/events"], - listEventsForRepo: ["GET /repos/{owner}/{repo}/issues/events"], - listEventsForTimeline: [ - "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline" - ], - listForAuthenticatedUser: ["GET /user/issues"], - listForOrg: ["GET /orgs/{org}/issues"], - listForRepo: ["GET /repos/{owner}/{repo}/issues"], - listLabelsForMilestone: [ - "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels" - ], - listLabelsForRepo: ["GET /repos/{owner}/{repo}/labels"], - listLabelsOnIssue: [ - "GET /repos/{owner}/{repo}/issues/{issue_number}/labels" - ], - listMilestones: ["GET /repos/{owner}/{repo}/milestones"], - lock: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"], - removeAllLabels: [ - "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels" - ], - removeAssignees: [ - "DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees" - ], - removeLabel: [ - "DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}" - ], - setLabels: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"], - unlock: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"], - update: ["PATCH /repos/{owner}/{repo}/issues/{issue_number}"], - updateComment: ["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"], - updateLabel: ["PATCH /repos/{owner}/{repo}/labels/{name}"], - updateMilestone: [ - "PATCH /repos/{owner}/{repo}/milestones/{milestone_number}" - ] - }, - licenses: { - get: ["GET /licenses/{license}"], - getAllCommonlyUsed: ["GET /licenses"], - getForRepo: ["GET /repos/{owner}/{repo}/license"] - }, - markdown: { - render: ["POST /markdown"], - renderRaw: [ - "POST /markdown/raw", - { headers: { "content-type": "text/plain; charset=utf-8" } } - ] - }, - meta: { - get: ["GET /meta"], - getAllVersions: ["GET /versions"], - getOctocat: ["GET /octocat"], - getZen: ["GET /zen"], - root: ["GET /"] - }, - migrations: { - cancelImport: [ - "DELETE /repos/{owner}/{repo}/import", - {}, - { - deprecated: "octokit.rest.migrations.cancelImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#cancel-an-import" - } - ], - deleteArchiveForAuthenticatedUser: [ - "DELETE /user/migrations/{migration_id}/archive" - ], - deleteArchiveForOrg: [ - "DELETE /orgs/{org}/migrations/{migration_id}/archive" - ], - downloadArchiveForOrg: [ - "GET /orgs/{org}/migrations/{migration_id}/archive" - ], - getArchiveForAuthenticatedUser: [ - "GET /user/migrations/{migration_id}/archive" - ], - getCommitAuthors: [ - "GET /repos/{owner}/{repo}/import/authors", - {}, - { - deprecated: "octokit.rest.migrations.getCommitAuthors() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-commit-authors" - } - ], - getImportStatus: [ - "GET /repos/{owner}/{repo}/import", - {}, - { - deprecated: "octokit.rest.migrations.getImportStatus() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-an-import-status" - } - ], - getLargeFiles: [ - "GET /repos/{owner}/{repo}/import/large_files", - {}, - { - deprecated: "octokit.rest.migrations.getLargeFiles() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-large-files" - } - ], - getStatusForAuthenticatedUser: ["GET /user/migrations/{migration_id}"], - getStatusForOrg: ["GET /orgs/{org}/migrations/{migration_id}"], - listForAuthenticatedUser: ["GET /user/migrations"], - listForOrg: ["GET /orgs/{org}/migrations"], - listReposForAuthenticatedUser: [ - "GET /user/migrations/{migration_id}/repositories" - ], - listReposForOrg: ["GET /orgs/{org}/migrations/{migration_id}/repositories"], - listReposForUser: [ - "GET /user/migrations/{migration_id}/repositories", - {}, - { renamed: ["migrations", "listReposForAuthenticatedUser"] } - ], - mapCommitAuthor: [ - "PATCH /repos/{owner}/{repo}/import/authors/{author_id}", - {}, - { - deprecated: "octokit.rest.migrations.mapCommitAuthor() is deprecated, see https://docs.github.com/rest/migrations/source-imports#map-a-commit-author" - } - ], - setLfsPreference: [ - "PATCH /repos/{owner}/{repo}/import/lfs", - {}, - { - deprecated: "octokit.rest.migrations.setLfsPreference() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-git-lfs-preference" - } - ], - startForAuthenticatedUser: ["POST /user/migrations"], - startForOrg: ["POST /orgs/{org}/migrations"], - startImport: [ - "PUT /repos/{owner}/{repo}/import", - {}, - { - deprecated: "octokit.rest.migrations.startImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#start-an-import" - } - ], - unlockRepoForAuthenticatedUser: [ - "DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock" - ], - unlockRepoForOrg: [ - "DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock" - ], - updateImport: [ - "PATCH /repos/{owner}/{repo}/import", - {}, - { - deprecated: "octokit.rest.migrations.updateImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-an-import" - } - ] - }, - oidc: { - getOidcCustomSubTemplateForOrg: [ - "GET /orgs/{org}/actions/oidc/customization/sub" - ], - updateOidcCustomSubTemplateForOrg: [ - "PUT /orgs/{org}/actions/oidc/customization/sub" - ] - }, - orgs: { - addSecurityManagerTeam: [ - "PUT /orgs/{org}/security-managers/teams/{team_slug}" - ], - assignTeamToOrgRole: [ - "PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}" - ], - assignUserToOrgRole: [ - "PUT /orgs/{org}/organization-roles/users/{username}/{role_id}" - ], - blockUser: ["PUT /orgs/{org}/blocks/{username}"], - cancelInvitation: ["DELETE /orgs/{org}/invitations/{invitation_id}"], - checkBlockedUser: ["GET /orgs/{org}/blocks/{username}"], - checkMembershipForUser: ["GET /orgs/{org}/members/{username}"], - checkPublicMembershipForUser: ["GET /orgs/{org}/public_members/{username}"], - convertMemberToOutsideCollaborator: [ - "PUT /orgs/{org}/outside_collaborators/{username}" - ], - createCustomOrganizationRole: ["POST /orgs/{org}/organization-roles"], - createInvitation: ["POST /orgs/{org}/invitations"], - createOrUpdateCustomProperties: ["PATCH /orgs/{org}/properties/schema"], - createOrUpdateCustomPropertiesValuesForRepos: [ - "PATCH /orgs/{org}/properties/values" - ], - createOrUpdateCustomProperty: [ - "PUT /orgs/{org}/properties/schema/{custom_property_name}" - ], - createWebhook: ["POST /orgs/{org}/hooks"], - delete: ["DELETE /orgs/{org}"], - deleteCustomOrganizationRole: [ - "DELETE /orgs/{org}/organization-roles/{role_id}" - ], - deleteWebhook: ["DELETE /orgs/{org}/hooks/{hook_id}"], - enableOrDisableSecurityProductOnAllOrgRepos: [ - "POST /orgs/{org}/{security_product}/{enablement}" - ], - get: ["GET /orgs/{org}"], - getAllCustomProperties: ["GET /orgs/{org}/properties/schema"], - getCustomProperty: [ - "GET /orgs/{org}/properties/schema/{custom_property_name}" - ], - getMembershipForAuthenticatedUser: ["GET /user/memberships/orgs/{org}"], - getMembershipForUser: ["GET /orgs/{org}/memberships/{username}"], - getOrgRole: ["GET /orgs/{org}/organization-roles/{role_id}"], - getWebhook: ["GET /orgs/{org}/hooks/{hook_id}"], - getWebhookConfigForOrg: ["GET /orgs/{org}/hooks/{hook_id}/config"], - getWebhookDelivery: [ - "GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}" - ], - list: ["GET /organizations"], - listAppInstallations: ["GET /orgs/{org}/installations"], - listBlockedUsers: ["GET /orgs/{org}/blocks"], - listCustomPropertiesValuesForRepos: ["GET /orgs/{org}/properties/values"], - listFailedInvitations: ["GET /orgs/{org}/failed_invitations"], - listForAuthenticatedUser: ["GET /user/orgs"], - listForUser: ["GET /users/{username}/orgs"], - listInvitationTeams: ["GET /orgs/{org}/invitations/{invitation_id}/teams"], - listMembers: ["GET /orgs/{org}/members"], - listMembershipsForAuthenticatedUser: ["GET /user/memberships/orgs"], - listOrgRoleTeams: ["GET /orgs/{org}/organization-roles/{role_id}/teams"], - listOrgRoleUsers: ["GET /orgs/{org}/organization-roles/{role_id}/users"], - listOrgRoles: ["GET /orgs/{org}/organization-roles"], - listOrganizationFineGrainedPermissions: [ - "GET /orgs/{org}/organization-fine-grained-permissions" - ], - listOutsideCollaborators: ["GET /orgs/{org}/outside_collaborators"], - listPatGrantRepositories: [ - "GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories" - ], - listPatGrantRequestRepositories: [ - "GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories" - ], - listPatGrantRequests: ["GET /orgs/{org}/personal-access-token-requests"], - listPatGrants: ["GET /orgs/{org}/personal-access-tokens"], - listPendingInvitations: ["GET /orgs/{org}/invitations"], - listPublicMembers: ["GET /orgs/{org}/public_members"], - listSecurityManagerTeams: ["GET /orgs/{org}/security-managers"], - listWebhookDeliveries: ["GET /orgs/{org}/hooks/{hook_id}/deliveries"], - listWebhooks: ["GET /orgs/{org}/hooks"], - patchCustomOrganizationRole: [ - "PATCH /orgs/{org}/organization-roles/{role_id}" - ], - pingWebhook: ["POST /orgs/{org}/hooks/{hook_id}/pings"], - redeliverWebhookDelivery: [ - "POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts" - ], - removeCustomProperty: [ - "DELETE /orgs/{org}/properties/schema/{custom_property_name}" - ], - removeMember: ["DELETE /orgs/{org}/members/{username}"], - removeMembershipForUser: ["DELETE /orgs/{org}/memberships/{username}"], - removeOutsideCollaborator: [ - "DELETE /orgs/{org}/outside_collaborators/{username}" - ], - removePublicMembershipForAuthenticatedUser: [ - "DELETE /orgs/{org}/public_members/{username}" - ], - removeSecurityManagerTeam: [ - "DELETE /orgs/{org}/security-managers/teams/{team_slug}" - ], - reviewPatGrantRequest: [ - "POST /orgs/{org}/personal-access-token-requests/{pat_request_id}" - ], - reviewPatGrantRequestsInBulk: [ - "POST /orgs/{org}/personal-access-token-requests" - ], - revokeAllOrgRolesTeam: [ - "DELETE /orgs/{org}/organization-roles/teams/{team_slug}" - ], - revokeAllOrgRolesUser: [ - "DELETE /orgs/{org}/organization-roles/users/{username}" - ], - revokeOrgRoleTeam: [ - "DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}" - ], - revokeOrgRoleUser: [ - "DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}" - ], - setMembershipForUser: ["PUT /orgs/{org}/memberships/{username}"], - setPublicMembershipForAuthenticatedUser: [ - "PUT /orgs/{org}/public_members/{username}" - ], - unblockUser: ["DELETE /orgs/{org}/blocks/{username}"], - update: ["PATCH /orgs/{org}"], - updateMembershipForAuthenticatedUser: [ - "PATCH /user/memberships/orgs/{org}" - ], - updatePatAccess: ["POST /orgs/{org}/personal-access-tokens/{pat_id}"], - updatePatAccesses: ["POST /orgs/{org}/personal-access-tokens"], - updateWebhook: ["PATCH /orgs/{org}/hooks/{hook_id}"], - updateWebhookConfigForOrg: ["PATCH /orgs/{org}/hooks/{hook_id}/config"] - }, - packages: { - deletePackageForAuthenticatedUser: [ - "DELETE /user/packages/{package_type}/{package_name}" - ], - deletePackageForOrg: [ - "DELETE /orgs/{org}/packages/{package_type}/{package_name}" - ], - deletePackageForUser: [ - "DELETE /users/{username}/packages/{package_type}/{package_name}" - ], - deletePackageVersionForAuthenticatedUser: [ - "DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}" - ], - deletePackageVersionForOrg: [ - "DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}" - ], - deletePackageVersionForUser: [ - "DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}" - ], - getAllPackageVersionsForAPackageOwnedByAnOrg: [ - "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", - {}, - { renamed: ["packages", "getAllPackageVersionsForPackageOwnedByOrg"] } - ], - getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: [ - "GET /user/packages/{package_type}/{package_name}/versions", - {}, - { - renamed: [ - "packages", - "getAllPackageVersionsForPackageOwnedByAuthenticatedUser" - ] - } - ], - getAllPackageVersionsForPackageOwnedByAuthenticatedUser: [ - "GET /user/packages/{package_type}/{package_name}/versions" - ], - getAllPackageVersionsForPackageOwnedByOrg: [ - "GET /orgs/{org}/packages/{package_type}/{package_name}/versions" - ], - getAllPackageVersionsForPackageOwnedByUser: [ - "GET /users/{username}/packages/{package_type}/{package_name}/versions" - ], - getPackageForAuthenticatedUser: [ - "GET /user/packages/{package_type}/{package_name}" - ], - getPackageForOrganization: [ - "GET /orgs/{org}/packages/{package_type}/{package_name}" - ], - getPackageForUser: [ - "GET /users/{username}/packages/{package_type}/{package_name}" - ], - getPackageVersionForAuthenticatedUser: [ - "GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}" - ], - getPackageVersionForOrganization: [ - "GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}" - ], - getPackageVersionForUser: [ - "GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}" - ], - listDockerMigrationConflictingPackagesForAuthenticatedUser: [ - "GET /user/docker/conflicts" - ], - listDockerMigrationConflictingPackagesForOrganization: [ - "GET /orgs/{org}/docker/conflicts" - ], - listDockerMigrationConflictingPackagesForUser: [ - "GET /users/{username}/docker/conflicts" - ], - listPackagesForAuthenticatedUser: ["GET /user/packages"], - listPackagesForOrganization: ["GET /orgs/{org}/packages"], - listPackagesForUser: ["GET /users/{username}/packages"], - restorePackageForAuthenticatedUser: [ - "POST /user/packages/{package_type}/{package_name}/restore{?token}" - ], - restorePackageForOrg: [ - "POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}" - ], - restorePackageForUser: [ - "POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}" - ], - restorePackageVersionForAuthenticatedUser: [ - "POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" - ], - restorePackageVersionForOrg: [ - "POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" - ], - restorePackageVersionForUser: [ - "POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore" - ] - }, - projects: { - addCollaborator: ["PUT /projects/{project_id}/collaborators/{username}"], - createCard: ["POST /projects/columns/{column_id}/cards"], - createColumn: ["POST /projects/{project_id}/columns"], - createForAuthenticatedUser: ["POST /user/projects"], - createForOrg: ["POST /orgs/{org}/projects"], - createForRepo: ["POST /repos/{owner}/{repo}/projects"], - delete: ["DELETE /projects/{project_id}"], - deleteCard: ["DELETE /projects/columns/cards/{card_id}"], - deleteColumn: ["DELETE /projects/columns/{column_id}"], - get: ["GET /projects/{project_id}"], - getCard: ["GET /projects/columns/cards/{card_id}"], - getColumn: ["GET /projects/columns/{column_id}"], - getPermissionForUser: [ - "GET /projects/{project_id}/collaborators/{username}/permission" - ], - listCards: ["GET /projects/columns/{column_id}/cards"], - listCollaborators: ["GET /projects/{project_id}/collaborators"], - listColumns: ["GET /projects/{project_id}/columns"], - listForOrg: ["GET /orgs/{org}/projects"], - listForRepo: ["GET /repos/{owner}/{repo}/projects"], - listForUser: ["GET /users/{username}/projects"], - moveCard: ["POST /projects/columns/cards/{card_id}/moves"], - moveColumn: ["POST /projects/columns/{column_id}/moves"], - removeCollaborator: [ - "DELETE /projects/{project_id}/collaborators/{username}" - ], - update: ["PATCH /projects/{project_id}"], - updateCard: ["PATCH /projects/columns/cards/{card_id}"], - updateColumn: ["PATCH /projects/columns/{column_id}"] - }, - pulls: { - checkIfMerged: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"], - create: ["POST /repos/{owner}/{repo}/pulls"], - createReplyForReviewComment: [ - "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies" - ], - createReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], - createReviewComment: [ - "POST /repos/{owner}/{repo}/pulls/{pull_number}/comments" - ], - deletePendingReview: [ - "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" - ], - deleteReviewComment: [ - "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}" - ], - dismissReview: [ - "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals" - ], - get: ["GET /repos/{owner}/{repo}/pulls/{pull_number}"], - getReview: [ - "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" - ], - getReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"], - list: ["GET /repos/{owner}/{repo}/pulls"], - listCommentsForReview: [ - "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments" - ], - listCommits: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"], - listFiles: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"], - listRequestedReviewers: [ - "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" - ], - listReviewComments: [ - "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments" - ], - listReviewCommentsForRepo: ["GET /repos/{owner}/{repo}/pulls/comments"], - listReviews: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], - merge: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"], - removeRequestedReviewers: [ - "DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" - ], - requestReviewers: [ - "POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers" - ], - submitReview: [ - "POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events" - ], - update: ["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"], - updateBranch: [ - "PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch" - ], - updateReview: [ - "PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}" - ], - updateReviewComment: [ - "PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}" - ] - }, - rateLimit: { get: ["GET /rate_limit"] }, - reactions: { - createForCommitComment: [ - "POST /repos/{owner}/{repo}/comments/{comment_id}/reactions" - ], - createForIssue: [ - "POST /repos/{owner}/{repo}/issues/{issue_number}/reactions" - ], - createForIssueComment: [ - "POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions" - ], - createForPullRequestReviewComment: [ - "POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions" - ], - createForRelease: [ - "POST /repos/{owner}/{repo}/releases/{release_id}/reactions" - ], - createForTeamDiscussionCommentInOrg: [ - "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions" - ], - createForTeamDiscussionInOrg: [ - "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions" - ], - deleteForCommitComment: [ - "DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}" - ], - deleteForIssue: [ - "DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}" - ], - deleteForIssueComment: [ - "DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}" - ], - deleteForPullRequestComment: [ - "DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}" - ], - deleteForRelease: [ - "DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}" - ], - deleteForTeamDiscussion: [ - "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}" - ], - deleteForTeamDiscussionComment: [ - "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}" - ], - listForCommitComment: [ - "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions" - ], - listForIssue: ["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"], - listForIssueComment: [ - "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions" - ], - listForPullRequestReviewComment: [ - "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions" - ], - listForRelease: [ - "GET /repos/{owner}/{repo}/releases/{release_id}/reactions" - ], - listForTeamDiscussionCommentInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions" - ], - listForTeamDiscussionInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions" - ] - }, - repos: { - acceptInvitation: [ - "PATCH /user/repository_invitations/{invitation_id}", - {}, - { renamed: ["repos", "acceptInvitationForAuthenticatedUser"] } - ], - acceptInvitationForAuthenticatedUser: [ - "PATCH /user/repository_invitations/{invitation_id}" - ], - addAppAccessRestrictions: [ - "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", - {}, - { mapToData: "apps" } - ], - addCollaborator: ["PUT /repos/{owner}/{repo}/collaborators/{username}"], - addStatusCheckContexts: [ - "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", - {}, - { mapToData: "contexts" } - ], - addTeamAccessRestrictions: [ - "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", - {}, - { mapToData: "teams" } - ], - addUserAccessRestrictions: [ - "POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", - {}, - { mapToData: "users" } - ], - cancelPagesDeployment: [ - "POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel" - ], - checkAutomatedSecurityFixes: [ - "GET /repos/{owner}/{repo}/automated-security-fixes" - ], - checkCollaborator: ["GET /repos/{owner}/{repo}/collaborators/{username}"], - checkVulnerabilityAlerts: [ - "GET /repos/{owner}/{repo}/vulnerability-alerts" - ], - codeownersErrors: ["GET /repos/{owner}/{repo}/codeowners/errors"], - compareCommits: ["GET /repos/{owner}/{repo}/compare/{base}...{head}"], - compareCommitsWithBasehead: [ - "GET /repos/{owner}/{repo}/compare/{basehead}" - ], - createAutolink: ["POST /repos/{owner}/{repo}/autolinks"], - createCommitComment: [ - "POST /repos/{owner}/{repo}/commits/{commit_sha}/comments" - ], - createCommitSignatureProtection: [ - "POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" - ], - createCommitStatus: ["POST /repos/{owner}/{repo}/statuses/{sha}"], - createDeployKey: ["POST /repos/{owner}/{repo}/keys"], - createDeployment: ["POST /repos/{owner}/{repo}/deployments"], - createDeploymentBranchPolicy: [ - "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies" - ], - createDeploymentProtectionRule: [ - "POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules" - ], - createDeploymentStatus: [ - "POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses" - ], - createDispatchEvent: ["POST /repos/{owner}/{repo}/dispatches"], - createForAuthenticatedUser: ["POST /user/repos"], - createFork: ["POST /repos/{owner}/{repo}/forks"], - createInOrg: ["POST /orgs/{org}/repos"], - createOrUpdateCustomPropertiesValues: [ - "PATCH /repos/{owner}/{repo}/properties/values" - ], - createOrUpdateEnvironment: [ - "PUT /repos/{owner}/{repo}/environments/{environment_name}" - ], - createOrUpdateFileContents: ["PUT /repos/{owner}/{repo}/contents/{path}"], - createOrgRuleset: ["POST /orgs/{org}/rulesets"], - createPagesDeployment: ["POST /repos/{owner}/{repo}/pages/deployments"], - createPagesSite: ["POST /repos/{owner}/{repo}/pages"], - createRelease: ["POST /repos/{owner}/{repo}/releases"], - createRepoRuleset: ["POST /repos/{owner}/{repo}/rulesets"], - createTagProtection: ["POST /repos/{owner}/{repo}/tags/protection"], - createUsingTemplate: [ - "POST /repos/{template_owner}/{template_repo}/generate" - ], - createWebhook: ["POST /repos/{owner}/{repo}/hooks"], - declineInvitation: [ - "DELETE /user/repository_invitations/{invitation_id}", - {}, - { renamed: ["repos", "declineInvitationForAuthenticatedUser"] } - ], - declineInvitationForAuthenticatedUser: [ - "DELETE /user/repository_invitations/{invitation_id}" - ], - delete: ["DELETE /repos/{owner}/{repo}"], - deleteAccessRestrictions: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions" - ], - deleteAdminBranchProtection: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" - ], - deleteAnEnvironment: [ - "DELETE /repos/{owner}/{repo}/environments/{environment_name}" - ], - deleteAutolink: ["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"], - deleteBranchProtection: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection" - ], - deleteCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}"], - deleteCommitSignatureProtection: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" - ], - deleteDeployKey: ["DELETE /repos/{owner}/{repo}/keys/{key_id}"], - deleteDeployment: [ - "DELETE /repos/{owner}/{repo}/deployments/{deployment_id}" - ], - deleteDeploymentBranchPolicy: [ - "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" - ], - deleteFile: ["DELETE /repos/{owner}/{repo}/contents/{path}"], - deleteInvitation: [ - "DELETE /repos/{owner}/{repo}/invitations/{invitation_id}" - ], - deleteOrgRuleset: ["DELETE /orgs/{org}/rulesets/{ruleset_id}"], - deletePagesSite: ["DELETE /repos/{owner}/{repo}/pages"], - deletePullRequestReviewProtection: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" - ], - deleteRelease: ["DELETE /repos/{owner}/{repo}/releases/{release_id}"], - deleteReleaseAsset: [ - "DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}" - ], - deleteRepoRuleset: ["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"], - deleteTagProtection: [ - "DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}" - ], - deleteWebhook: ["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"], - disableAutomatedSecurityFixes: [ - "DELETE /repos/{owner}/{repo}/automated-security-fixes" - ], - disableDeploymentProtectionRule: [ - "DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}" - ], - disablePrivateVulnerabilityReporting: [ - "DELETE /repos/{owner}/{repo}/private-vulnerability-reporting" - ], - disableVulnerabilityAlerts: [ - "DELETE /repos/{owner}/{repo}/vulnerability-alerts" - ], - downloadArchive: [ - "GET /repos/{owner}/{repo}/zipball/{ref}", - {}, - { renamed: ["repos", "downloadZipballArchive"] } - ], - downloadTarballArchive: ["GET /repos/{owner}/{repo}/tarball/{ref}"], - downloadZipballArchive: ["GET /repos/{owner}/{repo}/zipball/{ref}"], - enableAutomatedSecurityFixes: [ - "PUT /repos/{owner}/{repo}/automated-security-fixes" - ], - enablePrivateVulnerabilityReporting: [ - "PUT /repos/{owner}/{repo}/private-vulnerability-reporting" - ], - enableVulnerabilityAlerts: [ - "PUT /repos/{owner}/{repo}/vulnerability-alerts" - ], - generateReleaseNotes: [ - "POST /repos/{owner}/{repo}/releases/generate-notes" - ], - get: ["GET /repos/{owner}/{repo}"], - getAccessRestrictions: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions" - ], - getAdminBranchProtection: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" - ], - getAllDeploymentProtectionRules: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules" - ], - getAllEnvironments: ["GET /repos/{owner}/{repo}/environments"], - getAllStatusCheckContexts: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts" - ], - getAllTopics: ["GET /repos/{owner}/{repo}/topics"], - getAppsWithAccessToProtectedBranch: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps" - ], - getAutolink: ["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"], - getBranch: ["GET /repos/{owner}/{repo}/branches/{branch}"], - getBranchProtection: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection" - ], - getBranchRules: ["GET /repos/{owner}/{repo}/rules/branches/{branch}"], - getClones: ["GET /repos/{owner}/{repo}/traffic/clones"], - getCodeFrequencyStats: ["GET /repos/{owner}/{repo}/stats/code_frequency"], - getCollaboratorPermissionLevel: [ - "GET /repos/{owner}/{repo}/collaborators/{username}/permission" - ], - getCombinedStatusForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/status"], - getCommit: ["GET /repos/{owner}/{repo}/commits/{ref}"], - getCommitActivityStats: ["GET /repos/{owner}/{repo}/stats/commit_activity"], - getCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}"], - getCommitSignatureProtection: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures" - ], - getCommunityProfileMetrics: ["GET /repos/{owner}/{repo}/community/profile"], - getContent: ["GET /repos/{owner}/{repo}/contents/{path}"], - getContributorsStats: ["GET /repos/{owner}/{repo}/stats/contributors"], - getCustomDeploymentProtectionRule: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}" - ], - getCustomPropertiesValues: ["GET /repos/{owner}/{repo}/properties/values"], - getDeployKey: ["GET /repos/{owner}/{repo}/keys/{key_id}"], - getDeployment: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}"], - getDeploymentBranchPolicy: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" - ], - getDeploymentStatus: [ - "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}" - ], - getEnvironment: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}" - ], - getLatestPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/latest"], - getLatestRelease: ["GET /repos/{owner}/{repo}/releases/latest"], - getOrgRuleSuite: ["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"], - getOrgRuleSuites: ["GET /orgs/{org}/rulesets/rule-suites"], - getOrgRuleset: ["GET /orgs/{org}/rulesets/{ruleset_id}"], - getOrgRulesets: ["GET /orgs/{org}/rulesets"], - getPages: ["GET /repos/{owner}/{repo}/pages"], - getPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/{build_id}"], - getPagesDeployment: [ - "GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}" - ], - getPagesHealthCheck: ["GET /repos/{owner}/{repo}/pages/health"], - getParticipationStats: ["GET /repos/{owner}/{repo}/stats/participation"], - getPullRequestReviewProtection: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" - ], - getPunchCardStats: ["GET /repos/{owner}/{repo}/stats/punch_card"], - getReadme: ["GET /repos/{owner}/{repo}/readme"], - getReadmeInDirectory: ["GET /repos/{owner}/{repo}/readme/{dir}"], - getRelease: ["GET /repos/{owner}/{repo}/releases/{release_id}"], - getReleaseAsset: ["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"], - getReleaseByTag: ["GET /repos/{owner}/{repo}/releases/tags/{tag}"], - getRepoRuleSuite: [ - "GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}" - ], - getRepoRuleSuites: ["GET /repos/{owner}/{repo}/rulesets/rule-suites"], - getRepoRuleset: ["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"], - getRepoRulesets: ["GET /repos/{owner}/{repo}/rulesets"], - getStatusChecksProtection: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" - ], - getTeamsWithAccessToProtectedBranch: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams" - ], - getTopPaths: ["GET /repos/{owner}/{repo}/traffic/popular/paths"], - getTopReferrers: ["GET /repos/{owner}/{repo}/traffic/popular/referrers"], - getUsersWithAccessToProtectedBranch: [ - "GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users" - ], - getViews: ["GET /repos/{owner}/{repo}/traffic/views"], - getWebhook: ["GET /repos/{owner}/{repo}/hooks/{hook_id}"], - getWebhookConfigForRepo: [ - "GET /repos/{owner}/{repo}/hooks/{hook_id}/config" - ], - getWebhookDelivery: [ - "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}" - ], - listActivities: ["GET /repos/{owner}/{repo}/activity"], - listAutolinks: ["GET /repos/{owner}/{repo}/autolinks"], - listBranches: ["GET /repos/{owner}/{repo}/branches"], - listBranchesForHeadCommit: [ - "GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head" - ], - listCollaborators: ["GET /repos/{owner}/{repo}/collaborators"], - listCommentsForCommit: [ - "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments" - ], - listCommitCommentsForRepo: ["GET /repos/{owner}/{repo}/comments"], - listCommitStatusesForRef: [ - "GET /repos/{owner}/{repo}/commits/{ref}/statuses" - ], - listCommits: ["GET /repos/{owner}/{repo}/commits"], - listContributors: ["GET /repos/{owner}/{repo}/contributors"], - listCustomDeploymentRuleIntegrations: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps" - ], - listDeployKeys: ["GET /repos/{owner}/{repo}/keys"], - listDeploymentBranchPolicies: [ - "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies" - ], - listDeploymentStatuses: [ - "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses" - ], - listDeployments: ["GET /repos/{owner}/{repo}/deployments"], - listForAuthenticatedUser: ["GET /user/repos"], - listForOrg: ["GET /orgs/{org}/repos"], - listForUser: ["GET /users/{username}/repos"], - listForks: ["GET /repos/{owner}/{repo}/forks"], - listInvitations: ["GET /repos/{owner}/{repo}/invitations"], - listInvitationsForAuthenticatedUser: ["GET /user/repository_invitations"], - listLanguages: ["GET /repos/{owner}/{repo}/languages"], - listPagesBuilds: ["GET /repos/{owner}/{repo}/pages/builds"], - listPublic: ["GET /repositories"], - listPullRequestsAssociatedWithCommit: [ - "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls" - ], - listReleaseAssets: [ - "GET /repos/{owner}/{repo}/releases/{release_id}/assets" - ], - listReleases: ["GET /repos/{owner}/{repo}/releases"], - listTagProtection: ["GET /repos/{owner}/{repo}/tags/protection"], - listTags: ["GET /repos/{owner}/{repo}/tags"], - listTeams: ["GET /repos/{owner}/{repo}/teams"], - listWebhookDeliveries: [ - "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries" - ], - listWebhooks: ["GET /repos/{owner}/{repo}/hooks"], - merge: ["POST /repos/{owner}/{repo}/merges"], - mergeUpstream: ["POST /repos/{owner}/{repo}/merge-upstream"], - pingWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"], - redeliverWebhookDelivery: [ - "POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts" - ], - removeAppAccessRestrictions: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", - {}, - { mapToData: "apps" } - ], - removeCollaborator: [ - "DELETE /repos/{owner}/{repo}/collaborators/{username}" - ], - removeStatusCheckContexts: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", - {}, - { mapToData: "contexts" } - ], - removeStatusCheckProtection: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" - ], - removeTeamAccessRestrictions: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", - {}, - { mapToData: "teams" } - ], - removeUserAccessRestrictions: [ - "DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", - {}, - { mapToData: "users" } - ], - renameBranch: ["POST /repos/{owner}/{repo}/branches/{branch}/rename"], - replaceAllTopics: ["PUT /repos/{owner}/{repo}/topics"], - requestPagesBuild: ["POST /repos/{owner}/{repo}/pages/builds"], - setAdminBranchProtection: [ - "POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins" - ], - setAppAccessRestrictions: [ - "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", - {}, - { mapToData: "apps" } - ], - setStatusCheckContexts: [ - "PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", - {}, - { mapToData: "contexts" } - ], - setTeamAccessRestrictions: [ - "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", - {}, - { mapToData: "teams" } - ], - setUserAccessRestrictions: [ - "PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", - {}, - { mapToData: "users" } - ], - testPushWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"], - transfer: ["POST /repos/{owner}/{repo}/transfer"], - update: ["PATCH /repos/{owner}/{repo}"], - updateBranchProtection: [ - "PUT /repos/{owner}/{repo}/branches/{branch}/protection" - ], - updateCommitComment: ["PATCH /repos/{owner}/{repo}/comments/{comment_id}"], - updateDeploymentBranchPolicy: [ - "PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}" - ], - updateInformationAboutPagesSite: ["PUT /repos/{owner}/{repo}/pages"], - updateInvitation: [ - "PATCH /repos/{owner}/{repo}/invitations/{invitation_id}" - ], - updateOrgRuleset: ["PUT /orgs/{org}/rulesets/{ruleset_id}"], - updatePullRequestReviewProtection: [ - "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews" - ], - updateRelease: ["PATCH /repos/{owner}/{repo}/releases/{release_id}"], - updateReleaseAsset: [ - "PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}" - ], - updateRepoRuleset: ["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"], - updateStatusCheckPotection: [ - "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", - {}, - { renamed: ["repos", "updateStatusCheckProtection"] } - ], - updateStatusCheckProtection: [ - "PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks" - ], - updateWebhook: ["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"], - updateWebhookConfigForRepo: [ - "PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config" - ], - uploadReleaseAsset: [ - "POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}", - { baseUrl: "https://uploads.github.com" } - ] - }, - search: { - code: ["GET /search/code"], - commits: ["GET /search/commits"], - issuesAndPullRequests: ["GET /search/issues"], - labels: ["GET /search/labels"], - repos: ["GET /search/repositories"], - topics: ["GET /search/topics"], - users: ["GET /search/users"] - }, - secretScanning: { - getAlert: [ - "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}" - ], - listAlertsForEnterprise: [ - "GET /enterprises/{enterprise}/secret-scanning/alerts" - ], - listAlertsForOrg: ["GET /orgs/{org}/secret-scanning/alerts"], - listAlertsForRepo: ["GET /repos/{owner}/{repo}/secret-scanning/alerts"], - listLocationsForAlert: [ - "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations" - ], - updateAlert: [ - "PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}" - ] - }, - securityAdvisories: { - createFork: [ - "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks" - ], - createPrivateVulnerabilityReport: [ - "POST /repos/{owner}/{repo}/security-advisories/reports" - ], - createRepositoryAdvisory: [ - "POST /repos/{owner}/{repo}/security-advisories" - ], - createRepositoryAdvisoryCveRequest: [ - "POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve" - ], - getGlobalAdvisory: ["GET /advisories/{ghsa_id}"], - getRepositoryAdvisory: [ - "GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}" - ], - listGlobalAdvisories: ["GET /advisories"], - listOrgRepositoryAdvisories: ["GET /orgs/{org}/security-advisories"], - listRepositoryAdvisories: ["GET /repos/{owner}/{repo}/security-advisories"], - updateRepositoryAdvisory: [ - "PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}" - ] - }, - teams: { - addOrUpdateMembershipForUserInOrg: [ - "PUT /orgs/{org}/teams/{team_slug}/memberships/{username}" - ], - addOrUpdateProjectPermissionsInOrg: [ - "PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}" - ], - addOrUpdateRepoPermissionsInOrg: [ - "PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" - ], - checkPermissionsForProjectInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/projects/{project_id}" - ], - checkPermissionsForRepoInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" - ], - create: ["POST /orgs/{org}/teams"], - createDiscussionCommentInOrg: [ - "POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments" - ], - createDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions"], - deleteDiscussionCommentInOrg: [ - "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" - ], - deleteDiscussionInOrg: [ - "DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" - ], - deleteInOrg: ["DELETE /orgs/{org}/teams/{team_slug}"], - getByName: ["GET /orgs/{org}/teams/{team_slug}"], - getDiscussionCommentInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" - ], - getDiscussionInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" - ], - getMembershipForUserInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/memberships/{username}" - ], - list: ["GET /orgs/{org}/teams"], - listChildInOrg: ["GET /orgs/{org}/teams/{team_slug}/teams"], - listDiscussionCommentsInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments" - ], - listDiscussionsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions"], - listForAuthenticatedUser: ["GET /user/teams"], - listMembersInOrg: ["GET /orgs/{org}/teams/{team_slug}/members"], - listPendingInvitationsInOrg: [ - "GET /orgs/{org}/teams/{team_slug}/invitations" - ], - listProjectsInOrg: ["GET /orgs/{org}/teams/{team_slug}/projects"], - listReposInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos"], - removeMembershipForUserInOrg: [ - "DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}" - ], - removeProjectInOrg: [ - "DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}" - ], - removeRepoInOrg: [ - "DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}" - ], - updateDiscussionCommentInOrg: [ - "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}" - ], - updateDiscussionInOrg: [ - "PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}" - ], - updateInOrg: ["PATCH /orgs/{org}/teams/{team_slug}"] - }, - users: { - addEmailForAuthenticated: [ - "POST /user/emails", - {}, - { renamed: ["users", "addEmailForAuthenticatedUser"] } - ], - addEmailForAuthenticatedUser: ["POST /user/emails"], - addSocialAccountForAuthenticatedUser: ["POST /user/social_accounts"], - block: ["PUT /user/blocks/{username}"], - checkBlocked: ["GET /user/blocks/{username}"], - checkFollowingForUser: ["GET /users/{username}/following/{target_user}"], - checkPersonIsFollowedByAuthenticated: ["GET /user/following/{username}"], - createGpgKeyForAuthenticated: [ - "POST /user/gpg_keys", - {}, - { renamed: ["users", "createGpgKeyForAuthenticatedUser"] } - ], - createGpgKeyForAuthenticatedUser: ["POST /user/gpg_keys"], - createPublicSshKeyForAuthenticated: [ - "POST /user/keys", - {}, - { renamed: ["users", "createPublicSshKeyForAuthenticatedUser"] } - ], - createPublicSshKeyForAuthenticatedUser: ["POST /user/keys"], - createSshSigningKeyForAuthenticatedUser: ["POST /user/ssh_signing_keys"], - deleteEmailForAuthenticated: [ - "DELETE /user/emails", - {}, - { renamed: ["users", "deleteEmailForAuthenticatedUser"] } - ], - deleteEmailForAuthenticatedUser: ["DELETE /user/emails"], - deleteGpgKeyForAuthenticated: [ - "DELETE /user/gpg_keys/{gpg_key_id}", - {}, - { renamed: ["users", "deleteGpgKeyForAuthenticatedUser"] } - ], - deleteGpgKeyForAuthenticatedUser: ["DELETE /user/gpg_keys/{gpg_key_id}"], - deletePublicSshKeyForAuthenticated: [ - "DELETE /user/keys/{key_id}", - {}, - { renamed: ["users", "deletePublicSshKeyForAuthenticatedUser"] } - ], - deletePublicSshKeyForAuthenticatedUser: ["DELETE /user/keys/{key_id}"], - deleteSocialAccountForAuthenticatedUser: ["DELETE /user/social_accounts"], - deleteSshSigningKeyForAuthenticatedUser: [ - "DELETE /user/ssh_signing_keys/{ssh_signing_key_id}" - ], - follow: ["PUT /user/following/{username}"], - getAuthenticated: ["GET /user"], - getByUsername: ["GET /users/{username}"], - getContextForUser: ["GET /users/{username}/hovercard"], - getGpgKeyForAuthenticated: [ - "GET /user/gpg_keys/{gpg_key_id}", - {}, - { renamed: ["users", "getGpgKeyForAuthenticatedUser"] } - ], - getGpgKeyForAuthenticatedUser: ["GET /user/gpg_keys/{gpg_key_id}"], - getPublicSshKeyForAuthenticated: [ - "GET /user/keys/{key_id}", - {}, - { renamed: ["users", "getPublicSshKeyForAuthenticatedUser"] } - ], - getPublicSshKeyForAuthenticatedUser: ["GET /user/keys/{key_id}"], - getSshSigningKeyForAuthenticatedUser: [ - "GET /user/ssh_signing_keys/{ssh_signing_key_id}" - ], - list: ["GET /users"], - listBlockedByAuthenticated: [ - "GET /user/blocks", - {}, - { renamed: ["users", "listBlockedByAuthenticatedUser"] } - ], - listBlockedByAuthenticatedUser: ["GET /user/blocks"], - listEmailsForAuthenticated: [ - "GET /user/emails", - {}, - { renamed: ["users", "listEmailsForAuthenticatedUser"] } - ], - listEmailsForAuthenticatedUser: ["GET /user/emails"], - listFollowedByAuthenticated: [ - "GET /user/following", - {}, - { renamed: ["users", "listFollowedByAuthenticatedUser"] } - ], - listFollowedByAuthenticatedUser: ["GET /user/following"], - listFollowersForAuthenticatedUser: ["GET /user/followers"], - listFollowersForUser: ["GET /users/{username}/followers"], - listFollowingForUser: ["GET /users/{username}/following"], - listGpgKeysForAuthenticated: [ - "GET /user/gpg_keys", - {}, - { renamed: ["users", "listGpgKeysForAuthenticatedUser"] } - ], - listGpgKeysForAuthenticatedUser: ["GET /user/gpg_keys"], - listGpgKeysForUser: ["GET /users/{username}/gpg_keys"], - listPublicEmailsForAuthenticated: [ - "GET /user/public_emails", - {}, - { renamed: ["users", "listPublicEmailsForAuthenticatedUser"] } - ], - listPublicEmailsForAuthenticatedUser: ["GET /user/public_emails"], - listPublicKeysForUser: ["GET /users/{username}/keys"], - listPublicSshKeysForAuthenticated: [ - "GET /user/keys", - {}, - { renamed: ["users", "listPublicSshKeysForAuthenticatedUser"] } - ], - listPublicSshKeysForAuthenticatedUser: ["GET /user/keys"], - listSocialAccountsForAuthenticatedUser: ["GET /user/social_accounts"], - listSocialAccountsForUser: ["GET /users/{username}/social_accounts"], - listSshSigningKeysForAuthenticatedUser: ["GET /user/ssh_signing_keys"], - listSshSigningKeysForUser: ["GET /users/{username}/ssh_signing_keys"], - setPrimaryEmailVisibilityForAuthenticated: [ - "PATCH /user/email/visibility", - {}, - { renamed: ["users", "setPrimaryEmailVisibilityForAuthenticatedUser"] } - ], - setPrimaryEmailVisibilityForAuthenticatedUser: [ - "PATCH /user/email/visibility" - ], - unblock: ["DELETE /user/blocks/{username}"], - unfollow: ["DELETE /user/following/{username}"], - updateAuthenticated: ["PATCH /user"] - } -}; -var endpoints_default = Endpoints; - -// pkg/dist-src/endpoints-to-methods.js -var endpointMethodsMap = /* @__PURE__ */ new Map(); -for (const [scope, endpoints] of Object.entries(endpoints_default)) { - for (const [methodName, endpoint] of Object.entries(endpoints)) { - const [route, defaults, decorations] = endpoint; - const [method, url] = route.split(/ /); - const endpointDefaults = Object.assign( - { - method, - url - }, - defaults - ); - if (!endpointMethodsMap.has(scope)) { - endpointMethodsMap.set(scope, /* @__PURE__ */ new Map()); - } - endpointMethodsMap.get(scope).set(methodName, { - scope, - methodName, - endpointDefaults, - decorations - }); - } -} -var handler = { - has({ scope }, methodName) { - return endpointMethodsMap.get(scope).has(methodName); - }, - getOwnPropertyDescriptor(target, methodName) { - return { - value: this.get(target, methodName), - // ensures method is in the cache - configurable: true, - writable: true, - enumerable: true - }; - }, - defineProperty(target, methodName, descriptor) { - Object.defineProperty(target.cache, methodName, descriptor); - return true; - }, - deleteProperty(target, methodName) { - delete target.cache[methodName]; - return true; - }, - ownKeys({ scope }) { - return [...endpointMethodsMap.get(scope).keys()]; - }, - set(target, methodName, value) { - return target.cache[methodName] = value; - }, - get({ octokit, scope, cache }, methodName) { - if (cache[methodName]) { - return cache[methodName]; - } - const method = endpointMethodsMap.get(scope).get(methodName); - if (!method) { - return void 0; - } - const { endpointDefaults, decorations } = method; - if (decorations) { - cache[methodName] = decorate( - octokit, - scope, - methodName, - endpointDefaults, - decorations - ); - } else { - cache[methodName] = octokit.request.defaults(endpointDefaults); - } - return cache[methodName]; - } -}; -function endpointsToMethods(octokit) { - const newMethods = {}; - for (const scope of endpointMethodsMap.keys()) { - newMethods[scope] = new Proxy({ octokit, scope, cache: {} }, handler); - } - return newMethods; -} -function decorate(octokit, scope, methodName, defaults, decorations) { - const requestWithDefaults = octokit.request.defaults(defaults); - function withDecorations(...args) { - let options = requestWithDefaults.endpoint.merge(...args); - if (decorations.mapToData) { - options = Object.assign({}, options, { - data: options[decorations.mapToData], - [decorations.mapToData]: void 0 - }); - return requestWithDefaults(options); - } - if (decorations.renamed) { - const [newScope, newMethodName] = decorations.renamed; - octokit.log.warn( - `octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()` - ); - } - if (decorations.deprecated) { - octokit.log.warn(decorations.deprecated); - } - if (decorations.renamedParameters) { - const options2 = requestWithDefaults.endpoint.merge(...args); - for (const [name, alias] of Object.entries( - decorations.renamedParameters - )) { - if (name in options2) { - octokit.log.warn( - `"${name}" parameter is deprecated for "octokit.${scope}.${methodName}()". Use "${alias}" instead` - ); - if (!(alias in options2)) { - options2[alias] = options2[name]; - } - delete options2[name]; - } - } - return requestWithDefaults(options2); - } - return requestWithDefaults(...args); - } - return Object.assign(withDecorations, requestWithDefaults); -} - -// pkg/dist-src/index.js -function restEndpointMethods(octokit) { - const api = endpointsToMethods(octokit); - return { - rest: api - }; -} -restEndpointMethods.VERSION = VERSION; -function legacyRestEndpointMethods(octokit) { - const api = endpointsToMethods(octokit); - return { - ...api, - rest: api - }; -} -legacyRestEndpointMethods.VERSION = VERSION; -// Annotate the CommonJS export names for ESM import in node: -0 && (0); - - -/***/ }), - -/***/ 4910: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __create = Object.create; -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __getProtoOf = Object.getPrototypeOf; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( - // If the importer is in node compatibility mode or this is not an ESM - // file that has been converted to a CommonJS file using a Babel- - // compatible transform (i.e. "__esModule" has not been set), then set - // "default" to the CommonJS "module.exports" for node compatibility. - isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, - mod -)); -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// pkg/dist-src/index.js -var dist_src_exports = {}; -__export(dist_src_exports, { - RequestError: () => RequestError -}); -module.exports = __toCommonJS(dist_src_exports); -var import_deprecation = __nccwpck_require__(64); -var import_once = __toESM(__nccwpck_require__(9472)); -var logOnceCode = (0, import_once.default)((deprecation) => console.warn(deprecation)); -var logOnceHeaders = (0, import_once.default)((deprecation) => console.warn(deprecation)); -var RequestError = class extends Error { - constructor(message, statusCode, options) { - super(message); - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } - this.name = "HttpError"; - this.status = statusCode; - let headers; - if ("headers" in options && typeof options.headers !== "undefined") { - headers = options.headers; - } - if ("response" in options) { - this.response = options.response; - headers = options.response.headers; - } - const requestCopy = Object.assign({}, options.request); - if (options.request.headers.authorization) { - requestCopy.headers = Object.assign({}, options.request.headers, { - authorization: options.request.headers.authorization.replace( - / .*$/, - " [REDACTED]" - ) - }); - } - requestCopy.url = requestCopy.url.replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]").replace(/\baccess_token=\w+/g, "access_token=[REDACTED]"); - this.request = requestCopy; - Object.defineProperty(this, "code", { - get() { - logOnceCode( - new import_deprecation.Deprecation( - "[@octokit/request-error] `error.code` is deprecated, use `error.status`." - ) - ); - return statusCode; - } - }); - Object.defineProperty(this, "headers", { - get() { - logOnceHeaders( - new import_deprecation.Deprecation( - "[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`." - ) - ); - return headers || {}; - } - }); - } -}; -// Annotate the CommonJS export names for ESM import in node: -0 && (0); - - -/***/ }), - -/***/ 9620: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -var __defProp = Object.defineProperty; -var __getOwnPropDesc = Object.getOwnPropertyDescriptor; -var __getOwnPropNames = Object.getOwnPropertyNames; -var __hasOwnProp = Object.prototype.hasOwnProperty; -var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { get: all[name], enumerable: true }); -}; -var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; -}; -var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - -// pkg/dist-src/index.js -var dist_src_exports = {}; -__export(dist_src_exports, { - request: () => request -}); -module.exports = __toCommonJS(dist_src_exports); -var import_endpoint = __nccwpck_require__(5092); -var import_universal_user_agent = __nccwpck_require__(5592); - -// pkg/dist-src/version.js -var VERSION = "8.2.0"; - -// pkg/dist-src/is-plain-object.js -function isPlainObject(value) { - if (typeof value !== "object" || value === null) - return false; - if (Object.prototype.toString.call(value) !== "[object Object]") - return false; - const proto = Object.getPrototypeOf(value); - if (proto === null) - return true; - const Ctor = Object.prototype.hasOwnProperty.call(proto, "constructor") && proto.constructor; - return typeof Ctor === "function" && Ctor instanceof Ctor && Function.prototype.call(Ctor) === Function.prototype.call(value); -} - -// pkg/dist-src/fetch-wrapper.js -var import_request_error = __nccwpck_require__(4910); - -// pkg/dist-src/get-buffer-response.js -function getBufferResponse(response) { - return response.arrayBuffer(); -} - -// pkg/dist-src/fetch-wrapper.js -function fetchWrapper(requestOptions) { - var _a, _b, _c; - const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console; - const parseSuccessResponseBody = ((_a = requestOptions.request) == null ? void 0 : _a.parseSuccessResponseBody) !== false; - if (isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) { - requestOptions.body = JSON.stringify(requestOptions.body); - } - let headers = {}; - let status; - let url; - let { fetch } = globalThis; - if ((_b = requestOptions.request) == null ? void 0 : _b.fetch) { - fetch = requestOptions.request.fetch; - } - if (!fetch) { - throw new Error( - "fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing" - ); - } - return fetch(requestOptions.url, { - method: requestOptions.method, - body: requestOptions.body, - headers: requestOptions.headers, - signal: (_c = requestOptions.request) == null ? void 0 : _c.signal, - // duplex must be set if request.body is ReadableStream or Async Iterables. - // See https://fetch.spec.whatwg.org/#dom-requestinit-duplex. - ...requestOptions.body && { duplex: "half" } - }).then(async (response) => { - url = response.url; - status = response.status; - for (const keyAndValue of response.headers) { - headers[keyAndValue[0]] = keyAndValue[1]; - } - if ("deprecation" in headers) { - const matches = headers.link && headers.link.match(/<([^>]+)>; rel="deprecation"/); - const deprecationLink = matches && matches.pop(); - log.warn( - `[@octokit/request] "${requestOptions.method} ${requestOptions.url}" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : ""}` - ); - } - if (status === 204 || status === 205) { - return; - } - if (requestOptions.method === "HEAD") { - if (status < 400) { - return; - } - throw new import_request_error.RequestError(response.statusText, status, { - response: { - url, - status, - headers, - data: void 0 - }, - request: requestOptions - }); - } - if (status === 304) { - throw new import_request_error.RequestError("Not modified", status, { - response: { - url, - status, - headers, - data: await getResponseData(response) - }, - request: requestOptions - }); - } - if (status >= 400) { - const data = await getResponseData(response); - const error = new import_request_error.RequestError(toErrorMessage(data), status, { - response: { - url, - status, - headers, - data - }, - request: requestOptions - }); - throw error; - } - return parseSuccessResponseBody ? await getResponseData(response) : response.body; - }).then((data) => { - return { - status, - url, - headers, - data - }; - }).catch((error) => { - if (error instanceof import_request_error.RequestError) - throw error; - else if (error.name === "AbortError") - throw error; - let message = error.message; - if (error.name === "TypeError" && "cause" in error) { - if (error.cause instanceof Error) { - message = error.cause.message; - } else if (typeof error.cause === "string") { - message = error.cause; - } - } - throw new import_request_error.RequestError(message, 500, { - request: requestOptions - }); - }); -} -async function getResponseData(response) { - const contentType = response.headers.get("content-type"); - if (/application\/json/.test(contentType)) { - return response.json().catch(() => response.text()).catch(() => ""); - } - if (!contentType || /^text\/|charset=utf-8$/.test(contentType)) { - return response.text(); - } - return getBufferResponse(response); -} -function toErrorMessage(data) { - if (typeof data === "string") - return data; - let suffix; - if ("documentation_url" in data) { - suffix = ` - ${data.documentation_url}`; - } else { - suffix = ""; - } - if ("message" in data) { - if (Array.isArray(data.errors)) { - return `${data.message}: ${data.errors.map(JSON.stringify).join(", ")}${suffix}`; - } - return `${data.message}${suffix}`; - } - return `Unknown error: ${JSON.stringify(data)}`; -} - -// pkg/dist-src/with-defaults.js -function withDefaults(oldEndpoint, newDefaults) { - const endpoint2 = oldEndpoint.defaults(newDefaults); - const newApi = function(route, parameters) { - const endpointOptions = endpoint2.merge(route, parameters); - if (!endpointOptions.request || !endpointOptions.request.hook) { - return fetchWrapper(endpoint2.parse(endpointOptions)); - } - const request2 = (route2, parameters2) => { - return fetchWrapper( - endpoint2.parse(endpoint2.merge(route2, parameters2)) - ); - }; - Object.assign(request2, { - endpoint: endpoint2, - defaults: withDefaults.bind(null, endpoint2) - }); - return endpointOptions.request.hook(request2, endpointOptions); - }; - return Object.assign(newApi, { - endpoint: endpoint2, - defaults: withDefaults.bind(null, endpoint2) - }); -} - -// pkg/dist-src/index.js -var request = withDefaults(import_endpoint.endpoint, { - headers: { - "user-agent": `octokit-request.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}` - } -}); -// Annotate the CommonJS export names for ESM import in node: -0 && (0); - - -/***/ }), - -/***/ 3990: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var register = __nccwpck_require__(3512); -var addHook = __nccwpck_require__(80); -var removeHook = __nccwpck_require__(5976); - -// bind with array of arguments: https://stackoverflow.com/a/21792913 -var bind = Function.bind; -var bindable = bind.bind(bind); - -function bindApi(hook, state, name) { - var removeHookRef = bindable(removeHook, null).apply( - null, - name ? [state, name] : [state] - ); - hook.api = { remove: removeHookRef }; - hook.remove = removeHookRef; - ["before", "error", "after", "wrap"].forEach(function (kind) { - var args = name ? [state, kind, name] : [state, kind]; - hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args); - }); -} - -function HookSingular() { - var singularHookName = "h"; - var singularHookState = { - registry: {}, - }; - var singularHook = register.bind(null, singularHookState, singularHookName); - bindApi(singularHook, singularHookState, singularHookName); - return singularHook; -} - -function HookCollection() { - var state = { - registry: {}, - }; - - var hook = register.bind(null, state); - bindApi(hook, state); - - return hook; -} - -var collectionHookDeprecationMessageDisplayed = false; -function Hook() { - if (!collectionHookDeprecationMessageDisplayed) { - console.warn( - '[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4' - ); - collectionHookDeprecationMessageDisplayed = true; - } - return HookCollection(); -} - -Hook.Singular = HookSingular.bind(); -Hook.Collection = HookCollection.bind(); - -module.exports = Hook; -// expose constructors as a named property for TypeScript -module.exports.Hook = Hook; -module.exports.Singular = Hook.Singular; -module.exports.Collection = Hook.Collection; - - -/***/ }), - -/***/ 80: -/***/ ((module) => { - -module.exports = addHook; - -function addHook(state, kind, name, hook) { - var orig = hook; - if (!state.registry[name]) { - state.registry[name] = []; - } - - if (kind === "before") { - hook = function (method, options) { - return Promise.resolve() - .then(orig.bind(null, options)) - .then(method.bind(null, options)); - }; - } - - if (kind === "after") { - hook = function (method, options) { - var result; - return Promise.resolve() - .then(method.bind(null, options)) - .then(function (result_) { - result = result_; - return orig(result, options); - }) - .then(function () { - return result; + return proxyAgent; + } + _performExponentialBackoff(retryNumber) { + return __awaiter(this, void 0, void 0, function* () { + retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber); + const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber); + return new Promise(resolve => setTimeout(() => resolve(), ms)); }); - }; - } - - if (kind === "error") { - hook = function (method, options) { - return Promise.resolve() - .then(method.bind(null, options)) - .catch(function (error) { - return orig(error, options); + } + _processResponse(res, options) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + const statusCode = res.message.statusCode || 0; + const response = { + statusCode, + result: null, + headers: {} + }; + // not found leads to null obj returned + if (statusCode === HttpCodes.NotFound) { + resolve(response); + } + // get the result from the body + function dateTimeDeserializer(key, value) { + if (typeof value === 'string') { + const a = new Date(value); + if (!isNaN(a.valueOf())) { + return a; + } + } + return value; + } + let obj; + let contents; + try { + contents = yield res.readBody(); + if (contents && contents.length > 0) { + if (options && options.deserializeDates) { + obj = JSON.parse(contents, dateTimeDeserializer); + } + else { + obj = JSON.parse(contents); + } + response.result = obj; + } + response.headers = res.message.headers; + } + catch (err) { + // Invalid resource (contents not json); leaving result obj null + } + // note that 3xx redirects are handled by the http layer. + if (statusCode > 299) { + let msg; + // if exception/error in body, attempt to get better error + if (obj && obj.message) { + msg = obj.message; + } + else if (contents && contents.length > 0) { + // it may be the case that the exception is in the body message as string + msg = contents; + } + else { + msg = `Failed request: (${statusCode})`; + } + const err = new HttpClientError(msg, statusCode); + err.result = response.result; + reject(err); + } + else { + resolve(response); + } + })); }); - }; - } - - state.registry[name].push({ - hook: hook, - orig: orig, - }); -} - - -/***/ }), - -/***/ 3512: -/***/ ((module) => { - -module.exports = register; - -function register(state, name, method, options) { - if (typeof method !== "function") { - throw new Error("method for before hook must be a function"); - } - - if (!options) { - options = {}; - } - - if (Array.isArray(name)) { - return name.reverse().reduce(function (callback, name) { - return register.bind(null, state, name, callback, options); - }, method)(); - } - - return Promise.resolve().then(function () { - if (!state.registry[name]) { - return method(options); } - - return state.registry[name].reduce(function (method, registered) { - return registered.hook.bind(null, method, options); - }, method)(); - }); -} - - -/***/ }), - -/***/ 5976: -/***/ ((module) => { - -module.exports = removeHook; - -function removeHook(state, name, method) { - if (!state.registry[name]) { - return; - } - - var index = state.registry[name] - .map(function (registered) { - return registered.orig; - }) - .indexOf(method); - - if (index === -1) { - return; - } - - state.registry[name].splice(index, 1); } - +exports.HttpClient = HttpClient; +const lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); +//# sourceMappingURL=index.js.map /***/ }), -/***/ 64: +/***/ 9379: /***/ ((__unused_webpack_module, exports) => { "use strict"; - Object.defineProperty(exports, "__esModule", ({ value: true })); - -class Deprecation extends Error { - constructor(message) { - super(message); // Maintains proper stack trace (only available on V8) - - /* istanbul ignore next */ - - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); +exports.checkBypass = exports.getProxyUrl = void 0; +function getProxyUrl(reqUrl) { + const usingSsl = reqUrl.protocol === 'https:'; + if (checkBypass(reqUrl)) { + return undefined; + } + const proxyVar = (() => { + if (usingSsl) { + return process.env['https_proxy'] || process.env['HTTPS_PROXY']; + } + else { + return process.env['http_proxy'] || process.env['HTTP_PROXY']; + } + })(); + if (proxyVar) { + try { + return new URL(proxyVar); + } + catch (_a) { + if (!proxyVar.startsWith('http://') && !proxyVar.startsWith('https://')) + return new URL(`http://${proxyVar}`); + } + } + else { + return undefined; } - - this.name = 'Deprecation'; - } - } - -exports.Deprecation = Deprecation; - - -/***/ }), - -/***/ 9472: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var wrappy = __nccwpck_require__(666) -module.exports = wrappy(once) -module.exports.strict = wrappy(onceStrict) - -once.proto = once(function () { - Object.defineProperty(Function.prototype, 'once', { - value: function () { - return once(this) - }, - configurable: true - }) - - Object.defineProperty(Function.prototype, 'onceStrict', { - value: function () { - return onceStrict(this) - }, - configurable: true - }) -}) - -function once (fn) { - var f = function () { - if (f.called) return f.value - f.called = true - return f.value = fn.apply(this, arguments) - } - f.called = false - return f +exports.getProxyUrl = getProxyUrl; +function checkBypass(reqUrl) { + if (!reqUrl.hostname) { + return false; + } + const reqHost = reqUrl.hostname; + if (isLoopbackAddress(reqHost)) { + return true; + } + const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || ''; + if (!noProxy) { + return false; + } + // Determine the request port + let reqPort; + if (reqUrl.port) { + reqPort = Number(reqUrl.port); + } + else if (reqUrl.protocol === 'http:') { + reqPort = 80; + } + else if (reqUrl.protocol === 'https:') { + reqPort = 443; + } + // Format the request hostname and hostname with port + const upperReqHosts = [reqUrl.hostname.toUpperCase()]; + if (typeof reqPort === 'number') { + upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`); + } + // Compare request host against noproxy + for (const upperNoProxyItem of noProxy + .split(',') + .map(x => x.trim().toUpperCase()) + .filter(x => x)) { + if (upperNoProxyItem === '*' || + upperReqHosts.some(x => x === upperNoProxyItem || + x.endsWith(`.${upperNoProxyItem}`) || + (upperNoProxyItem.startsWith('.') && + x.endsWith(`${upperNoProxyItem}`)))) { + return true; + } + } + return false; } - -function onceStrict (fn) { - var f = function () { - if (f.called) - throw new Error(f.onceError) - f.called = true - return f.value = fn.apply(this, arguments) - } - var name = fn.name || 'Function wrapped with `once`' - f.onceError = name + " shouldn't be called more than once" - f.called = false - return f +exports.checkBypass = checkBypass; +function isLoopbackAddress(host) { + const hostLower = host.toLowerCase(); + return (hostLower === 'localhost' || + hostLower.startsWith('127.') || + hostLower.startsWith('[::1]') || + hostLower.startsWith('[0:0:0:0:0:0:0:1]')); } - +//# sourceMappingURL=proxy.js.map /***/ }), @@ -28368,32 +24164,6 @@ module.exports = { } -/***/ }), - -/***/ 5592: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -function getUserAgent() { - if (typeof navigator === "object" && "userAgent" in navigator) { - return navigator.userAgent; - } - - if (typeof process === "object" && process.version !== undefined) { - return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`; - } - - return ""; -} - -exports.getUserAgent = getUserAgent; -//# sourceMappingURL=index.js.map - - /***/ }), /***/ 7338: @@ -29040,46 +24810,6 @@ function version(uuid) { var _default = version; exports["default"] = _default; -/***/ }), - -/***/ 666: -/***/ ((module) => { - -// Returns a wrapper function that returns a wrapped callback -// The wrapper function should do some stuff, and return a -// presumably different callback function. -// This makes sure that own properties are retained, so that -// decorations and such are not lost along the way. -module.exports = wrappy -function wrappy (fn, cb) { - if (fn && cb) return wrappy(fn)(cb) - - if (typeof fn !== 'function') - throw new TypeError('need wrapper function') - - Object.keys(fn).forEach(function (k) { - wrapper[k] = fn[k] - }) - - return wrapper - - function wrapper() { - var args = new Array(arguments.length) - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i] - } - var ret = fn.apply(this, args) - var cb = args[args.length-1] - if (typeof ret === 'function' && ret !== cb) { - Object.keys(cb).forEach(function (k) { - ret[k] = cb[k] - }) - } - return ret - } -} - - /***/ }), /***/ 9491: diff --git a/.github/actions/search-issue/index.ts b/.github/actions/search-issue/index.ts index dee061b..67a4c2f 100644 --- a/.github/actions/search-issue/index.ts +++ b/.github/actions/search-issue/index.ts @@ -52,12 +52,6 @@ async function run(): Promise { ...headers }; - const githubContext = github.context; - const prNumber = githubContext.payload.pull_request?.number; - if (!prNumber) { - throw new Error('Could not get PR number from the context; this action should only be run on pull_request events.'); - } - const queryParams = new URLSearchParams({ filter: `status="OPEN" && database=${database}`, }); @@ -68,7 +62,16 @@ async function run(): Promise { const issues = await searchAllIssues(`${url}/v1/projects/${projectId}/issues:search`, queryParams); - core.info("Issues created for PR #" + prNumber + ":\n" + JSON.stringify(issues, null, 2)) + if (issues.length == 0) { + core.info("No issue found for " + decodeURIComponent(queryParams.toString())); + } else { + core.info(issues.length + " issue(s) found for " + decodeURIComponent(queryParams.toString())); + } + + issues.forEach((issue) => { + core.info("Issue URL " + `${url}/projects/${projectId}/issues/${issue.uid}`); + }) + core.setOutput('issues', issues); } From def8c563969c8e4c9a25c75460776c25a622978a Mon Sep 17 00:00:00 2001 From: tianzhou Date: Thu, 14 Mar 2024 13:53:05 +0800 Subject: [PATCH 4/5] chore: update get issue comment --- .github/actions/get-issue/dist/index.js | 75 ++++++++++++++++++----- .github/actions/get-issue/index.ts | 79 +++++++++++++++++++------ 2 files changed, 123 insertions(+), 31 deletions(-) diff --git a/.github/actions/get-issue/dist/index.js b/.github/actions/get-issue/dist/index.js index 0e4c820..8f874b4 100644 --- a/.github/actions/get-issue/dist/index.js +++ b/.github/actions/get-issue/dist/index.js @@ -52,6 +52,7 @@ function run() { headers = Object.assign({ "Content-Type": "application/json", Authorization: "Bearer " + token }, headers); const issues = yield listAllIssues(`${url}/v1/projects/${projectId}/issues`, title); // Sample issue + // // { // "name": "projects/example/issues/129", // "uid": "129", @@ -122,6 +123,66 @@ function run() { } core.info("Issue:\n" + JSON.stringify(issue, null, 2)); core.setOutput('issue', issue); + // Sample plan. A plan is the rollout blueprint containing stages, and each stage contains tasks. + // + // { + // "name": "projects/example/plans/132", + // "uid": "132", + // "issue": "", + // "title": "[bytebase/ci-example#6] chore: add migration files", + // "description": "Triggered by https://github.com/bytebase/ci-example/pull/6 chore: add migration files", + // "steps": [ + // { + // "title": "", + // "specs": [ + // { + // "earliestAllowedTime": null, + // "id": "b930f84c-6728-4145-818b-14d562ec0bc8", + // "changeDatabaseConfig": { + // "target": "instances/prod-instance/databases/example", + // "sheet": "projects/example/sheets/251", + // "type": "MIGRATE", + // "schemaVersion": "", + // "rollbackEnabled": false, + // "ghostFlags": {}, + // "preUpdateBackupDetail": { + // "database": "" + // } + // } + // }, + // { + // "earliestAllowedTime": null, + // "id": "8bec113c-1ae2-44e9-a85a-16b0844f7b9b", + // "changeDatabaseConfig": { + // "target": "instances/prod-instance/databases/example", + // "sheet": "projects/example/sheets/252", + // "type": "MIGRATE", + // "schemaVersion": "", + // "rollbackEnabled": false, + // "ghostFlags": {}, + // "preUpdateBackupDetail": { + // "database": "" + // } + // } + // } + // ] + // } + // ] + // } + if (issue.plan) { + const components = issue.plan.split("/"); + const planUid = components[components.length - 1]; + const planRes = yield fetch(`${url}/v1/projects/${projectId}/plans/${planUid}`, { + method: "GET", + headers, + }); + const planData = yield planRes.json(); + if (planData.message) { + throw new Error(planData.message); + } + core.info("Plan:\n" + JSON.stringify(planData, null, 2)); + core.setOutput('plan', planData); + } // Sample rollout. A rollout contains one or multiple stages, and each stage contains multiple // tasks. The task status field indicates whether that task has finished/failed/skipped. // @@ -171,20 +232,6 @@ function run() { // } // ] // } - if (issue.plan) { - const components = issue.plan.split("/"); - const planUid = components[components.length - 1]; - const planRes = yield fetch(`${url}/v1/projects/${projectId}/plans/${planUid}`, { - method: "GET", - headers, - }); - const planData = yield planRes.json(); - if (planData.message) { - throw new Error(planData.message); - } - core.info("Plan:\n" + JSON.stringify(planData, null, 2)); - core.setOutput('plan', planData); - } if (issue.rollout) { const components = issue.rollout.split("/"); const rolloutUid = components[components.length - 1]; diff --git a/.github/actions/get-issue/index.ts b/.github/actions/get-issue/index.ts index 90605d3..d9b1611 100644 --- a/.github/actions/get-issue/index.ts +++ b/.github/actions/get-issue/index.ts @@ -19,7 +19,7 @@ async function run(): Promise { const issues = await listAllIssues(`${url}/v1/projects/${projectId}/issues`, title); // Sample issue - + // // { // "name": "projects/example/issues/129", // "uid": "129", @@ -93,9 +93,69 @@ async function run(): Promise { core.info("Issue:\n" + JSON.stringify(issue, null, 2)) core.setOutput('issue', issue); + // Sample plan. A plan is the rollout blueprint containing stages, and each stage contains tasks. + // + // { + // "name": "projects/example/plans/132", + // "uid": "132", + // "issue": "", + // "title": "[bytebase/ci-example#6] chore: add migration files", + // "description": "Triggered by https://github.com/bytebase/ci-example/pull/6 chore: add migration files", + // "steps": [ + // { + // "title": "", + // "specs": [ + // { + // "earliestAllowedTime": null, + // "id": "b930f84c-6728-4145-818b-14d562ec0bc8", + // "changeDatabaseConfig": { + // "target": "instances/prod-instance/databases/example", + // "sheet": "projects/example/sheets/251", + // "type": "MIGRATE", + // "schemaVersion": "", + // "rollbackEnabled": false, + // "ghostFlags": {}, + // "preUpdateBackupDetail": { + // "database": "" + // } + // } + // }, + // { + // "earliestAllowedTime": null, + // "id": "8bec113c-1ae2-44e9-a85a-16b0844f7b9b", + // "changeDatabaseConfig": { + // "target": "instances/prod-instance/databases/example", + // "sheet": "projects/example/sheets/252", + // "type": "MIGRATE", + // "schemaVersion": "", + // "rollbackEnabled": false, + // "ghostFlags": {}, + // "preUpdateBackupDetail": { + // "database": "" + // } + // } + // } + // ] + // } + // ] + // } + if (issue.plan) { + const components = issue.plan.split("/"); + const planUid = components[components.length - 1]; + const planRes = await fetch(`${url}/v1/projects/${projectId}/plans/${planUid}`, { + method: "GET", + headers, + }); + const planData = await planRes.json(); + if (planData.message) { + throw new Error(planData.message); + } + core.info("Plan:\n" + JSON.stringify(planData, null, 2)) + core.setOutput('plan', planData); + } + // Sample rollout. A rollout contains one or multiple stages, and each stage contains multiple // tasks. The task status field indicates whether that task has finished/failed/skipped. - // // { // "name": "projects/example/rollouts/122", @@ -143,21 +203,6 @@ async function run(): Promise { // } // ] // } - if (issue.plan) { - const components = issue.plan.split("/"); - const planUid = components[components.length - 1]; - const planRes = await fetch(`${url}/v1/projects/${projectId}/plans/${planUid}`, { - method: "GET", - headers, - }); - const planData = await planRes.json(); - if (planData.message) { - throw new Error(planData.message); - } - core.info("Plan:\n" + JSON.stringify(planData, null, 2)) - core.setOutput('plan', planData); - } - if (issue.rollout) { const components = issue.rollout.split("/"); const rolloutUid = components[components.length - 1]; From a5ab4b96950ed78f77bbbb93c0cc37b0258ae829 Mon Sep 17 00:00:00 2001 From: tianzhou Date: Thu, 14 Mar 2024 14:08:40 +0800 Subject: [PATCH 5/5] chore: check migration status --- .../bytebase-check-migration-status.yml | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/.github/workflows/bytebase-check-migration-status.yml b/.github/workflows/bytebase-check-migration-status.yml index 705e444..a4a03c8 100644 --- a/.github/workflows/bytebase-check-migration-status.yml +++ b/.github/workflows/bytebase-check-migration-status.yml @@ -1,7 +1,11 @@ name: Check Migration status on: - workflow_dispatch: + pull_request: + branches: + - main + paths: + - "**/*.up.sql" jobs: bytebase-check-migration-status: @@ -31,3 +35,18 @@ jobs: headers: '{"Accept-Encoding": "deflate, gzip"}' project-id: ${{ env.PROJECT }} title: ${{ env.ISSUE_TITLE }} + ## The example only checks the overall issue status. To make sure the particular migration + ## has been rolled out (as opposed to skipped), you may need to check the rollout object. + - name: Check status + id: check + run: | + status=$(echo '${{ steps.get.outputs.issue }}' | jq -r '.status') + issue_uid=$(echo '${{ steps.get.outputs.issue }}' | jq -r '.uid') + issue_url=$(echo '${{ env.BYTEBASE_URL }}/projects/${{ env.PROJECT }}/issues/${issue_uid}') + if [ "$status" = "DONE" ]; then + echo "Migration has been rolled out: ${issue_url}" + exit 0 + else + echo "Migration pending rollout: ${issue_url}" + exit 1 + fi