From 2daba6b949e2ffeefecb49de42934eb975ccfe10 Mon Sep 17 00:00:00 2001 From: v-sabiraj Date: Wed, 8 Nov 2023 14:53:35 +0530 Subject: [PATCH] Updating parsers --- Solutions/GitHub/Package/3.0.2.zip | Bin 34280 -> 34216 bytes Solutions/GitHub/Package/mainTemplate.json | 208 ++++++++--------- Solutions/GitHub/Parsers/GitHubAuditData.txt | 27 --- .../GitHub/Parsers/GitHubCodeScanningData.txt | 221 ------------------ .../GitHub/Parsers/GitHubDependabotData.txt | 179 -------------- .../Parsers/GitHubSecretScanningData.txt | 220 ----------------- Solutions/GitHub/data/Solution_GitHub.json | 8 +- 7 files changed, 108 insertions(+), 755 deletions(-) delete mode 100644 Solutions/GitHub/Parsers/GitHubAuditData.txt delete mode 100644 Solutions/GitHub/Parsers/GitHubCodeScanningData.txt delete mode 100644 Solutions/GitHub/Parsers/GitHubDependabotData.txt delete mode 100644 Solutions/GitHub/Parsers/GitHubSecretScanningData.txt diff --git a/Solutions/GitHub/Package/3.0.2.zip b/Solutions/GitHub/Package/3.0.2.zip index a17e9a5358e1d432e543a4685de26f88b36dbdac..b7877c4fc1554111d4c1ffb1f1d7a1bb911cfe90 100644 GIT binary patch delta 24840 zcmY(qV{jmC7cCmwb~3STV}gloPi#BsXo89DiEZ1O*!IM>b@SfyovM4Qy82iDSkK1l zwb$-GiU2E#07Foe0f)c<0Re#l(QvCp7)C-$a3Y-$!cDXdCu;u3i$nAv<8ekU|xuG4-$_z9C%#}iGt z)*-jL&ghxazeYf}G`nDBQUoTZ5a=SkZDmXLiP+#pxQSz>xMdLR|xJ~$iJbhgsnR|sD=Cl}u;CdQ^qS_6@7GHCdh26S`+ zoB!%H0ULKkl7pN!uB$b}LpYW!wv%tQ<&0h8&gzmAp1K@Ad7o+5*7Sh!*6tnSZ|Suw zgj|PuoY}*i=8NiyG(Mjut$5u`cSx+oGn1?aNfcs^&<$wiO^H<)(SOxHKzvMV_n^18 zFjP7-`o91yEJE!OlK8%{s9cbxbuneW*Y(Z5RB!cC2GOtZv*b zPH9$xTgh>qMH*NAK}Xq#Xv^n$NCQs|VwP0PxcxDFm$Pm>6B89NDMhDUaj+{e7McDC+BQ_(DQTb2<&H zap=HJ;95D~$vA#xhbGL`L2?H-&NVk`;vis=k+X&YH~VZH5ud3b$;8Y8+ab0QE6Z!a zm|7mIDbkq+Jy<1R`kt@Xf9-Zrb@?ufB_er$1kbsGCvI$mz$5<*n1AS>Jig*A7~J&U zef&050Q+?goBG|?b_4C_Sow>p!=Jy2J#N(-_z;ZWLv$kE0s zXIDsC>Jh{2j>XGe4)R55xF%oR$FW|-E^r45?#$rrTNIls{<$5LANwFb5W?B6Ghan@ zC}pCS1cvp_l0M*WuB~ZOy9&<78p<#mZk#2*CwulYzhmUj4r98K`zQ#m zgbHyG?l@;~Cs{&XSZK?it!!|NWrItcKd1HcHJTxPiVn`LVy&q2Sx@Q+w_RpbTtF8-c|gBVA@lwXfRO~>R6poHphNF z1??yHD?|PO27WvCLfFPLj}{DWS8U&|pG#;I@z?HW2IR5Vj>=1j)R~Wv6R9Lej|=Q$ zWGBX$EV{p8f#r|#<&v!%r`snrY|x|On;T#*$>yXEHU>Z>o{+AUmEBdq66w zLMS?POJV2yRY#3^*NxEcho(#1Pi)zuUw~%j8Na9qcx1fL40MR&M`&=F3B4fS{IPx8 zbKXB2L6HrZ)adr!71tO-+>8!5G0uTB9es2A5S&PC#YcWwl5QJco>ZIdP|XslD+$Ik zi9H>=(v~*nnME@xJ6N*_XRnL=0lm_*Vmpm%BSmKYH_IN!%OZth95-1xgib2XbP_Ve zb5?g62nv}2SG&M|LM(BO+Be5CGbp0V*MvNrg@;YrUlUQg=4;|wX923I z!jM!{;h4kOeJgxoVlN>!y;4>utX+b;q~s|n5bjGjy0arx#G0xWbGfoIQG`ZcOEA`f zOe_oeveWOi=pkcHw}mPr*Ek*$go)aa=3K$%Z%~;*otL=*8&%Gl@eQu-o(z?AUi;-{ z0!Kpzi86aDhweeh-8sw@W7hIuj0LGSG=G$2faYk71+3O+fD^2Np7!#V+T3#b%EopE z@YlrBU?Rg~UNb6vMpyqAHos1zbM#%7SXq5ok*20X-LLJcZZ#p0q#m|yS%VQCJ^6|; zBV~Q8Z?$Nxk06?bt-~N?utGR^wAUWCERM#TQK7uIgVR<)9z>kDdA7G_gt`TJ7+(t} z&NoEbW36_3Ac7B8NPopvwW7~u>9$4zz!bNdkc+=3XVT!TEN!vUnzWx9eLk~>U#_z3 z>SNtqKHPFj`x(H0%aA^_OTH(U9-&F>OqGaP=9+M{a4X3Foy7Q5r3Cz?VqgbnUp}`4 zJT>`RptNM|OiMjMRr+sbhdrA{*0^PTF@s{00sLdNe{TzYByuNw{&?|Ek2A>=pt%+& z8}H>(UFbXhw|9N*K=}cd51RPEl3md=dTEt!&%G?yY{rA4{ImN*DgI{kyPH3V=HW+M z)}J7Quq}xXGVtx^c=#HR2+SQ93p`p_|3Z}_Way>n6ORX}Z_SIAPo*iQ3<=YwuotT( zh4DsMIXeA$FiR*Li683*GhJcZ0|>~D4$T=&h)#^S-pBU28Pm>(F}K@8Mx?S?D_&+f zwbbIZh%m+})x% z8_E~IVcd6oql%KOoHha%k2p!>|@}1gMijo2Z;- z{LR1gsO=W{HI7nbC3Zr?5Kt%TIq(4P8$4?R9lOqMCtkw@B{0j@Sv%-}DqQ!}&`-+G zBw%lXRh>&f|Hn-!TeZC;V+0*Qit|`Av6zYNE8w=Iut2v|CqRy=<4UG??}T5dTQ?{E zNvU~yvuEwluP$!LHZmw31_-Do1*^r&lIxkoCdXcI#X^$_DHKck!M(?SCYty}3ujQw z-z9=oQqQZ75#`Ssvt^zBijdi#OO}&@ysloqz^5?MVQ*uH3J)Z z_+dqnCp1T0EB_~1(M-7cRL)!d82`=v;ec03yrXoVcW>~3WPh+h7r;~gBm74NZ#Hi# z6A(lTPyfzxWSc&Gb8Wc zlk!sLlgBuuEaWeyYy=Zp-B1ir$x{}You9h$x0X-{V9JU^dWdm##P%wW}0>n zIT9I}R7%vILcm3i$;-sDQy4!eBTc?5Kxj$j^gV{Zv_^F94RtrNsn@Vrc&aY_8gcaq!a7})yU0vY- zRuwti18w;j**28tX6D-dXn`?w9gbp`gQ9hlc3SgwoVf*YF!}fjMxwCp_P!wnGy{)a zuSMpxxtW^<2q5<_g{f+SoHI83x>Sl;x{o_0OgUV)=_Ha|kr-RYK?+$qBSOZX6P~=} zq;e)U!S0AHSzhBy$bT9XXU$GcsR?(DQZE(cOc<+bzwR(ZS9~nGOk%7;4Ll0z3 z>A!9iP(~?uZ6~$Q%Bb(lZ!THC9Y#u70!-E6;dz<5fzg2dXXxYh-AinqXl#$ScdqI>Y%&#N>$b zdbf%2Kuyt;a);|2vV9YjKEhn{V0ytUqCwNLM4Y|G%z{JZwa_QDl3(9HZEu;yo@rJr zBjfvq2vfnWe!Ok@B#)m0aXE)w)OB6YgUb+i8kMyOcU08xDGqr=oq|&jnTyL<6dbgCIp9VWPK%KGEcYk^t3!oNluB8te~(JKw$Se1pJi zpjvq7+V_%=)c4;JHgcq4ZqUrLA!KQk&r}}tE+6w8)FxT0NCqC|OiUcZj5j4qb^}%e zTzP1jpcw%oC%LL%n+F6VPJ`e^PRi>uJRMZi&~&k+)j`TWybte{mmhtIG4-(L0Sr!2 z<2zw)6B02C>KI&1Ya;jK&S#MK=Q#e>m#!V&@J6=TtfH1}z2mC^x7XBJ#*`?PgzfdQ z9+5FMX3gO>WMIpt95CKdI0!y=trp)$SL$0GS~8R>hYzGd<0@iw8mjjT8o_0wkpR4A)yR)`VLr*lfH)Ol_DuEpv)!I*=Q3H!?YIIZ~=yO_mR^Kz`AVIhun5vcjpz z8cN0=OxmHR3@RX;942 z{O+H2`DD7MAHg2~1}SIDK_W=Yyw%YU4}#_4UiNQlEr+5$Rw-;|bjzH=YXigkIYv)U zY;vFt(r zY36Pa;0;aa2u1W=6eKK(H0CT$8HTiBs>YWL9?QjQ^vTp~7Ib9yHHXasf+twVcFx{Y z7I8(%B}U|V#}RQ`y$h=&;}B-fUVRAjSaEL6G`~&gSOf3?ysyDv)f}$es96Qth)nvk zRo^YS2cb!G9tUlNrF3wW?W51lW}JfIBE`jo^Hi%bJuMMqT_hgh_m9e44(PKX|C`5$ ziw3d5gHfJeM!rK~c1H~O&fMPDEGC#!+OzRHSvldFOZldmT?m7UG0WR9`z#WqpLZfN zZF5c%v;NcJ*Myrc_S89!+}xR=H7+4};fLCz+2vzfvstd4=7T_&8LV9G&smHg@Tnf* zt#B~TvoxA2ffD~}qR6dOkC~&!957sr@fza-r4arF4#z1#C0q}jJ`#UX4uBS2d7s5`!7ZQ#i}TynyTx~I<59%$$-Zr()9x_G^Y&mO!>qltv)%dVa?6I8mAQUi zBfg4`hOy$XrH~?Q>K%{+^U^B!zYBUw@$(1@Yx5xW7dSF^?^7LsPB&`$G&9fm=(;vr z*fY%Z*}L7Ug=ATj#c%KEdU=c5_k5kcF@9{U9NPS|KLKoBMDI`RSnFgx^hQ@gkGLFF z>)T(hST(vgZ7sKT)h{)1(kOJj*me81n0vcBI9#Q7i%~C#xjYA(VP8X<^LfN?#~N)U ztmIZY&kFFjtlYc1*=00my=NTgn}52_t*v>_tqUx-UI)1Goxf+%NIj~|N0^pv*z1n` zQ%n37xd@;rGs!Im{QwAI-hp(tlN>!u|Ib7%iqemf6Co1+FyF` zc>^Dl89|d69ev}%Niqkb@4mpeXQWbT&dk(`Y#vj_mfnJ27#^EieXIOgTAzgHdOn8u z8qx3m?mIHJWAkV-VjCCK^+A_R>Kmf!*N+;muC-;U17qg|0>U`ka0XBJ?#}=s^tWgD z454^mqPhpoF$0?!cwO&~S7bDUB>y1t>7zd|R;)Y@c3LZZ=BV&uX= zW<5h``f}J65Zt9LyomBs*3!9sGikjN#POT>8`QA2EmfoclO&MQj5f#)$xgr7ed~;) z9eSJf+>=lLHtN%?y>-i$*yWAOyE$}2OuKn^48F36i<%}s-(~-4?D5BDQ5X?rEg*3N zI}{*Ha{90*VO3J%z$)=3q25Nc-odlJX4{4GS_QR(|Am{gJk7U=p#^qWaL*YrumYNBH?@3@F zt0OZ%)zgui%UiZE*}-GpL^L1&Gb$t;L8lY?T+<{wj5npP zMoOk$Qn_`0c>1x_XaP(|a`n0hZN1IRS+yn{!E=MBb=yzrr3ub(Hd|e73V>(iRUTSG zYpi!KqrhD&^HuLne8mk(H=k6J`D-N*7``7R@h%xog4Y4}XARCY%qnE3zTjQ~oikq( z6tTS_O-`LrE**;y*TdlbRB)PxZJiT;IqVJRV=w6!2ebm-$Z-9SyEug(^H!y0vnJvgIqm4REBo;)18Pz$ zmM+qr%jF|sHJ`o#LbbcA*=2ALXpI4mi_$p_Q$i(u0oo-O0zc&lIAF#(MS>dX_Emnao(BXjay&-_Xp)X6{cZO)V&$t@s(L3_i+h1O0I1N;DR~i*Roshi@ldGr?KT z!n8nLyoFe2r~5-+L?gDeAp{S!K_||4l26$Xe)1m2%H7q~R-maMDH{|_Ke1Wg|0d;e zgK&&Dx$>8(bEbWH;5jQ|yJmA+fkvf*^N-K;Y{C8$#>P;+HOKlF-I<4SVt(%%pXf|m z5`vwmi^xY1#S<9GMp?XwWd%0dh>S>SMd7R^_;Ga97Ht8=oC*=8b|Hh4R4(%fZXFZG zrZD-YU&VTd0|1;p0(Ik=Etbb!?RkXJ@=DX-8U9B-%ljw0x!Zqu^I3 zus+uxActJM2L_Y}mv>?vqK609UTCkVqaa><{RGBiSU?w`ZugHq(_m)M${hK?-CWs;x?3LYK)F`nZxJrfjrIru3uzX`;Z2Xg+pP7pj5JuL zBJ=$kD4=6aht{s@nPxOyU4X`0ZeDT}>BqN8Lgj#6qLU`0rd&qP1bg>ZRaLArYy z$CaB>IU@KZJNT?2ouY||d#T~IZJz~@1Dn5^mB)U%L)nPojd+>fc&ijCJ?tl)Nsvh1 z6yJ23$MjP&Cz8TV-)+U`XROLR5=>}(iCwIpU4SYWH`0ahc}%oYJxZzGMItjJ7<^{X zPms~89kGp5Ll0kc&;H4*bt!?@-E3W69fu@our@y%(@E0RCOv)BAvBZt=Rf2zu8xw~ zDZ>VtC~l%pzhI4`5%x!we?=q@7U+>En#xJ%T#oPoXOM3>6L2l_tOiXPllke&-3pEr zjeySqb0DN%@o)cRY=oqL$0HFVO3+I8I`;T#LdiTqJ#Qk%^8wOw=JGnsTmowK$29OE z5^SNIs#Y2VxrP?(JUk-S4ck`hL{bK0($^7=`BysvL~oH8ZJkm4D*wvX-^(HOlQP`d zZHnBVAypI~JqfEUdBr&oH7Cvs6+%am-2wH+x;bo2($q=T3PapvCs|6RZ1N($w_HZ0 zg~7eK(q5^oy3JtbnZ5XVI`vUk0eOqQv{+hNI|)fgwv#bbO+lIU9(4ulxMJ0+^wv#Z zdvJ9}l}1<7Q#O2p_ib;nKu(GZ#@sk%uU?{+*b{s8M(I-y0c-+>4R`H+%P8%}5Fo)= z&G8o+Z63*SP!O05U2D-*G45ur=dhXiYF$c}-UX_}E-~@5#trGS3yB(+UN<^I%cb4MUUnDTALJf+5avHbz2UkS2R-z>8rJST>C>JUPog|JVq#a17Ggrse%bkEt_a0w z;Y@vbn-Kko4VZq{q3oFDYZmU#leET`0YYLK8w_xovCiaAWe+g_*MCQvHAcif`%5q> zD?eLNJohmB!XSS*1vq_YriFQzD4x~eaxJJy^%+A2tlB1zI7P;0;Rr#THXq!mZ>^~ilTD9Ik(GrZ+qDcYm-WEwNaduCe$?BtMc3p1fl;-_{Aq$ zt?hcvIPTXn*bxNOdRR*m(89K5ab4I*AwSs&H-~+NRezyH*$&Z>9Ip)HZ_(q_iJ>HvoFr2IM%)0fe zZuAzMCp$`y)70|N)gC_%g}X`(uL!H#D!SQ7(F04dtz|}rgzbUGpwP#AfpBG|`cZ7+ z>EN;O~fF2{!Rf zX@Q{7r0rMaJ5?kVST}v>WKUwjRJgnT(EESzKDQwC^VK7nhc}rRVVcl#5%bAJ{OOFmTpRgM%!_)$DN-ymNW~Q8@)?%< z%X)V_infJFEluO0D~?OJ_)$oVPNLj)C=ZClmo%#9581?PVremvWtcRrHQ!QI3}mgf zsx(c9rwZb$6N(jPYBt`?nGTf+(EN?zF!FsJUz^b_*5hR2{R<6+n!cymB*)Sf0{$`T zsi@hh>&>s6a6oQ$-6p%@+*-YyH^!rh$Rw-1Y`){GCek-s`{Np)SYaYa{Xc8o5%{(r zhFGp}9u!%h&;*ek!xzrpUFXfC`3qMEN%nX<4S_s4`nUu^e+)sTQZv zqj2}8m*-&6W#gex)(@XAAA~o>KzBI!iI;^$JrC;D7IK7RuqhFOG+~g#z+%FP@2!H= z)VGoM_7eVt`{TJUER(M_@B3XZ>qXX{NT(yTyVGFc^>YLAtw3v^+2k3wGhl{0k=CjS zNnu02@txN4+k`PmQe8}P4@&6*QfWUz+R!*UGf4Ao9q1(8ZfUxVz0bH9b62T2Gov~= z?^SJG4#PL}lr?)@uvX1#Lm$?WR9F8oTg(|HLS!XU&muML|a|V~g?l3|OicYn?7u#J^EThlW|E&~mW$<$i-r z3mM=-1fN^QJVpDZX0~i$h+mr=y2OjoF?Qj>*? zC1>Rdd?9Dg?JD!rBym9Gon2pTmj*L#(^|Pk@3P}bXP_68DGuOvL(gOy;QBV`f=A;U z^ck&4=HkmQM|VZ`wI^tmHyCN$XlfTv<4AU0C3mAT2pW^QoETfn*=ai5KYrk`ovPm$ zXt}&ogcVSgZ_*E=tB99UvNfKi>4W<{O%uF=5jb(kkOBsfUd(uNf^|&uRGJ?WZp80B z^tZk{81F-x3IU<-4vQI?S?}9t(B?wiuiuvZ{=OtYLIq1rIba3XlVn2HzF>Wir#nJ` zHJ9QR>%&Fk3HiDni(-d99J7f$Q$(p*#3*ih02gu6Lenol zK$3}BYGNYPMMg7?(CGLWvtwmqG=-2@g;Qt5*N9r<+5q^?{zwyrGkdh0QLts>n0g@X zv~%>`@wqbb@U%$1hlfLB+qz0M)<(>4p>SI;q*6hC zhDW?v_4j1SY_u#KgXsdn#{FwS3~#gn{5=z+(GXg5q^#;t@-x6*GHqY*q;O`FOMefE+*7@6 zJ2l>~NpqOQ0z040K~^zmJX5i%HMyCDN-yk9XZyowxGMoqhhs|n0xQ!-W1oU$ zNakKF>b3CO1}1lCo2|rFiGmZd98DwBa1HW6sV-3Llp?YZ*P$UApp|dTk(xUCM}w4H znk)%&jzG6>-d-(9rYH)2Y+g>9{l|DMn>erwR4^7iM{AZZp) zt?t41MP2F!gfeX~`CGn;Pm}cS%w}KQ=uW}MCW_A&h!1?1fsAcVPj?pxhFbSi#S0C^ z`XYeU{fb}Q;|1IjXVq6UC+y1*M#5(HpSt#rVJ>+v$rw;0&s}?4qw^)z<_L-;%HHPgs z*CM*3_eBKhX@)_hobc8=kp+?s7%VH!%R5Kodh=P3y|frmx?jo`#6XF@@RDftOGS^) zCg9!~xs3OBv%fBX4W2+}vo)|u{Unf;n020&b>N2o2|eyY{Dd4rD@Ees<}YPbf)6V) zS`RVmCZIQ$OcGv@eTt~>tyf{=+$r)>Q-RMy|LGx?=0)$gx{>?;U4KNTi+wiW27~Dd zL1hF=;}i4(9~9|OZUV;N>Ah&%?g>E?xZik=UjN#6C<1g{m%fq(i_w19JrAgDxEp%v zvFQ?z^sz!+;0lJ@0`d6l>xNx#IE@^6{^SP+wj$*3v zuz6&(x_imP(xeI*bsa*d=R*ddfBqfhCmDy(exM;M!(N1wW-$`gl9IoPToC57!fW=mZ6dWpEL_8(8&L4 zZ!!0tgq%%+sc+l0q$w(6R|m-{N^{uC$!xa>HAKHUEM;uGkzXjn>HB340^$VTq-a z@TkHKCLR_!^qGAWzr`l&4x(F}9EY;|ya|pgW*|Rz zQo$HeHxcFdU?2b8*Eof7+FwKbpdz?4BSgkbZBuumFEwR!fwH@5i6`R^J+H4)@dl;uyEs?qvnZ^KH)l@!M)9W}+?j=CCz0zYI3prpAMq{3<<$<2qQK2<<)g9W zO=0ksH#$&%Dn{_f&?6H&HJaY0=Rx?k8YAQ$tZP#gVJ=@^?clEWm1+&$(1U|C`0t`I z=77;-QP#I$5#Z0yNUatAMHVNCVUqNx*ST*FQA^Np{#vZ5BLNCOeB}|eyHh95iim;!E!#iA#Zt|Yf{;5Mc(xJKCWFwW*M9e3mq0nmoOhV?+o*2Z5 z&OQBMWD5aBP^|p^8%$wdmyn+-!cOiSiI;!)FGguXM6Hh#Z-*(-a;k0kZz2Qkvi#w5 zb<718Noqg?XCW8j67?DvD^aqL8G*$apDE)+D4yAP3PqOWQG~!yovH|W^VtNgpN-lf zhQcr_W!D|ls+H}wJ89o0#nol^yJy*Kmju?u^r(EvgCo8(^3E8&>B zP&R^P$Oo$B*0m(|PbR!_WB|`?F3&Q&$by7{vI{6odPgqA?|{ny7hFxKIqgRFPUY=3 z5-;@7y5R~gtXkyk?(fj}$!3`~jwSE38$;{^NO5-Px8&Y=CNyY6WK#)jt&bPg8CN-; z#c(|hTO3eJwti&1WuugUw(d~l^c_-SY?I*g=#dwEr<$7#yC|d!eD9a=ZyD;XNeH`! zItA3o)-Dzt&=cy9>Eh*4iV&&LBf!8+-08Jxp>N`#a=llEHVq-B607lGS3vz&Xpulv ze{+LOgZk6Kf-Gi^SwMlfM|S8Ufn<`7RRu=FVIX~)) zuSm4C-Xw`>D!Xr<6imop2Lpx77TGw}`G&+4S}>Xect|Aa&ix50!@!*gV%dVuTfBrP zH%a|71<06Ez@5fNvs54ED$d6N@V~WwL|Kp7n*qW1_3y8Y^T;_?IJwV3)^$nZb@|U0qnzSA0GTzj4Cu2+^1&-1RN5 z`zYdn$U(2+Nb@aA(ET&Shh7^u6s;n%sqcnaHrx6;wr_}EA3~MX$qIZ$!{7ER8Z}Wt zwgfi+HyDQaN#=(zYdDDeEB^SEkC*}Ym44zzR900;4!5hIT({tMjKrch^^#K~+)xvN zSl<+6y|D-8YkQqdG_SFd4m#Ai6DsIa^J5Yh4KSIZExJ6%EH=kxeNc9HR+Yl!>7aS} z{Zf@9r+OIxsE{N1D^3Zo3pCl!8dwC#*n-&>r{WDwC5c-;r` zn^}9|p8_R$jh3kHo~VSvq=qjaCEa(Xhn=%>FtGa-FR;2UB*~5jQnzh88Ab;WPy@z< zj;Fo<_@F^vYn=TaCJKCuoYc*ja>Y7CkxUXh;7 z$#95ua3PJ|i?ZUn(TIlhq|9t`+W%HBh>7JH!meErSfVui`nyzWVX9c4W~(@v(U&}~VSLNJ5TNC`XPpx>daZUJ zZ92>Wm|vU~m)ZRL^qIimylqVmoD@@61WA(w^!`gs-&bN3Q-k^lFpBo|Q(=7@cpRi*7b{5O0|ToR5W#zSq?m zru^4NYCVkB2eSk6uMu+kqeh~@&xl44k?!KH*EQ7KEI2C17gZ=f?!J6%t5};~R3P5E zt8>Z$0*vS39|VgDZ=)71vy?|CMgq_gJzhxvHU23}26RCkow=RZSkBo{6zeriWr+|X)*Y%*2h_t@5aO%R76qrGYU{^tZY!AiMX$cb` z7!ML2rDx4rYiZCmKi^Zq-3V%S0e`~6|Iy@G2|pjU;jkh96x6OoXBEuu z7aTaAFF1yo4^91!SpK^ZVpr}ev23o^2HbV|vBb6};<<$Vik9F^&}+4=SP1cTyl-?Fd0Xk$1EHu55s9^YTZg-FPMwJhvs|N(lmd=-og| z&t_Nf)1i-kex{505}fQR68{fV$cu$6ANF!_qMiUgN&#{KDOv%SqS{?}8C@`BBOw;M z5WNM28)dGbCcj(CQ1SS@I!;^#BUk})5@*c~Ol;I0cEszlmyu1CUjwudFd>xPDz>>J z5YX>Uu(^9hq=Fmzs0#FZufq3wuS(c4hCilOf+%mK)pN3AcMQL9gg$b24DSd?cZ%XA zosJ`4Dy22acN9ko2#}5DyLQu#=5r{jZT|=5=8QYhJb-$tCuZGp0&ZePLLGB&CR7^V z!;=I#|BY(MLz619asuQ!QP|@sl(1(Pgb4cTDjVEG)|8+JP(j>Y(Sqrz|G9S%4-&Hi zMzYY!Wi93m>QQ0f3=#wGLD2I*PJ9C)O0qnJyE+=Wi+qY+d@cLB39EThl~tj1)t_Ev zrC(*m9Hvk(<^adblU02|Ca$%Fz9kI-xHW_%Ed6Vio}89BWw>WmnV0aEJ4~feu22OOB`#U<*;Qq7PLLu+FCGzWZhdMuNv%8M=)9hNR|Abpnl(jn&Du9{q9EJWfjX6srBeAA5!`h)P z7_{IejmBvqkiUPmNBiBZq(tt#O&eiSTsvdigc# z$B9MySOq4Nss`Ef0L$p`J$D1d*N;^HOU$U@a)kJ{RgB?Igys8=_y>*KZN z`-w|UNEC^oe?o}uUOSI9t71o}x30O9A}QSg|NiY$STmmgP$?ZQulWH^X@ZB*^~KByW$p>|i;lv4zxy zjuYw2J!vdt-$x|gRAwwr7<3b%^kgsCMKqHCLF`DRNXXn9Gq6iz&JK>$1sS>H?W?Fu z$~Td}HXxgAvk*%_N~utQf+@d_%SdwPxXfbSCHwr$zEn~JopSzgVV!csLWf44CLiNQ zBGts#bCV6gBPBMjmJ!zH-&fPZkaNX)d5Gi0@_Rx$Rkh&`XE?ybiun_O75u*iBu@yV zNb{TnCd_%Q*!@!x0TLG~mXwDgHb?q@?+phM_eps@?&;%LA}-NpU!ObT0YA_i9fWM( znVu=Mtn%B$o*1L{kNLM`c14RmdGNPoDIhHiBv64yDT84N8|q2%YTI`iK1AFCS$1s; z#nh-qdKFAO>h|Ohl0V9jUkVmGCuoGpndD6ct+ALkL;RqPak?Jb+Zq-4WjXQdF5>D- zQG?hCAx3Yf!a02&I>L@MdI+^tYV>;RjX#nbJ@IU>xmPIlwAg2IymR_y&||8gDInmV zt5?533WzB|vvQf)T01kU%WMDjlx^tvn497{)ni~|a4-1-I~DK2dY%^7f7V};qXs^~ zRTptn(aX<7y30rmHXbMn^nH8&hF(Dpd<&Y005K3CROQI^SSYS}Cw z97g*ZB{x3S3LAo-28C~|p2R!+*g2Q`1cEU8^#|OvTa`#;|GcUG&~6pLq%SkAGAm+f z4857Xv~w=e^!}-s4)`Q#6-t;n77aI5sOS-0D6@5@W$*R8iN<4!|cu ztdn?TO1{SEc=<0;sXInUu8LiC56c0~LlpIw$BRoOG_7Z3W|IkbSv&7%@E^2gRswMr zj$sN!jMd6H5S{F3=kOJqBKa7rBvFSw^g=O{CTn~4w&;QnImf&^+NXmNW5>`8%B;V) zq?34;SbV@92eG;x-d3W#o7SVgw4o&ik&=L`J#FjT>)I>gTJGZHb$0u%P_}bO9bCsM zjhObQmE#-y6i(U9wL2Ap7Vka*aQI|>4`-=b#l|(NdtsXm#@mhhvV&>`m0m$|sKnC#^(F2Z7hlmDG7j?eBphw2OgFGN&7VUQx z1c-vW;X!P3dHs%(9Wq0A1(g>PQY;?hKIIh%dGboUvx8eQ=n^RtIm$}fA(w|nfTTiQ zy*$oW6NaCc`jA3X#hEg%*8`(1nalDUntXrA5IbBK%5v`R207d$Y5bvesITGE;U&Ji zu?kEQWO|=AXF6YIdLORS{qG=$`ui)mS+72~_MCwJsg*dOUv8jO7oJ|eJJs#>;Uo9q zbAl$-pupI}H$0}xJRp8~f7D@N{?XXyzh}yOTm5wg)6TCm1i9jw6P2b91cur727qhu zv`GFNXs@Ob&xo4mX@5Mc(P={j;yte_{$7d@T1H`KZR;e!(~4r#XE&wTjoMwpi6!OA9)+e@}LP&pN%-1^$o31P%^f%K7>7PYo6{ zGZ7J{c@0nzrcX2yUB9yC4+@QhPy&mPbGZIvm|A8VWaFyO2e+n(*npkDA*Y7KGtHqV zAh)k!Jmrf{2jsz_smUk4imyx_8H9gd2~#Cg=6dXw-z@KjL4YH(Ptm92^!NI5z7Zv; zz?Di@wB-7U7_tE1zw*yxR5_61VlPP9Y;6>j0vaAf8eugi5mMR(JW!+h2gL-RbQX~Ib_ zL^i&GRe;`|GGJ$QDslLN{r7L~7wnGzU;~ZvL6HR}gkvrfFxr46r*?6uYz0ctu@mlV zNH|&whDMvACPR*%QYI+rUKb|N)#kGz`%n)HQ8+D9UMTQ_JlnOl?z32;;?yWhVmA{vd4H7q zCXz|h+OvWmqRJm$o<)2SI7yhNDyGhzJSzC|v+_+@RP9D0yZ&pz|Kd0GNps=hTf|{? zrc8klasIF($n7Gvs6wI@3NKuT04&1MM3@{y5m)Qas5CaQL6eWYFoc@$kdJ-S`k(Sg z98vaklOVT-YBuK#lfjo150m-ohO_YWDfoY2dJxumfjTSJ^~G*Age{FlPrrgcws5oV zl0++T2(MF4Do;(6G?T*nsg27|dWvXo9Z(rL8La>&8T!`EVb4kMpSN_6)@D+%V5y|G*ht+4H_i62`&?89AJO!cLOYE8^T& zDcMbrrFlX^)f0FEcS1`nKzh-LMHC5EP$hL#aGd&Ve{mYJe$+D&nT(bQ*Ak&R!pGWu zBjXrJ)FMhz{t*YYpg3K@D_&z+{$A3ea2vdIxodXEtkto1`_R}*wt!Y}I*Ur2SN1qK#56f^Ym$W{Q zRQ7H48l?(Xq5a&4dcb&);u3K+xvBKE(co?f{$2x$A#F%v{KT+*FqH+AO+w6+BxFGl z^>V@u`iEl-fw<+hDBKx?ek+I@&9CCb0W*TLe}>p^Jj;b;?24e+dN{J?h1mTx6+f+5 zDgh{xLX!z#wohih6q&!4Tc0Ac(@KADo+y)0l-bK>?#qBju8cQ7;AcII_g)B3B9&T2xfOqIAi^*Sj{OjDQRo%_7V>*d8NQ5bCj6KNF#650Q z2iu9FUPg6$f6q&LK`%S9)5gv9w{GT5mE6HkER7=IH@wP-D~*#DZ98pvYI>;6{}cKj z1>jnAm~E#fOVWke7+;=%Id#$ThPcJ`=bsS^2p~+f)KJ zHd5K8OKMtNyHa0GJiQ+9(c~tE@*aA7;Ny`r+gA8l^ccN$?!f`qgIfg?Hw5GO=8@XR z_^i_p-=>;#3*YqLVC*|-#3!i8Mzn%0&(ez;ppI#fwe|i}DQ9tYj!)%QZpSS1>tqvQn zR2T=HESP9aUZPAx@Pf6FDUr6p)n7K9-){@-{W6mcC+AvyjS6??~l0unaP4@ z&l0lDG=F4SGx>2!AN*;$=E@3M*DGgXO!KcycV=ewY1HP;#VcLBva(aXGlzKP&Z@*K zcV>@Qnk_d{TfEZRzKd6ubn3;=#Vhk3xOin9@k*6jYlv6oc^uP*Ewyfz4qIw9OUp1( zr#>)heqqbHz^0nRmieSm)zzKG#dWT&b8U%pZGW9>tImI|u5AgI)&+i7DDZ3cQL6=h zGd4zW}WV?-n{<y``i zT$i6)-j@}>5|t87rA2BB(^}hiVcL=|xcIp+ zZQcVHrmZ7Pt8!}%VOqP7Fl~@l>tyL5tyZ(N1QT`Y1CHhwq^%1WsyRrTM+j9N)9MbX zb3~mZ>Ksw$h`OL^2}iMlgE+l3pKOh^N~M(dHZSi6d^~JB(SRYi`FW3I+LQ6nfbW~R&^3KHdEP$O=?j7=qyh7 zxLBd|kya3<`{prQ@SY}mn@W0Py?-P)-Y?vZP1mkg_cd)+Uw-p?n-|x-kWc2~ieCv= zH!133t%aIx)ncuCbBML>txBwQZ}wQL+4v&0#agZHyI5;U&s_XmtTpd}i?!AfYgM_m zhFEL9%P?)cRqJT!c&k>kv=kF{>cf=g7jLZ#Gpae>T0{(0{nhFGROg>!QGe&3I{(!9 zr!E9r-hZs%H%_l{mdnws7J|)~31#9FOXon&U@FcSg4Nn{Ay^lJU3>@@B_7cD(8r4n z-1VVzjKl(a5}a+)5!1a=q1Ox{@iI?;f9PyVRi=f^_!6yPxl~N&N-!IC^AYD6#6zZU zbBXT?Ep&W#%I}0R6e`4z6MxG8Er9Oc20e2*VuUv)ypH`EHY(M}eMujZpJ1J$Q53{J zp?BJl_o1QZwCZSb(+}c1rWJBwSc$hkc+uA`_(NFd^3LaOKcU_=0kd0TcD`IO8AG{_ zH{waj;EsaB4YFq}Dnm8&!Qr`%3AD(MkD^VerG3v@u|Xcg34C@)kbnH34?)bN5qM!p z1UF&$HExgzOcb;PO)&qTbSCjQ9562h-qSO!1~?QS8;qd(J#;M$4VakNGy9Z%;0ty;d$eU{Vgn|{K1VR4z_nn;S6M)2LEwIggRfgf+ zgLA@VzD?~R6Mu}o@dSt0wsdPPh|jnU@s`|r{n$5^GX>93$0gTiSyVJFB}}a|ZeZ9a zJ7>C?Js|3rwrcFFk?sCFhP+>b2Z7Clvg%Uh^nesXq=LkYP+9zI5=4I2BIQN%yua_V zsQw?KbGen{PB^MiT=eLy%!=?jbZk&+98LV3wh5b#Qhx=ze&0{pw3jpzdd>?o4DT0SQ>6xYRMy67f1{dVodn)wia!&_)zB@xQ<@8Tw#&c*2x0Hi@Q&KSaeq zMoih$I1d_gnV3bQSz82K9(a$`sPe(p1A7I$Kak0B(BX|z4{#lq>n*ghPACc;q40$tfh*l2_Gz#XZ3RIZ3}OB!w9gk~ ze>9aoQYPmoMqHXjkH$3l8AvXCAfKt--kX4w`cbkWy!~$2iCZkPM?HLhxW)e3LIe+$ z9eQ@dUUM8a`3sDJ;1e|An?U7wjb#(WXA|v{W{jS&zePO&Eaf!?M>H8nG$}c5N^SyL z*`Q9DPhjMeL2ey?`M>8Nw83dP>w|RvHSDABeL5UX#`%3_zk=@IPlS_&Qj;%9B~%*~ zbdoj_u}*%v!D!b%eQNG`qu{4ucNBtCRjQ3qIzpiZ|N2XM*am~YVmrU*CKJj(tFmD~ zi!H`}b_s{S!~_Jzfip9O!n0{MB4H2Q!=$=F7fOhnpw4Ns6PJn`YN41aSdN7-Tyo z-clKQi>jP|X5R*oVMk!f-v@(W{9k7m@SXi_TS4kq{{adid^jC`2#`A3`?kW^+Ydg> zCIcvZtB7LFqF?!Q7!5o+)JOO=KYVC*yO+QI`gSmQ8^`~jz5o6=dOSg8w`NYMrls)G z>TohX9bT}ztfA~{>qzgw_$tshYsa7lM`I?3NBw|*;jCK-vFGSSyqUOp-1FIrUUVim zo=pzqPS;r}owzo-i@cZ;Hc$L{``7h#ub7t?LaH{EOh8mgq(TSJjam6`%Iy!QG#IS`VQ1d$1t*e-WYI$0Rk z$fPwqc}z1K4N^jymBLsgFF(TCQht7YW{Hd?E!h+00*t(kf^7SeiS&8N6-lAWNfzSg zvh9nKG?Gd#+g`3MRN2yJ+m{m&YSO(`La6C~)+J-S#X0wxeyXLl?iym#)f%WO;6&AV zWEPdldMuGqw1n!rTq>j9lrhg|+60P{sgNsSGt4ds3T=eStRvTT36?9KU|EwiDn+;% zCNH1uHH)aWWqD06obs}|?2@Zfl*LswduxiUt>SDgm!-A(Sz5DZXBA{+>A1;MSyU9vsg-HuM}skOq;EepQTbNJ0&lFE2UC4 zN{K8KRR)yFI;lI`B*Vk16Jg0JDV$=M-WKI=>mxkc;!P3L_Rt z$=t|=PE|=gHG-kx-2A~YvIF^lnLE1irlq+|bfYNgB`47FnRO@iDjyymBpYgzJg^R` z@}YDTq;y1pu<`Q_CEsP0a=qRz8uhrqK!bcbsZ-0UCeOq__;XrhH~C5fF<$?F@!vcMGxoi~ zdQ5Si@D@7L?|U~q&e|Z|!0Qden069~Z4xD+8X&_#Owq(a2%^*yv_V|a9Jskd=qte; z8sy9znUQ>|)Pb5QI+GCSJodg*f~~aky{Dahm{TnielgTES2X(0x^IiWqIit>*=NP9 z=zn4q+$0#UIc9+a_(0x&?yG;<$4TQhF#>Eik0cZ6Ao%$jrXeT9BYyTN5ZboV(psZG z#^Fo9`2~Q)ugb)g3=D~%eG-NGKaDw8iz%^BVG=R2l_1q-^F1sHh#RpYr6zX7j&meZ zx1pZe(htPzg&VtF+l*VclT}#?x3#~N-DoGMZ1>9t(?CI@fs%ZGqBy#ies78>TT;1P zv@I!KA?lXYDU7})C5xhPNx_--`dgc?n^LyoJ6Or?KmEslJ}m$S=>#2AW{yECU_C`cYKnpJ7*57g6WFq1%4U+;wx~1A{=Yd0hj>=&7P`IA z8+eH*Tl0b9T=Cz3!<#Yq-p$la3cA#!g>P(5McIXuxd5VOhw08hf#w%xu}o?^Z6YOG z@aMK-V9Z#it=wr+th95xFaz3ByhAAx=Os_c@n{70#B{W(e4sS3ipXrdwV89egk^Oq zD6!&ztN4|+i+=!D>C@#;=qf3J=Q}SZH@-h4HGWIP(yh?ZcwfH;Lbgj@exlPI`CH0yu)g2bTP6q>ND*kD23L+PQAA zp$$-u0%61x7)~%GUKb26Dq}?wA^Lyqkut@ZT_hY)(LMlHWa;(w6!_q5|gm`()sE?z~|T52(VS-^MRuNGE_b z#19c_J;UsO=HY*sf6V8UqUL4zax`kjesmvnGXF+@{m{I}&NZon?+-zp(vUvF4r>1? z4D1aRB1Z``x7B*}>I8@$1GgW4VxR(&-z}X9q_^=yNK#msgrh_fvZoA@N_ZG27oT`> z9CiZgm}Up_>J{Q8KqIFg&OV)A9)G+BVxGk=?8MGjhyD5YJNE_ z<)2Z4zw*;7k>^5Z*Y?Whch4?hm@*)31i`3(ED$k1@`1*sBC>IO{$Z1dm=hBbzhMR& z)uJ@0PgNHviEzNtu2dx5%Bd&{aL!O}6shMQ=m#*Sh0V7?+x7#lZC|~5$AuZU`9LJy zOvd97g$4)+2J&8wKmYABFL=odN~-v)*BZn;gf^#BQ?;&b;c5G1o*|> z7QrA0Qxj<3+=PD;$^>*Ap!jOcd}JXO*n0#Pz>KhnR1F%koEk z7ApA+gpRv0$?q31SS<&$j8~NWtI7Pe=4}wggab=#;5$*f~Gi%I4y z4|dVeITsu6!iOP7u}pS4j`b7WwJVaRhET!3#Bld&(FzScOs9 zzT6#{n!#uS4AWwA0#kHw#&BVO(UYJ?9cH2l9>v@N5T?Tk<*%5@l}{s|roDD)JG&Wq zGY&_DW$@k70?cgkSqIUIg2rR0wU>MjYq1FlfJ()OdDP<(JUFo3FjrQ*dG(5xek(H! z0zX~@WJS`VES-~u@sO0bkcK{_Q8yG=ULWx$a5jP-reO!eOndeA5M(ibe1(=zl!xfg zI=UNrUwWaCcSD#>DhygwsBsin5f;JlmL{yxVGC6Ni$9LvGPUHjuorCM*is>1@ip-> zt4C=m^}c}MZz2%ul+MB-e%V9H8Y0*gv(oaEx7Y`7qz}rPNc!wJ^_Q8*WG)YHppy_9 z_#X^W8TtB?Y4#;I^t5 zNsKjw&;sv5pt^S8b#C~rUW*I*{}+Foe2#o+l06blhL~w6&F~q2m0@JJb;v8+CX?zB zk;FjpP7Eo2On4&gc?|&%@DMQ z`J%n^yR_f0Te1q}5KS*YXa{!`1h+gR66^7dZ!`vOvHKc*Vj-Tvn7E>nsW@WUU090d zTGB2Y!0d-9+IJRzMi|c)gpwi2OfJA2l_$va6aFb*>jl%GpomU~+Pj93>sr?lc9sP{ z@SQvuu&byVIZeb~nu`im#<)WPMc>%FX{1e%k3dXms`m7hE zos}(#sQPq|@E|Y`!nu?!nLh)suGSLeaJ42@vhRa`1ik5dT~wfCryt_)h)|n6_)mWM6Qq=hG;ynMf?;b4YnXGc<4_c|_vD zi!)$IBz0~Hr>zOS7?mf>QQKn-b|N^=bdy?YZu2}`W`;n6SK1B&SaGZZrsai*T~LX_ z!xswSp}6J)xw36Yntj1Ph7aJ-()ex{lYxC8f7wPF+1(}sv}iYuX($In5Ih*Gt?(VWg{Kq=FW)L0+WRudjKB=oGc7;B)a88ASd#(Eljl|SRi?fz*`Mx&@Ots^li ze>u_0o(03Qe1Bs`a=LAaZ2a=u>AOwz8(0n{d-F)xHUfXx3H$^tqMSgdQzYxh=-z+; z7=ZOXwk1Q7%$~5edYD?KpvZmBWLaBF=O1}Ui--o3PF7^Pg3}3U5&iU{ir*+WbdZ)2 zXA7kRu}4$%4%y49XA-4SeT!;T_Ww=ce_Lz?aSUc*6{0mfEZPRI&XhJSvt;nE;&HA! zFa0=I%jOVL{fIW(mWSe_+LDqLj%>4j%^l}j^2j&wGj_%u=W6=Xy64*+=Q@>$nDsc< zX|_(yc*LtVgsMlpY7JBsdZOw)_VBL45wB*IKGhMgnfXqAh^eW+9VBaKQC?n)i;YS=$L%L%Xb>~}7;&)My7cKe%`a({Czr^iylEOmCQ zj=vg;SKGIo^@9|y^QJg^wNxLMa071ML~yPu+GuM><%&1f=5460G%HWBk@idZshsr; zV!_I#_qf-$w>@uI?l9cKt(bM~f8U*I-)_mRja9ZZ7Vpn3+?QLlA6Eylv}WpB(SrT9 zMT`5Q_Ssh5Upo)tE7(U{1b?c5(`nCDPRXnEzSx(rA6A|19HCyk-?dODy8W%oxxckI zYU}o~E`A?t^n7Qs+8Ude`%^d?|CWQ zKUzF3Mf*i(ofY+w>PA*)RJZTb?fYcn_KEg=PEWHdy1#RZ332;4-9FA5c1fzzR!)m| z`#9Y`PPdQK?cNYp&{k%_-QS{JzX78h86IXPG#+&vME4Syo?I zx1aL)?x)PlVko})BrRT?f2cV_5@aWPHBw#@raf(a>V!#aQlylZtY4IrmtkCC?}c$k zM5aWNF{y-~b%VJf8PS$}UzxXm9SeTTG;W zlRR+S0KQHGA_#SP^lHY|_gm1t@3%%jTn%9e=x*uVOO?kKbc4+7wVu+(v)WoNKdLx?GZ&LIbDUfG>Q4*x+GXg6)QSLOr4dudAo-)t-EuWdNkN@8f ze!xlA`fSBQ1=DVE=o2B-K3)r)0L1?{Xt4N*`Nhrqz-xNZpeb&V`@eQhctQFK=8gp! znj`8M!)Q-^ zD4yq9N~I1{2DFK9I#GfgU>4r1X*0S=qa^&_c8!o}e=<=EK#Qj4g*1-S={D)p+?|=i zh_G%56rE5Dme>kdx@w2%`R{{4kHk?&nwH2Dt_P`eF~c-u{~p zK`7b(omu*yIIXBzstiKFoLH|j-8#rk)Ug)zj-}d~7{;#{rRSaz3ZEPJz#Wp8=L zvOnus_LpZYuV)?0>*X2C!K`CBSe~&Q&N`OEf8`m=n_0*5W_iZa-kxQ#cUYMOcry!W2t5_8^$t| zf5lwySgKjfhOx|KF|#;9rBRG%m6Pdo3aea)HkrNW)ig+^=QHV!*?V41Uu1edlct!x z=hd`Brsp&11?y>WyqtXi=F_{XQN8JCxtWN+?%`Bp1?x$9%5daAZHJ)J9H}#wa{{BH zF${Y6S$n(LK9u{EoQt4s1vMT8{za~eNqMlnFfv6Mx*_gAF>Ehgd*|PO8fDMkmPaA} znGUC}!{agsC(0qHWQys>*$CId$#^sw(}BTb_}~8zP)h*<6aW+e000O8S9X(Jg+mUN bc4${%t2-`U-rlIV)1QN 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 B{*M3v diff --git a/Solutions/GitHub/Package/mainTemplate.json b/Solutions/GitHub/Package/mainTemplate.json index a5cfbee9fd..07a78ebaa2 100644 --- a/Solutions/GitHub/Package/mainTemplate.json +++ b/Solutions/GitHub/Package/mainTemplate.json @@ -225,13 +225,13 @@ "parserContentId3": "GitHubDependabotData-Parser", "_parserContentId3": "[variables('parserContentId3')]", "_parsercontentProductId3": "[concat(take(variables('_solutionId'),50),'-','pr','-', uniqueString(concat(variables('_solutionId'),'-','Parser','-',variables('_parserContentId3'),'-', variables('parserVersion3'))))]", - "parserName4": "GithubSecretScanningData", + "parserName4": "GitHubSecretScanningData", "_parserName4": "[concat(parameters('workspace'),'/',variables('parserName4'))]", "parserId4": "[resourceId('Microsoft.OperationalInsights/workspaces/savedSearches', parameters('workspace'), variables('parserName4'))]", "_parserId4": "[variables('parserId4')]", "parserTemplateSpecName4": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat(parameters('workspace'),'-pr-',uniquestring(variables('_parserContentId4'))))]", "parserVersion4": "1.0.0", - "parserContentId4": "GithubSecretScanningData-Parser", + "parserContentId4": "GitHubSecretScanningData-Parser", "_parserContentId4": "[variables('parserContentId4')]", "_parsercontentProductId4": "[concat(take(variables('_solutionId'),50),'-','pr','-', uniqueString(concat(variables('_solutionId'),'-','Parser','-',variables('_parserContentId4'),'-', variables('parserVersion4'))))]", "uiConfigId1": "GitHubEcAuditLogPolling", @@ -475,13 +475,13 @@ ], "entityMappings": [ { - "entityType": "Account", "fieldMappings": [ { - "identifier": "FullName", - "columnName": "AccountCustomEntity" + "columnName": "AccountCustomEntity", + "identifier": "FullName" } - ] + ], + "entityType": "Account" } ] } @@ -572,13 +572,13 @@ ], "entityMappings": [ { - "entityType": "Account", "fieldMappings": [ { - "identifier": "FullName", - "columnName": "AccountCustomEntity" + "columnName": "AccountCustomEntity", + "identifier": "FullName" } - ] + ], + "entityType": "Account" } ] } @@ -669,13 +669,13 @@ ], "entityMappings": [ { - "entityType": "Account", "fieldMappings": [ { - "identifier": "FullName", - "columnName": "AccountCustomEntity" + "columnName": "AccountCustomEntity", + "identifier": "FullName" } - ] + ], + "entityType": "Account" } ] } @@ -766,13 +766,13 @@ ], "entityMappings": [ { - "entityType": "Account", "fieldMappings": [ { - "identifier": "FullName", - "columnName": "AccountCustomEntity" + "columnName": "AccountCustomEntity", + "identifier": "FullName" } - ] + ], + "entityType": "Account" } ] } @@ -863,13 +863,13 @@ ], "entityMappings": [ { - "entityType": "Account", "fieldMappings": [ { - "identifier": "FullName", - "columnName": "AccountCustomEntity" + "columnName": "AccountCustomEntity", + "identifier": "FullName" } - ] + ], + "entityType": "Account" } ] } @@ -960,13 +960,13 @@ ], "entityMappings": [ { - "entityType": "Account", "fieldMappings": [ { - "identifier": "FullName", - "columnName": "AccountCustomEntity" + "columnName": "AccountCustomEntity", + "identifier": "FullName" } - ] + ], + "entityType": "Account" } ] } @@ -1057,13 +1057,13 @@ ], "entityMappings": [ { - "entityType": "Account", "fieldMappings": [ { - "identifier": "FullName", - "columnName": "AccountCustomEntity" + "columnName": "AccountCustomEntity", + "identifier": "FullName" } - ] + ], + "entityType": "Account" } ] } @@ -1154,13 +1154,13 @@ ], "entityMappings": [ { - "entityType": "Account", "fieldMappings": [ { - "identifier": "FullName", - "columnName": "AccountCustomEntity" + "columnName": "AccountCustomEntity", + "identifier": "FullName" } - ] + ], + "entityType": "Account" } ] } @@ -1251,13 +1251,13 @@ ], "entityMappings": [ { - "entityType": "Account", "fieldMappings": [ { - "identifier": "FullName", - "columnName": "AccountCustomEntity" + "columnName": "AccountCustomEntity", + "identifier": "FullName" } - ] + ], + "entityType": "Account" } ] } @@ -1348,13 +1348,13 @@ ], "entityMappings": [ { - "entityType": "Account", "fieldMappings": [ { - "identifier": "FullName", - "columnName": "AccountCustomEntity" + "columnName": "AccountCustomEntity", + "identifier": "FullName" } - ] + ], + "entityType": "Account" } ] } @@ -1445,13 +1445,13 @@ ], "entityMappings": [ { - "entityType": "Account", "fieldMappings": [ { - "identifier": "FullName", - "columnName": "AccountCustomEntity" + "columnName": "AccountCustomEntity", + "identifier": "FullName" } - ] + ], + "entityType": "Account" } ] } @@ -1542,13 +1542,13 @@ ], "entityMappings": [ { - "entityType": "Account", "fieldMappings": [ { - "identifier": "FullName", - "columnName": "AccountCustomEntity" + "columnName": "AccountCustomEntity", + "identifier": "FullName" } - ] + ], + "entityType": "Account" } ] } @@ -1635,22 +1635,22 @@ ], "entityMappings": [ { - "entityType": "Account", "fieldMappings": [ { - "identifier": "FullName", - "columnName": "AccountCustomEntity" + "columnName": "AccountCustomEntity", + "identifier": "FullName" } - ] + ], + "entityType": "Account" }, { - "entityType": "IP", "fieldMappings": [ { - "identifier": "Address", - "columnName": "IPCustomEntity" + "columnName": "IPCustomEntity", + "identifier": "Address" } - ] + ], + "entityType": "IP" } ] } @@ -2480,16 +2480,16 @@ "location": "[parameters('workspace-location')]", "properties": { "eTag": "*", - "displayName": "GitHubAuditData", - "category": "Samples", + "displayName": "Parser for GitHubAuditData", + "category": "Microsoft Sentinel Parser", "functionAlias": "GitHubAuditData", - "query": "\n\r\n\r\nGitHubAuditLogPolling_CL\r\n| project TimeGenerated=unixtime_milliseconds_todatetime(created_at_d),\r\n Organization=columnifexists('org_s', \"\"),\r\n Action=action_s,\r\n Repository=columnifexists('repo_s',\"\"),\r\n Actor=columnifexists('actor_s', \"\"),\r\n\tCountry=columnifexists('actor_location_country_code_s', \"\"),\r\n ImpactedUser=columnifexists('user_s', \"\"),\r\n InvitedUserPermission=columnifexists('permission_s', \"\"),\r\n Visibility=columnifexists('visibility_s', \"\"),\r\n PreviousVisibility=columnifexists('previous_visibility_s', \"\"),\r\n CurrentPermission=columnifexists('permission_s', \"\"),\r\n PreviousPermission=columnifexists('old_permission_s', \"\"),\r\n TeamName=columnifexists('team_s', \"\"),\r\n BlockedUser=columnifexists('blocked_user_s', \"\")\r\n\r\n\r\n\r\n", + "query": "GitHubAuditLogPolling_CL\n| project TimeGenerated=unixtime_milliseconds_todatetime(created_at_d),\n Organization=columnifexists('org_s', \"\"),\n Action=action_s,\n Repository=columnifexists('repo_s',\"\"),\n Actor=columnifexists('actor_s', \"\"),\n\tCountry=columnifexists('actor_location_country_code_s', \"\"),\n ImpactedUser=columnifexists('user_s', \"\"),\n InvitedUserPermission=columnifexists('permission_s', \"\"),\n Visibility=columnifexists('visibility_s', \"\"),\n PreviousVisibility=columnifexists('previous_visibility_s', \"\"),\n CurrentPermission=columnifexists('permission_s', \"\"),\n PreviousPermission=columnifexists('old_permission_s', \"\"),\n TeamName=columnifexists('team_s', \"\"),\n BlockedUser=columnifexists('blocked_user_s', \"\")\n", "functionParameters": "", - "version": 1, + "version": 2, "tags": [ { "name": "description", - "value": "GitHubAuditData" + "value": "" } ] } @@ -2532,7 +2532,7 @@ "contentSchemaVersion": "3.0.0", "contentId": "[variables('_parserContentId1')]", "contentKind": "Parser", - "displayName": "GitHubAuditData", + "displayName": "Parser for GitHubAuditData", "contentProductId": "[variables('_parsercontentProductId1')]", "id": "[variables('_parsercontentProductId1')]", "version": "[variables('parserVersion1')]" @@ -2545,16 +2545,16 @@ "location": "[parameters('workspace-location')]", "properties": { "eTag": "*", - "displayName": "GitHubAuditData", - "category": "Samples", + "displayName": "Parser for GitHubAuditData", + "category": "Microsoft Sentinel Parser", "functionAlias": "GitHubAuditData", - "query": "\n\r\n\r\nGitHubAuditLogPolling_CL\r\n| project TimeGenerated=unixtime_milliseconds_todatetime(created_at_d),\r\n Organization=columnifexists('org_s', \"\"),\r\n Action=action_s,\r\n Repository=columnifexists('repo_s',\"\"),\r\n Actor=columnifexists('actor_s', \"\"),\r\n\tCountry=columnifexists('actor_location_country_code_s', \"\"),\r\n ImpactedUser=columnifexists('user_s', \"\"),\r\n InvitedUserPermission=columnifexists('permission_s', \"\"),\r\n Visibility=columnifexists('visibility_s', \"\"),\r\n PreviousVisibility=columnifexists('previous_visibility_s', \"\"),\r\n CurrentPermission=columnifexists('permission_s', \"\"),\r\n PreviousPermission=columnifexists('old_permission_s', \"\"),\r\n TeamName=columnifexists('team_s', \"\"),\r\n BlockedUser=columnifexists('blocked_user_s', \"\")\r\n\r\n\r\n\r\n", + "query": "GitHubAuditLogPolling_CL\n| project TimeGenerated=unixtime_milliseconds_todatetime(created_at_d),\n Organization=columnifexists('org_s', \"\"),\n Action=action_s,\n Repository=columnifexists('repo_s',\"\"),\n Actor=columnifexists('actor_s', \"\"),\n\tCountry=columnifexists('actor_location_country_code_s', \"\"),\n ImpactedUser=columnifexists('user_s', \"\"),\n InvitedUserPermission=columnifexists('permission_s', \"\"),\n Visibility=columnifexists('visibility_s', \"\"),\n PreviousVisibility=columnifexists('previous_visibility_s', \"\"),\n CurrentPermission=columnifexists('permission_s', \"\"),\n PreviousPermission=columnifexists('old_permission_s', \"\"),\n TeamName=columnifexists('team_s', \"\"),\n BlockedUser=columnifexists('blocked_user_s', \"\")\n", "functionParameters": "", - "version": 1, + "version": 2, "tags": [ { "name": "description", - "value": "GitHubAuditData" + "value": "" } ] } @@ -2612,16 +2612,16 @@ "location": "[parameters('workspace-location')]", "properties": { "eTag": "*", - "displayName": "GitHubCodeScanningData", - "category": "Samples", + "displayName": "Parser for GitHubCodeScanningData", + "category": "Microsoft Sentinel Parser", "functionAlias": "GitHubCodeScanningData", - "query": "\n\r\ngithubscanaudit_CL \r\n| where action_s in ('created', 'reopened_by_user', 'closed_by_user', 'fixed', 'appeared_in_branch', 'reopened') and isnotempty(commit_oid_s)\r\n| extend EventType='CodeScanningAlert'\r\n| extend alert = todynamic(alert_s),\r\n organization = todynamic(organization_s),\r\n repository = todynamic(repository_s),\r\n sender = todynamic(sender_s) \r\n| extend alertcreatedate = alert.created_at, url = alert.url, commit_oid = commit_oid_s,\r\n alertdescription = alert.rule.description,\r\n toolname = alert.tool.name,\r\n repositoryfullname = repository.full_name,\r\n repositoryOwnerlogin = repository.owner.login,\r\n repositoryurl = repository.url,\r\n orglogin = organization.login,\r\n orgurl = organization.url,\r\n senderlogin = sender.login,\r\n sendertype = sender.type,\r\n action=action_s\r\n| project-keep\r\n TimeGenerated,\r\n EventType,\r\n action,\r\n alertdescription,\r\n alertcreatedate,\r\n commit_oid,\r\n toolname,\r\n repositoryfullname,\r\n repositoryOwnerlogin,\r\n repositoryurl,\r\n orglogin,\r\n orgurl,\r\n senderlogin,\r\n sendertype \r\n", + "query": "githubscanaudit_CL \n| where action_s in ('created', 'reopened_by_user', 'closed_by_user', 'fixed', 'appeared_in_branch', 'reopened') and isnotempty(commit_oid_s)\n| extend EventType='CodeScanningAlert'\n| extend alert = todynamic(alert_s),\n organization = todynamic(organization_s),\n repository = todynamic(repository_s),\n sender = todynamic(sender_s) \n| extend alertcreatedate = alert.created_at, url = alert.url, commit_oid = commit_oid_s,\n alertdescription = alert.rule.description,\n toolname = alert.tool.name,\n repositoryfullname = repository.full_name,\n repositoryOwnerlogin = repository.owner.login,\n repositoryurl = repository.url,\n orglogin = organization.login,\n orgurl = organization.url,\n senderlogin = sender.login,\n sendertype = sender.type,\n action=action_s\n| project-keep\n TimeGenerated,\n EventType,\n action,\n alertdescription,\n alertcreatedate,\n commit_oid,\n toolname,\n repositoryfullname,\n repositoryOwnerlogin,\n repositoryurl,\n orglogin,\n orgurl,\n senderlogin,\n sendertype\n", "functionParameters": "", - "version": 1, + "version": 2, "tags": [ { "name": "description", - "value": "GitHubCodeScanningData" + "value": "" } ] } @@ -2664,7 +2664,7 @@ "contentSchemaVersion": "3.0.0", "contentId": "[variables('_parserContentId2')]", "contentKind": "Parser", - "displayName": "GitHubCodeScanningData", + "displayName": "Parser for GitHubCodeScanningData", "contentProductId": "[variables('_parsercontentProductId2')]", "id": "[variables('_parsercontentProductId2')]", "version": "[variables('parserVersion2')]" @@ -2677,16 +2677,16 @@ "location": "[parameters('workspace-location')]", "properties": { "eTag": "*", - "displayName": "GitHubCodeScanningData", - "category": "Samples", + "displayName": "Parser for GitHubCodeScanningData", + "category": "Microsoft Sentinel Parser", "functionAlias": "GitHubCodeScanningData", - "query": "\n\r\ngithubscanaudit_CL \r\n| where action_s in ('created', 'reopened_by_user', 'closed_by_user', 'fixed', 'appeared_in_branch', 'reopened') and isnotempty(commit_oid_s)\r\n| extend EventType='CodeScanningAlert'\r\n| extend alert = todynamic(alert_s),\r\n organization = todynamic(organization_s),\r\n repository = todynamic(repository_s),\r\n sender = todynamic(sender_s) \r\n| extend alertcreatedate = alert.created_at, url = alert.url, commit_oid = commit_oid_s,\r\n alertdescription = alert.rule.description,\r\n toolname = alert.tool.name,\r\n repositoryfullname = repository.full_name,\r\n repositoryOwnerlogin = repository.owner.login,\r\n repositoryurl = repository.url,\r\n orglogin = organization.login,\r\n orgurl = organization.url,\r\n senderlogin = sender.login,\r\n sendertype = sender.type,\r\n action=action_s\r\n| project-keep\r\n TimeGenerated,\r\n EventType,\r\n action,\r\n alertdescription,\r\n alertcreatedate,\r\n commit_oid,\r\n toolname,\r\n repositoryfullname,\r\n repositoryOwnerlogin,\r\n repositoryurl,\r\n orglogin,\r\n orgurl,\r\n senderlogin,\r\n sendertype \r\n", + "query": "githubscanaudit_CL \n| where action_s in ('created', 'reopened_by_user', 'closed_by_user', 'fixed', 'appeared_in_branch', 'reopened') and isnotempty(commit_oid_s)\n| extend EventType='CodeScanningAlert'\n| extend alert = todynamic(alert_s),\n organization = todynamic(organization_s),\n repository = todynamic(repository_s),\n sender = todynamic(sender_s) \n| extend alertcreatedate = alert.created_at, url = alert.url, commit_oid = commit_oid_s,\n alertdescription = alert.rule.description,\n toolname = alert.tool.name,\n repositoryfullname = repository.full_name,\n repositoryOwnerlogin = repository.owner.login,\n repositoryurl = repository.url,\n orglogin = organization.login,\n orgurl = organization.url,\n senderlogin = sender.login,\n sendertype = sender.type,\n action=action_s\n| project-keep\n TimeGenerated,\n EventType,\n action,\n alertdescription,\n alertcreatedate,\n commit_oid,\n toolname,\n repositoryfullname,\n repositoryOwnerlogin,\n repositoryurl,\n orglogin,\n orgurl,\n senderlogin,\n sendertype\n", "functionParameters": "", - "version": 1, + "version": 2, "tags": [ { "name": "description", - "value": "GitHubCodeScanningData" + "value": "" } ] } @@ -2744,16 +2744,16 @@ "location": "[parameters('workspace-location')]", "properties": { "eTag": "*", - "displayName": "GitHubDependabotData", - "category": "Samples", + "displayName": "Parser for GitHubDependabotData", + "category": "Microsoft Sentinel Parser", "functionAlias": "GitHubDependabotData", - "query": "\n\r\ngithubscanaudit_CL \r\n| where action_s in ('create', 'dismiss', 'resolve')\r\n| extend EventType='RepositoryVulnerabilityAlert'\r\n| extend alert = todynamic(alert_s),\r\n organization = todynamic(organization_s),\r\n repository = todynamic(repository_s),\r\n sender = todynamic(sender_s) \r\n| extend alertcreatedate = alert.created_at, alertaffectedrange = alert.affected_range, \r\n alertexternalidentifier= alert.external_identifier, \r\n alertghsaid = alert.ghsa_id,\r\n alertseverity = alert.severity,\r\n repositoryfullname = repository.full_name,\r\n repositoryOwnerlogin = repository.owner.login,\r\n repositoryurl = repository.url, \r\n senderlogin = sender.login,\r\n sendertype = sender.type,\r\n action=action_s\r\n| where isnotempty(alertexternalidentifier)\r\n| project-keep\r\n TimeGenerated,\r\n EventType,\r\n action,\r\n alertexternalidentifier,\r\n alertghsaid,\r\n alertcreatedate,\r\n repositoryfullname,\r\n repositoryOwnerlogin,\r\n repositoryurl,\r\n senderlogin,\r\n sendertype \r\n\r\n", + "query": "githubscanaudit_CL \n| where action_s in ('create', 'dismiss', 'resolve')\n| extend EventType='RepositoryVulnerabilityAlert'\n| extend alert = todynamic(alert_s),\n organization = todynamic(organization_s),\n repository = todynamic(repository_s),\n sender = todynamic(sender_s) \n| extend alertcreatedate = alert.created_at, alertaffectedrange = alert.affected_range, \n alertexternalidentifier= alert.external_identifier, \n alertghsaid = alert.ghsa_id,\n alertseverity = alert.severity,\n repositoryfullname = repository.full_name,\n repositoryOwnerlogin = repository.owner.login,\n repositoryurl = repository.url, \n senderlogin = sender.login,\n sendertype = sender.type,\n action=action_s\n| where isnotempty(alertexternalidentifier)\n| project-keep\n TimeGenerated,\n EventType,\n action,\n alertexternalidentifier,\n alertghsaid,\n alertcreatedate,\n repositoryfullname,\n repositoryOwnerlogin,\n repositoryurl,\n senderlogin,\n sendertype\n", "functionParameters": "", - "version": 1, + "version": 2, "tags": [ { "name": "description", - "value": "GitHubDependabotData" + "value": "" } ] } @@ -2796,7 +2796,7 @@ "contentSchemaVersion": "3.0.0", "contentId": "[variables('_parserContentId3')]", "contentKind": "Parser", - "displayName": "GitHubDependabotData", + "displayName": "Parser for GitHubDependabotData", "contentProductId": "[variables('_parsercontentProductId3')]", "id": "[variables('_parsercontentProductId3')]", "version": "[variables('parserVersion3')]" @@ -2809,16 +2809,16 @@ "location": "[parameters('workspace-location')]", "properties": { "eTag": "*", - "displayName": "GitHubDependabotData", - "category": "Samples", + "displayName": "Parser for GitHubDependabotData", + "category": "Microsoft Sentinel Parser", "functionAlias": "GitHubDependabotData", - "query": "\n\r\ngithubscanaudit_CL \r\n| where action_s in ('create', 'dismiss', 'resolve')\r\n| extend EventType='RepositoryVulnerabilityAlert'\r\n| extend alert = todynamic(alert_s),\r\n organization = todynamic(organization_s),\r\n repository = todynamic(repository_s),\r\n sender = todynamic(sender_s) \r\n| extend alertcreatedate = alert.created_at, alertaffectedrange = alert.affected_range, \r\n alertexternalidentifier= alert.external_identifier, \r\n alertghsaid = alert.ghsa_id,\r\n alertseverity = alert.severity,\r\n repositoryfullname = repository.full_name,\r\n repositoryOwnerlogin = repository.owner.login,\r\n repositoryurl = repository.url, \r\n senderlogin = sender.login,\r\n sendertype = sender.type,\r\n action=action_s\r\n| where isnotempty(alertexternalidentifier)\r\n| project-keep\r\n TimeGenerated,\r\n EventType,\r\n action,\r\n alertexternalidentifier,\r\n alertghsaid,\r\n alertcreatedate,\r\n repositoryfullname,\r\n repositoryOwnerlogin,\r\n repositoryurl,\r\n senderlogin,\r\n sendertype \r\n\r\n", + "query": "githubscanaudit_CL \n| where action_s in ('create', 'dismiss', 'resolve')\n| extend EventType='RepositoryVulnerabilityAlert'\n| extend alert = todynamic(alert_s),\n organization = todynamic(organization_s),\n repository = todynamic(repository_s),\n sender = todynamic(sender_s) \n| extend alertcreatedate = alert.created_at, alertaffectedrange = alert.affected_range, \n alertexternalidentifier= alert.external_identifier, \n alertghsaid = alert.ghsa_id,\n alertseverity = alert.severity,\n repositoryfullname = repository.full_name,\n repositoryOwnerlogin = repository.owner.login,\n repositoryurl = repository.url, \n senderlogin = sender.login,\n sendertype = sender.type,\n action=action_s\n| where isnotempty(alertexternalidentifier)\n| project-keep\n TimeGenerated,\n EventType,\n action,\n alertexternalidentifier,\n alertghsaid,\n alertcreatedate,\n repositoryfullname,\n repositoryOwnerlogin,\n repositoryurl,\n senderlogin,\n sendertype\n", "functionParameters": "", - "version": 1, + "version": 2, "tags": [ { "name": "description", - "value": "GitHubDependabotData" + "value": "" } ] } @@ -2876,16 +2876,16 @@ "location": "[parameters('workspace-location')]", "properties": { "eTag": "*", - "displayName": "GithubSecretScanningData", - "category": "Samples", - "functionAlias": "GithubSecretScanningData", - "query": "\n\r\ngithubscanaudit_CL \r\n| where action_s in ('created', 'resolved', 'reopened')\r\n| extend EventType='SecretScanningAlert'\r\n| extend alert = todynamic(alert_s),\r\n organization = todynamic(organization_s),\r\n repository = todynamic(repository_s),\r\n sender = todynamic(sender_s) \r\n| extend \r\n alertSecretType = alert.secret_type,\r\n alertnumber = alert.number,\r\n alertresolution = alert.resolution,\r\n alertresolvedby = alert.resolved_by,\r\n alertresolvedat = alert.resolved_at,\r\n repositoryfullname = repository.full_name,\r\n repositoryOwnerlogin = repository.owner.login,\r\n repositoryurl = repository.url, \r\n senderlogin = sender.login,\r\n sendertype = sender.type,\r\n action=action_s\r\n| where isnotempty(alertSecretType)\r\n| project-keep\r\n TimeGenerated,\r\n EventType,\r\n action,\r\n alertSecretType,\r\n alertnumber,\r\n alertresolution,\r\n alertresolvedby,\r\n alertresolvedat,\r\n repositoryfullname,\r\n repositoryOwnerlogin,\r\n repositoryurl,\r\n senderlogin,\r\n sendertype \r\n\r\n\r\n\r\n\r\n\r\n\r\n", + "displayName": "Parser for GitHubSecretScanningData", + "category": "Microsoft Sentinel Parser", + "functionAlias": "GitHubSecretScanningData", + "query": "githubscanaudit_CL \n| where action_s in ('created', 'resolved', 'reopened')\n| extend EventType='SecretScanningAlert'\n| extend alert = todynamic(alert_s),\n organization = todynamic(organization_s),\n repository = todynamic(repository_s),\n sender = todynamic(sender_s) \n| extend \n alertSecretType = alert.secret_type,\n alertnumber = alert.number,\n alertresolution = alert.resolution,\n alertresolvedby = alert.resolved_by,\n alertresolvedat = alert.resolved_at,\n repositoryfullname = repository.full_name,\n repositoryOwnerlogin = repository.owner.login,\n repositoryurl = repository.url, \n senderlogin = sender.login,\n sendertype = sender.type,\n action=action_s\n| where isnotempty(alertSecretType)\n| project-keep\n TimeGenerated,\n EventType,\n action,\n alertSecretType,\n alertnumber,\n alertresolution,\n alertresolvedby,\n alertresolvedat,\n repositoryfullname,\n repositoryOwnerlogin,\n repositoryurl,\n senderlogin,\n sendertype\n", "functionParameters": "", - "version": 1, + "version": 2, "tags": [ { "name": "description", - "value": "GithubSecretScanningData" + "value": "" } ] } @@ -2928,7 +2928,7 @@ "contentSchemaVersion": "3.0.0", "contentId": "[variables('_parserContentId4')]", "contentKind": "Parser", - "displayName": "GithubSecretScanningData", + "displayName": "Parser for GitHubSecretScanningData", "contentProductId": "[variables('_parsercontentProductId4')]", "id": "[variables('_parsercontentProductId4')]", "version": "[variables('parserVersion4')]" @@ -2941,16 +2941,16 @@ "location": "[parameters('workspace-location')]", "properties": { "eTag": "*", - "displayName": "GithubSecretScanningData", - "category": "Samples", - "functionAlias": "GithubSecretScanningData", - "query": "\n\r\ngithubscanaudit_CL \r\n| where action_s in ('created', 'resolved', 'reopened')\r\n| extend EventType='SecretScanningAlert'\r\n| extend alert = todynamic(alert_s),\r\n organization = todynamic(organization_s),\r\n repository = todynamic(repository_s),\r\n sender = todynamic(sender_s) \r\n| extend \r\n alertSecretType = alert.secret_type,\r\n alertnumber = alert.number,\r\n alertresolution = alert.resolution,\r\n alertresolvedby = alert.resolved_by,\r\n alertresolvedat = alert.resolved_at,\r\n repositoryfullname = repository.full_name,\r\n repositoryOwnerlogin = repository.owner.login,\r\n repositoryurl = repository.url, \r\n senderlogin = sender.login,\r\n sendertype = sender.type,\r\n action=action_s\r\n| where isnotempty(alertSecretType)\r\n| project-keep\r\n TimeGenerated,\r\n EventType,\r\n action,\r\n alertSecretType,\r\n alertnumber,\r\n alertresolution,\r\n alertresolvedby,\r\n alertresolvedat,\r\n repositoryfullname,\r\n repositoryOwnerlogin,\r\n repositoryurl,\r\n senderlogin,\r\n sendertype \r\n\r\n\r\n\r\n\r\n\r\n\r\n", + "displayName": "Parser for GitHubSecretScanningData", + "category": "Microsoft Sentinel Parser", + "functionAlias": "GitHubSecretScanningData", + "query": "githubscanaudit_CL \n| where action_s in ('created', 'resolved', 'reopened')\n| extend EventType='SecretScanningAlert'\n| extend alert = todynamic(alert_s),\n organization = todynamic(organization_s),\n repository = todynamic(repository_s),\n sender = todynamic(sender_s) \n| extend \n alertSecretType = alert.secret_type,\n alertnumber = alert.number,\n alertresolution = alert.resolution,\n alertresolvedby = alert.resolved_by,\n alertresolvedat = alert.resolved_at,\n repositoryfullname = repository.full_name,\n repositoryOwnerlogin = repository.owner.login,\n repositoryurl = repository.url, \n senderlogin = sender.login,\n sendertype = sender.type,\n action=action_s\n| where isnotempty(alertSecretType)\n| project-keep\n TimeGenerated,\n EventType,\n action,\n alertSecretType,\n alertnumber,\n alertresolution,\n alertresolvedby,\n alertresolvedat,\n repositoryfullname,\n repositoryOwnerlogin,\n repositoryurl,\n senderlogin,\n sendertype\n", "functionParameters": "", - "version": 1, + "version": 2, "tags": [ { "name": "description", - "value": "GithubSecretScanningData" + "value": "" } ] } diff --git a/Solutions/GitHub/Parsers/GitHubAuditData.txt b/Solutions/GitHub/Parsers/GitHubAuditData.txt deleted file mode 100644 index c6a8f4f7df..0000000000 --- a/Solutions/GitHub/Parsers/GitHubAuditData.txt +++ /dev/null @@ -1,27 +0,0 @@ -// GitHub Enterprise Audit Entry Data Parser -// Last Updated Date: Feb 16, 2022 -// -//This parser parses GitHub Enterprise Audit and extract the infromation from their various components. It is assumed that you are using officially supported Github connector (installed from Content hub) -// -// Parser Notes: -// 1. This parser assumes logs are collected into a custom log table entitled GitHubAuditLogPolling_CL - - -GitHubAuditLogPolling_CL -| project TimeGenerated=unixtime_milliseconds_todatetime(created_at_d), - Organization=columnifexists('org_s', ""), - Action=action_s, - Repository=columnifexists('repo_s',""), - Actor=columnifexists('actor_s', ""), - Country=columnifexists('actor_location_country_code_s', ""), - ImpactedUser=columnifexists('user_s', ""), - InvitedUserPermission=columnifexists('permission_s', ""), - Visibility=columnifexists('visibility_s', ""), - PreviousVisibility=columnifexists('previous_visibility_s', ""), - CurrentPermission=columnifexists('permission_s', ""), - PreviousPermission=columnifexists('old_permission_s', ""), - TeamName=columnifexists('team_s', ""), - BlockedUser=columnifexists('blocked_user_s', "") - - - diff --git a/Solutions/GitHub/Parsers/GitHubCodeScanningData.txt b/Solutions/GitHub/Parsers/GitHubCodeScanningData.txt deleted file mode 100644 index dae98c0666..0000000000 --- a/Solutions/GitHub/Parsers/GitHubCodeScanningData.txt +++ /dev/null @@ -1,221 +0,0 @@ -// Title: Github Code Scanning alerts -// Author: Prathibha Tadikamalla -// Version: 1.0 -// Last Updated: 23/06/2022 -// Comment: Initial Release -// -// DESCRIPTION: -//This parser receives the code scanning alerts from github webhook connector and parses these alters into a normalized schema. It is assumed that you are using officially supported Github webhook connector (installed from Content hub) -// -// USAGE: -// 1. Open Log Analytics/Azure Sentinel Logs blade. Copy the query below and paste into the Logs query window. -// 2. Click the Save button above the query. A pane will appear on the right, select "as Function" from the drop down. Enter a Function Name. -// It is recommended to name the Function Alias, as GithubCodeScanEvents -// 3. Kusto Functions can typically take up to 15 minutes to activate. You can then use Function Alias for other queries. -// -// REFERENCES: -// Using functions in Azure monitor log queries: https://docs.microsoft.com/azure/azure-monitor/log-query/functions -// -// LOG SAMPLES: -// This parser assumes the raw log are formatted as follows: -// { -// "action": "reopened", -// "alert": { -// "number": 10, -// "created_at": "2020-07-22T14:06:31Z", -// "updated_at": "2020-07-22T14:06:31Z", -// "url": "https://api.github.com/repos/Codertocat/Hello-World/code-scanning/alerts/10", -// "html_url": "https://github.com/Codertocat/Hello-World/security/code-scanning/10", -// "instances": [ -// { -// "ref": "refs/heads/main", -// "analysis_key": ".github/workflows/workflow.yml:upload", -// "environment": "{}", -// "state": "open" -// } -// ], -// "state": "open", -// "fixed_at": null, -// "dismissed_by": null, -// "dismissed_at": null, -// "dismissed_reason": null, -// "rule": { -// "id": "Style/FrozenStringLiteralComment", -// "severity": "note", -// "description": "Add the frozen_string_literal comment to the top of files to help transition to frozen string literals by default.", -// "full_description": "Add the frozen_string_literal comment to the top of files to help transition to frozen string literals by default.", -// "tags": [ -// "style" -// ], -// "help": "Enabled by default | Safe `never`\n\n" -// }, -// "tool": { -// "name": "Rubocop", -// "version": null -// } -// }, -// "ref": "refs/heads/main", -// "commit_oid": "d6e4c75c141dbacecc279b721b8b9393d5405795", -// "repository": { -// "id": 186853002, -// "node_id": "MDEwOlJlcG9zaXRvcnkxODY4NTMwMDI=", -// "name": "Hello-World", -// "full_name": "Codertocat/Hello-World", -// "private": false, -// "owner": { -// "login": "Codertocat", -// "id": 21031067, -// "node_id": "MDQ6VXNlcjIxMDMxMDY3", -// "avatar_url": "https://avatars1.githubusercontent.com/u/21031067?v=4", -// "gravatar_id": "", -// "url": "https://api.github.com/users/Codertocat", -// "html_url": "https://github.com/Codertocat", -// "followers_url": "https://api.github.com/users/Codertocat/followers", -// "following_url": "https://api.github.com/users/Codertocat/following{/other_user}", -// "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}", -// "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}", -// "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions", -// "organizations_url": "https://api.github.com/users/Codertocat/orgs", -// "repos_url": "https://api.github.com/users/Codertocat/repos", -// "events_url": "https://api.github.com/users/Codertocat/events{/privacy}", -// "received_events_url": "https://api.github.com/users/Codertocat/received_events", -// "type": "User", -// "site_admin": false -// }, -// "html_url": "https://github.com/Codertocat/Hello-World", -// "description": null, -// "fork": false, -// "url": "https://api.github.com/repos/Codertocat/Hello-World", -// "forks_url": "https://api.github.com/repos/Codertocat/Hello-World/forks", -// "keys_url": "https://api.github.com/repos/Codertocat/Hello-World/keys{/key_id}", -// "collaborators_url": "https://api.github.com/repos/Codertocat/Hello-World/collaborators{/collaborator}", -// "teams_url": "https://api.github.com/repos/Codertocat/Hello-World/teams", -// "hooks_url": "https://api.github.com/repos/Codertocat/Hello-World/hooks", -// "issue_events_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/events{/number}", -// "events_url": "https://api.github.com/repos/Codertocat/Hello-World/events", -// "assignees_url": "https://api.github.com/repos/Codertocat/Hello-World/assignees{/user}", -// "branches_url": "https://api.github.com/repos/Codertocat/Hello-World/branches{/branch}", -// "tags_url": "https://api.github.com/repos/Codertocat/Hello-World/tags", -// "blobs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/blobs{/sha}", -// "git_tags_url": "https://api.github.com/repos/Codertocat/Hello-World/git/tags{/sha}", -// "git_refs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/refs{/sha}", -// "trees_url": "https://api.github.com/repos/Codertocat/Hello-World/git/trees{/sha}", -// "statuses_url": "https://api.github.com/repos/Codertocat/Hello-World/statuses/{sha}", -// "languages_url": "https://api.github.com/repos/Codertocat/Hello-World/languages", -// "stargazers_url": "https://api.github.com/repos/Codertocat/Hello-World/stargazers", -// "contributors_url": "https://api.github.com/repos/Codertocat/Hello-World/contributors", -// "subscribers_url": "https://api.github.com/repos/Codertocat/Hello-World/subscribers", -// "subscription_url": "https://api.github.com/repos/Codertocat/Hello-World/subscription", -// "commits_url": "https://api.github.com/repos/Codertocat/Hello-World/commits{/sha}", -// "git_commits_url": "https://api.github.com/repos/Codertocat/Hello-World/git/commits{/sha}", -// "comments_url": "https://api.github.com/repos/Codertocat/Hello-World/comments{/number}", -// "issue_comment_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/comments{/number}", -// "contents_url": "https://api.github.com/repos/Codertocat/Hello-World/contents/{+path}", -// "compare_url": "https://api.github.com/repos/Codertocat/Hello-World/compare/{base}...{head}", -// "merges_url": "https://api.github.com/repos/Codertocat/Hello-World/merges", -// "archive_url": "https://api.github.com/repos/Codertocat/Hello-World/{archive_format}{/ref}", -// "downloads_url": "https://api.github.com/repos/Codertocat/Hello-World/downloads", -// "issues_url": "https://api.github.com/repos/Codertocat/Hello-World/issues{/number}", -// "pulls_url": "https://api.github.com/repos/Codertocat/Hello-World/pulls{/number}", -// "milestones_url": "https://api.github.com/repos/Codertocat/Hello-World/milestones{/number}", -// "notifications_url": "https://api.github.com/repos/Codertocat/Hello-World/notifications{?since,all,participating}", -// "labels_url": "https://api.github.com/repos/Codertocat/Hello-World/labels{/name}", -// "releases_url": "https://api.github.com/repos/Codertocat/Hello-World/releases{/id}", -// "deployments_url": "https://api.github.com/repos/Codertocat/Hello-World/deployments", -// "created_at": "2019-05-15T15:19:25Z", -// "updated_at": "2019-05-15T15:19:27Z", -// "pushed_at": "2019-05-15T15:20:32Z", -// "git_url": "git://github.com/Codertocat/Hello-World.git", -// "ssh_url": "git@github.com:Codertocat/Hello-World.git", -// "clone_url": "https://github.com/Codertocat/Hello-World.git", -// "svn_url": "https://github.com/Codertocat/Hello-World", -// "homepage": null, -// "size": 0, -// "stargazers_count": 0, -// "watchers_count": 0, -// "language": null, -// "has_issues": true, -// "has_projects": true, -// "has_downloads": true, -// "has_wiki": true, -// "has_pages": true, -// "forks_count": 0, -// "mirror_url": null, -// "archived": false, -// "disabled": false, -// "open_issues_count": 2, -// "license": null, -// "forks": 0, -// "open_issues": 2, -// "watchers": 0, -// "default_branch": "main" -// }, -// "organization": { -// "login": "Octocoders", -// "id": 6, -// "node_id": "MDEyOk9yZ2FuaXphdGlvbjY=", -// "url": "https://api.github.com/orgs/Octocoders", -// "repos_url": "https://api.github.com/orgs/Octocoders/repos", -// "events_url": "https://api.github.com/orgs/Octocoders/events", -// "hooks_url": "https://api.github.com/orgs/Octocoders/hooks", -// "issues_url": "https://api.github.com/orgs/Octocoders/issues", -// "members_url": "https://api.github.com/orgs/Octocoders/members{/member}", -// "public_members_url": "https://api.github.com/orgs/Octocoders/public_members{/member}", -// "avatar_url": "https://avatars0.githubusercontent.com/u/6?", -// "description": "" -// }, -// "sender": { -// "login": "github", -// "id": 9919, -// "node_id": "MDEyOk9yZ2FuaXphdGlvbjk5MTk=", -// "avatar_url": "https://avatars.githubusercontent.com/u/9919?v=4", -// "gravatar_id": "", -// "url": "https://api.github.com/users/github", -// "html_url": "https://github.com/github", -// "followers_url": "https://api.github.com/users/github/followers", -// "following_url": "https://api.github.com/users/github/following{/other_user}", -// "gists_url": "https://api.github.com/users/github/gists{/gist_id}", -// "starred_url": "https://api.github.com/users/github/starred{/owner}{/repo}", -// "subscriptions_url": "https://api.github.com/users/github/subscriptions", -// "organizations_url": "https://api.github.com/users/github/orgs", -// "repos_url": "https://api.github.com/users/github/repos", -// "events_url": "https://api.github.com/users/github/events{/privacy}", -// "received_events_url": "https://api.github.com/users/github/received_events", -// "type": "Organization", -// "site_admin": false -// } -// } - -githubscanaudit_CL -| where action_s in ('created', 'reopened_by_user', 'closed_by_user', 'fixed', 'appeared_in_branch', 'reopened') and isnotempty(commit_oid_s) -| extend EventType='CodeScanningAlert' -| extend alert = todynamic(alert_s), - organization = todynamic(organization_s), - repository = todynamic(repository_s), - sender = todynamic(sender_s) -| extend alertcreatedate = alert.created_at, url = alert.url, commit_oid = commit_oid_s, - alertdescription = alert.rule.description, - toolname = alert.tool.name, - repositoryfullname = repository.full_name, - repositoryOwnerlogin = repository.owner.login, - repositoryurl = repository.url, - orglogin = organization.login, - orgurl = organization.url, - senderlogin = sender.login, - sendertype = sender.type, - action=action_s -| project-keep - TimeGenerated, - EventType, - action, - alertdescription, - alertcreatedate, - commit_oid, - toolname, - repositoryfullname, - repositoryOwnerlogin, - repositoryurl, - orglogin, - orgurl, - senderlogin, - sendertype diff --git a/Solutions/GitHub/Parsers/GitHubDependabotData.txt b/Solutions/GitHub/Parsers/GitHubDependabotData.txt deleted file mode 100644 index 8353765283..0000000000 --- a/Solutions/GitHub/Parsers/GitHubDependabotData.txt +++ /dev/null @@ -1,179 +0,0 @@ -// Title: Github Repository vulnerability alerts -// Author: Prathibha Tadikamalla -// Version: 1.0 -// Last Updated: 23/06/2022 -// Comment: Initial Release -// -// DESCRIPTION: -//This parser receives the repository vulnerability scanning alerts from github webhook connector and parses these alters into a normalized schema. It is assumed that you are using officially supported Github webhook connector (installed from Content hub) -// -// USAGE: -// 1. Open Log Analytics/Azure Sentinel Logs blade. Copy the query below and paste into the Logs query window. -// 2. Click the Save button above the query. A pane will appear on the right, select "as Function" from the drop down. Enter a Function Name. -// It is recommended to name the Function Alias, as GithubRepoVulnerabilityEvents -// 3. Kusto Functions can typically take up to 15 minutes to activate. You can then use Function Alias for other queries. -// -// REFERENCES: -// Using functions in Azure monitor log queries: https://docs.microsoft.com/azure/azure-monitor/log-query/functions -// -// LOG SAMPLES: -// This parser assumes the raw log are formatted as follows: -// { -// "action": "create", -// "alert": { -// "id": 91095730, -// "affected_range": ">= 2.0.4, < 2.0.6", -// "affected_package_name": "rack", -// "fixed_in": "2.0.6", -// "external_reference": "https://nvd.nist.gov/vuln/detail/CVE-2018-16470", -// "external_identifier": "CVE-2018-16470", -// "severity": "moderate", -// "ghsa_id": "GHSA-hg78-4f6x-99wq", -// "created_at": "2021-03-01T01:23:45Z" -// }, -// "repository": { -// "id": 186853002, -// "node_id": "MDEwOlJlcG9zaXRvcnkxODY4NTMwMDI=", -// "name": "Hello-World", -// "full_name": "Codertocat/Hello-World", -// "private": false, -// "owner": { -// "login": "Codertocat", -// "id": 21031067, -// "node_id": "MDQ6VXNlcjIxMDMxMDY3", -// "avatar_url": "https://avatars1.githubusercontent.com/u/21031067?v=4", -// "gravatar_id": "", -// "url": "https://api.github.com/users/Codertocat", -// "html_url": "https://github.com/Codertocat", -// "followers_url": "https://api.github.com/users/Codertocat/followers", -// "following_url": "https://api.github.com/users/Codertocat/following{/other_user}", -// "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}", -// "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}", -// "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions", -// "organizations_url": "https://api.github.com/users/Codertocat/orgs", -// "repos_url": "https://api.github.com/users/Codertocat/repos", -// "events_url": "https://api.github.com/users/Codertocat/events{/privacy}", -// "received_events_url": "https://api.github.com/users/Codertocat/received_events", -// "type": "User", -// "site_admin": false -// }, -// "html_url": "https://github.com/Codertocat/Hello-World", -// "description": null, -// "fork": false, -// "url": "https://api.github.com/repos/Codertocat/Hello-World", -// "forks_url": "https://api.github.com/repos/Codertocat/Hello-World/forks", -// "keys_url": "https://api.github.com/repos/Codertocat/Hello-World/keys{/key_id}", -// "collaborators_url": "https://api.github.com/repos/Codertocat/Hello-World/collaborators{/collaborator}", -// "teams_url": "https://api.github.com/repos/Codertocat/Hello-World/teams", -// "hooks_url": "https://api.github.com/repos/Codertocat/Hello-World/hooks", -// "issue_events_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/events{/number}", -// "events_url": "https://api.github.com/repos/Codertocat/Hello-World/events", -// "assignees_url": "https://api.github.com/repos/Codertocat/Hello-World/assignees{/user}", -// "branches_url": "https://api.github.com/repos/Codertocat/Hello-World/branches{/branch}", -// "tags_url": "https://api.github.com/repos/Codertocat/Hello-World/tags", -// "blobs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/blobs{/sha}", -// "git_tags_url": "https://api.github.com/repos/Codertocat/Hello-World/git/tags{/sha}", -// "git_refs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/refs{/sha}", -// "trees_url": "https://api.github.com/repos/Codertocat/Hello-World/git/trees{/sha}", -// "statuses_url": "https://api.github.com/repos/Codertocat/Hello-World/statuses/{sha}", -// "languages_url": "https://api.github.com/repos/Codertocat/Hello-World/languages", -// "stargazers_url": "https://api.github.com/repos/Codertocat/Hello-World/stargazers", -// "contributors_url": "https://api.github.com/repos/Codertocat/Hello-World/contributors", -// "subscribers_url": "https://api.github.com/repos/Codertocat/Hello-World/subscribers", -// "subscription_url": "https://api.github.com/repos/Codertocat/Hello-World/subscription", -// "commits_url": "https://api.github.com/repos/Codertocat/Hello-World/commits{/sha}", -// "git_commits_url": "https://api.github.com/repos/Codertocat/Hello-World/git/commits{/sha}", -// "comments_url": "https://api.github.com/repos/Codertocat/Hello-World/comments{/number}", -// "issue_comment_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/comments{/number}", -// "contents_url": "https://api.github.com/repos/Codertocat/Hello-World/contents/{+path}", -// "compare_url": "https://api.github.com/repos/Codertocat/Hello-World/compare/{base}...{head}", -// "merges_url": "https://api.github.com/repos/Codertocat/Hello-World/merges", -// "archive_url": "https://api.github.com/repos/Codertocat/Hello-World/{archive_format}{/ref}", -// "downloads_url": "https://api.github.com/repos/Codertocat/Hello-World/downloads", -// "issues_url": "https://api.github.com/repos/Codertocat/Hello-World/issues{/number}", -// "pulls_url": "https://api.github.com/repos/Codertocat/Hello-World/pulls{/number}", -// "milestones_url": "https://api.github.com/repos/Codertocat/Hello-World/milestones{/number}", -// "notifications_url": "https://api.github.com/repos/Codertocat/Hello-World/notifications{?since,all,participating}", -// "labels_url": "https://api.github.com/repos/Codertocat/Hello-World/labels{/name}", -// "releases_url": "https://api.github.com/repos/Codertocat/Hello-World/releases{/id}", -// "deployments_url": "https://api.github.com/repos/Codertocat/Hello-World/deployments", -// "created_at": "2019-05-15T15:19:25Z", -// "updated_at": "2019-05-15T15:19:27Z", -// "pushed_at": "2019-05-15T15:20:32Z", -// "git_url": "git://github.com/Codertocat/Hello-World.git", -// "ssh_url": "git@github.com:Codertocat/Hello-World.git", -// "clone_url": "https://github.com/Codertocat/Hello-World.git", -// "svn_url": "https://github.com/Codertocat/Hello-World", -// "homepage": null, -// "size": 0, -// "stargazers_count": 0, -// "watchers_count": 0, -// "language": null, -// "has_issues": true, -// "has_projects": true, -// "has_downloads": true, -// "has_wiki": true, -// "has_pages": true, -// "forks_count": 0, -// "mirror_url": null, -// "archived": false, -// "disabled": false, -// "open_issues_count": 2, -// "license": null, -// "forks": 0, -// "open_issues": 2, -// "watchers": 0, -// "default_branch": "master" -// }, -// "sender": { -// "login": "github", -// "id": 9919, -// "node_id": "MDEyOk9yZ2FuaXphdGlvbjk5MTk=", -// "avatar_url": "https://avatars1.githubusercontent.com/u/9919?v=4", -// "gravatar_id": "", -// "url": "https://api.github.com/users/github", -// "html_url": "https://github.com/github", -// "followers_url": "https://api.github.com/users/github/followers", -// "following_url": "https://api.github.com/users/github/following{/other_user}", -// "gists_url": "https://api.github.com/users/github/gists{/gist_id}", -// "starred_url": "https://api.github.com/users/github/starred{/owner}{/repo}", -// "subscriptions_url": "https://api.github.com/users/github/subscriptions", -// "organizations_url": "https://api.github.com/users/github/orgs", -// "repos_url": "https://api.github.com/users/github/repos", -// "events_url": "https://api.github.com/users/github/events{/privacy}", -// "received_events_url": "https://api.github.com/users/github/received_events", -// "type": "Organization", -// "site_admin": false -// } - -githubscanaudit_CL -| where action_s in ('create', 'dismiss', 'resolve') -| extend EventType='RepositoryVulnerabilityAlert' -| extend alert = todynamic(alert_s), - organization = todynamic(organization_s), - repository = todynamic(repository_s), - sender = todynamic(sender_s) -| extend alertcreatedate = alert.created_at, alertaffectedrange = alert.affected_range, - alertexternalidentifier= alert.external_identifier, - alertghsaid = alert.ghsa_id, - alertseverity = alert.severity, - repositoryfullname = repository.full_name, - repositoryOwnerlogin = repository.owner.login, - repositoryurl = repository.url, - senderlogin = sender.login, - sendertype = sender.type, - action=action_s -| where isnotempty(alertexternalidentifier) -| project-keep - TimeGenerated, - EventType, - action, - alertexternalidentifier, - alertghsaid, - alertcreatedate, - repositoryfullname, - repositoryOwnerlogin, - repositoryurl, - senderlogin, - sendertype - diff --git a/Solutions/GitHub/Parsers/GitHubSecretScanningData.txt b/Solutions/GitHub/Parsers/GitHubSecretScanningData.txt deleted file mode 100644 index 01cf638f62..0000000000 --- a/Solutions/GitHub/Parsers/GitHubSecretScanningData.txt +++ /dev/null @@ -1,220 +0,0 @@ -// Title: Github Secret Scanning alerts -// Author: Prathibha Tadikamalla -// Version: 1.0 -// Last Updated: 23/06/2022 -// Comment: Initial Release -// -// DESCRIPTION: -//This parser receives the secret scanning alerts from github webhook connector and parses these alters into a normalized schema. It is assumed that you are using officially supported Github webhook connector (installed from Content hub) -// -// USAGE: -// 1. Open Log Analytics/Azure Sentinel Logs blade. Copy the query below and paste into the Logs query window. -// 2. Click the Save button above the query. A pane will appear on the right, select "as Function" from the drop down. Enter a Function Name. -// It is recommended to name the Function Alias, as GithubSecretScanEvents -// 3. Kusto Functions can typically take up to 15 minutes to activate. You can then use Function Alias for other queries. -// -// REFERENCES: -// Using functions in Azure monitor log queries: https://docs.microsoft.com/azure/azure-monitor/log-query/functions -// -// LOG SAMPLES: -// This parser assumes the raw log are formatted as follows: -// { -// "action": "reopened", -// "alert": { -// "number": 191, -// "secret_type": "adafruit_io_key", -// "resolution": null, -// "resolved_by": null, -// "resolved_at": null, -// "push_protection_bypassed": true, -// "push_protection_bypassed_by": { -// "login": "octocat", -// "id": 81782111, -// "node_id": "MDQ6VXNlcjgxNgyMTEx", -// "avatar_url": "https://avatars.githubusercontent.com/u/583231?v=4", -// "gravatar_id": "", -// "url": "https://api.github.com/users/octocat", -// "html_url": "https://github.com/octocat", -// "followers_url": "https://api.github.com/users/octocat/followers", -// "following_url": "https://api.github.com/users/octocat/following{/other_user}", -// "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", -// "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", -// "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", -// "organizations_url": "https://api.github.com/users/octocat/orgs", -// "repos_url": "https://api.github.com/users/octocat/repos", -// "events_url": "https://api.github.com/users/octocat/events{/privacy}", -// "received_events_url": "https://api.github.com/users/octocat/received_events", -// "type": "User", -// "site_admin": true -// }, -// "push_protection_bypassed_at": "2022-04-25T23:10:19Z" -// }, -// "repository": { -// "id": 257423561, -// "node_id": "MDEwOlJlcG9zaXRvcnkyNTc0MjM1NjE=", -// "name": "Hello-World", -// "full_name": "Codertocat/Hello-World", -// "private": true, -// "owner": { -// "login": "Codertocat", -// "id": 30846345, -// "node_id": "MDEyOk9yZ2FuaXphdGlvbjMwODQ2MzQ1", -// "avatar_url": "https://avatars0.githubusercontent.com/u/30846345?v=4", -// "gravatar_id": "", -// "url": "https://api.github.com/users/Codertocat", -// "html_url": "https://github.com/Codertocat", -// "followers_url": "https://api.github.com/users/Codertocat/followers", -// "following_url": "https://api.github.com/users/Codertocat/following{/other_user}", -// "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}", -// "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}", -// "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions", -// "organizations_url": "https://api.github.com/users/Codertocat/orgs", -// "repos_url": "https://api.github.com/users/Codertocat/repos", -// "events_url": "https://api.github.com/users/Codertocat/events{/privacy}", -// "received_events_url": "https://api.github.com/users/Codertocat/received_events", -// "type": "Organization", -// "site_admin": false -// }, -// "html_url": "https://github.com/Codertocat/Hello-World", -// "description": null, -// "fork": false, -// "url": "https://api.github.com/repos/Codertocat/Hello-World", -// "forks_url": "https://api.github.com/repos/Codertocat/Hello-World/forks", -// "keys_url": "https://api.github.com/repos/Codertocat/Hello-World/keys{/key_id}", -// "collaborators_url": "https://api.github.com/repos/Codertocat/Hello-World/collaborators{/collaborator}", -// "teams_url": "https://api.github.com/repos/Codertocat/Hello-World/teams", -// "hooks_url": "https://api.github.com/repos/Codertocat/Hello-World/hooks", -// "issue_events_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/events{/number}", -// "events_url": "https://api.github.com/repos/Codertocat/Hello-World/events", -// "assignees_url": "https://api.github.com/repos/Codertocat/Hello-World/assignees{/user}", -// "branches_url": "https://api.github.com/repos/Codertocat/Hello-World/branches{/branch}", -// "tags_url": "https://api.github.com/repos/Codertocat/Hello-World/tags", -// "blobs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/blobs{/sha}", -// "git_tags_url": "https://api.github.com/repos/Codertocat/Hello-World/git/tags{/sha}", -// "git_refs_url": "https://api.github.com/repos/Codertocat/Hello-World/git/refs{/sha}", -// "trees_url": "https://api.github.com/repos/Codertocat/Hello-World/git/trees{/sha}", -// "statuses_url": "https://api.github.com/repos/Codertocat/Hello-World/statuses/{sha}", -// "languages_url": "https://api.github.com/repos/Codertocat/Hello-World/languages", -// "stargazers_url": "https://api.github.com/repos/Codertocat/Hello-World/stargazers", -// "contributors_url": "https://api.github.com/repos/Codertocat/Hello-World/contributors", -// "subscribers_url": "https://api.github.com/repos/Codertocat/Hello-World/subscribers", -// "subscription_url": "https://api.github.com/repos/Codertocat/Hello-World/subscription", -// "commits_url": "https://api.github.com/repos/Codertocat/Hello-World/commits{/sha}", -// "git_commits_url": "https://api.github.com/repos/Codertocat/Hello-World/git/commits{/sha}", -// "comments_url": "https://api.github.com/repos/Codertocat/Hello-World/comments{/number}", -// "issue_comment_url": "https://api.github.com/repos/Codertocat/Hello-World/issues/comments{/number}", -// "contents_url": "https://api.github.com/repos/Codertocat/Hello-World/contents/{+path}", -// "compare_url": "https://api.github.com/repos/Codertocat/Hello-World/compare/{base}...{head}", -// "merges_url": "https://api.github.com/repos/Codertocat/Hello-World/merges", -// "archive_url": "https://api.github.com/repos/Codertocat/Hello-World/{archive_format}{/ref}", -// "downloads_url": "https://api.github.com/repos/Codertocat/Hello-World/downloads", -// "issues_url": "https://api.github.com/repos/Codertocat/Hello-World/issues{/number}", -// "pulls_url": "https://api.github.com/repos/Codertocat/Hello-World/pulls{/number}", -// "milestones_url": "https://api.github.com/repos/Codertocat/Hello-World/milestones{/number}", -// "notifications_url": "https://api.github.com/repos/Codertocat/Hello-World/notifications{?since,all,participating}", -// "labels_url": "https://api.github.com/repos/Codertocat/Hello-World/labels{/name}", -// "releases_url": "https://api.github.com/repos/Codertocat/Hello-World/releases{/id}", -// "deployments_url": "https://api.github.com/repos/Codertocat/Hello-World/deployments", -// "created_at": "2020-04-20T22:59:11Z", -// "updated_at": "2020-11-24T01:37:33Z", -// "pushed_at": "2020-11-24T01:37:31Z", -// "git_url": "git://github.com/Codertocat/Hello-World.git", -// "ssh_url": "git@github.com:Codertocat/Hello-World.git", -// "clone_url": "https://github.com/Codertocat/Hello-World.git", -// "svn_url": "https://github.com/Codertocat/Hello-World", -// "homepage": null, -// "size": 1156, -// "stargazers_count": 0, -// "watchers_count": 0, -// "language": "JavaScript", -// "has_issues": false, -// "has_projects": false, -// "has_downloads": true, -// "has_wiki": false, -// "has_pages": true, -// "forks_count": 0, -// "mirror_url": null, -// "archived": false, -// "disabled": false, -// "open_issues_count": 3, -// "license": null, -// "forks": 0, -// "open_issues": 3, -// "watchers": 0, -// "default_branch": "master" -// }, -// "organization": { -// "login": "Codertocat", -// "id": 30846345, -// "node_id": "MDEyOk9yZ2FuaXphdGlvbjMwODQ2MzQ1", -// "url": "https://api.github.com/orgs/Codertocat", -// "repos_url": "https://api.github.com/orgs/Codertocat/repos", -// "events_url": "https://api.github.com/orgs/Codertocat/events", -// "hooks_url": "https://api.github.com/orgs/Codertocat/hooks", -// "issues_url": "https://api.github.com/orgs/Codertocat/issues", -// "members_url": "https://api.github.com/orgs/Codertocat/members{/member}", -// "public_members_url": "https://api.github.com/orgs/Codertocat/public_members{/member}", -// "avatar_url": "https://avatars0.githubusercontent.com/u/30846345?v=4", -// "description": "Demos and testing of GitHub security products" -// }, -// "sender": { -// "login": "Codertocat", -// "id": 10136561, -// "node_id": "MDQ6VXNlcjEwMTM2NTYx", -// "avatar_url": "https://avatars1.githubusercontent.com/u/10136561?v=4", -// "gravatar_id": "", -// "url": "https://api.github.com/users/Codertocat", -// "html_url": "https://github.com/Codertocat", -// "followers_url": "https://api.github.com/users/Codertocat/followers", -// "following_url": "https://api.github.com/users/Codertocat/following{/other_user}", -// "gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}", -// "starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}", -// "subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions", -// "organizations_url": "https://api.github.com/users/Codertocat/orgs", -// "repos_url": "https://api.github.com/users/Codertocat/repos", -// "events_url": "https://api.github.com/users/Codertocat/events{/privacy}", -// "received_events_url": "https://api.github.com/users/Codertocat/received_events", -// "type": "User", -// "site_admin": true -// } - -githubscanaudit_CL -| where action_s in ('created', 'resolved', 'reopened') -| extend EventType='SecretScanningAlert' -| extend alert = todynamic(alert_s), - organization = todynamic(organization_s), - repository = todynamic(repository_s), - sender = todynamic(sender_s) -| extend - alertSecretType = alert.secret_type, - alertnumber = alert.number, - alertresolution = alert.resolution, - alertresolvedby = alert.resolved_by, - alertresolvedat = alert.resolved_at, - repositoryfullname = repository.full_name, - repositoryOwnerlogin = repository.owner.login, - repositoryurl = repository.url, - senderlogin = sender.login, - sendertype = sender.type, - action=action_s -| where isnotempty(alertSecretType) -| project-keep - TimeGenerated, - EventType, - action, - alertSecretType, - alertnumber, - alertresolution, - alertresolvedby, - alertresolvedat, - repositoryfullname, - repositoryOwnerlogin, - repositoryurl, - senderlogin, - sendertype - - - - - - diff --git a/Solutions/GitHub/data/Solution_GitHub.json b/Solutions/GitHub/data/Solution_GitHub.json index d6d7e97721..cf28de6f56 100644 --- a/Solutions/GitHub/data/Solution_GitHub.json +++ b/Solutions/GitHub/data/Solution_GitHub.json @@ -34,10 +34,10 @@ "Hunting Queries/User Grant Access and Grants Other Access.yaml" ], "Parsers": [ - "Parsers/GitHubAuditData.txt", - "Parsers/GitHubCodeScanningData.txt", - "Parsers/GitHubDependabotData.txt", - "Parsers/GithubSecretScanningData.txt" + "Parsers/GitHubAuditData.yaml", + "Parsers/GitHubCodeScanningData.yaml", + "Parsers/GitHubDependabotData.yaml", + "Parsers/GithubSecretScanningData.yaml" ], "Data Connectors": [ "Data Connectors/azuredeploy_GitHub_native_poller_connector.json",