From 333aa7a28ff71589c1b349905513783649705c3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B3zsef=20Kanczler?= Date: Thu, 23 Aug 2018 14:12:45 +0200 Subject: [PATCH] Feature/better error handling for pull request commenting (#79) Better documentation. Better error handling for pull request commenting. Getting of the last iteration id of the pull request is fixed. --- DETAILS.md | 17 +++++++----- GitVersion.yml | 2 +- README.md | 17 +++++++----- package.json | 2 +- .../PullRequestCommentingPrerequisite.png | Bin 0 -> 15165 bytes screenshots/WebpackArguments.png | Bin 19943 -> 23470 bytes tasks/webpack-build-task/package.json | 2 +- tasks/webpack-build-task/task.json | 2 +- .../taskResultPublisher/index.ts | 7 ++++- .../publishResultAsPullRequestComments.ts | 25 +++++++++++++----- vss-extension.json | 2 +- 11 files changed, 50 insertions(+), 26 deletions(-) create mode 100644 screenshots/PullRequestCommentingPrerequisite.png diff --git a/DETAILS.md b/DETAILS.md index c0ba9b4..158c801 100644 --- a/DETAILS.md +++ b/DETAILS.md @@ -52,6 +52,15 @@ Errors and Warnings can be treated differently: Warnings means the task will partially succeed, in case of errors the task will fail. If there are no errors and no warnings, then the task will succeed. You can treat the errors as warnings, so in case of errors, the task will just partially succeed. Or if you would like to ignore the warnings, those should be handled as info. +Errors and Warnings can be reported as pull request comments. Currently only two loaders are supported: +* ts-loader +* tslint-loader + +Even general webpack errors and warnings are not supported yet. More support will come! + +Don't forget to turn on the following agent phase setting: +![Prerequisite for pull request commenting](https://raw.githubusercontent.com/Dealogic/webpack-vsts-extension/master/screenshots/PullRequestCommentingPrerequisite.png) + ![webpack arguments](https://raw.githubusercontent.com/Dealogic/webpack-vsts-extension/master/screenshots/WebpackArguments.png) The webpack build errors and warnings are reported under the issues / build section on the summary page: @@ -62,12 +71,6 @@ The webpack build result section is added onto the summary page to summarize the ![webpack build result](https://raw.githubusercontent.com/Dealogic/webpack-vsts-extension/master/screenshots/WebpackBuildResult.png) -Errors and Warnings can be reported as pull request comments. Currently only two loaders are supported: -* ts-loader -* tslint-loader - -Even general webpack errors and warnings are not supported yet. More support will come! - ### Advanced Settings - Working folder where webpack command is run. If you leave it blank it is the root of the repo. @@ -109,7 +112,7 @@ stats.js Location | true | ./node_modules/webpack/lib/Stats.js | Location of the ## Release Notes -* 4.1.0 (22/08/2018) +* 4.1.1 (23/08/2018) * Errors and warnings can be reported as pull request comments (ts-loader and tslint-loader are supported, more will come). * 4.0.4 (24/05/2018) * Dependencies are updated to fix security vulnerabilities (though it was just in one of the samples). diff --git a/GitVersion.yml b/GitVersion.yml index aa5c668..abe6961 100644 --- a/GitVersion.yml +++ b/GitVersion.yml @@ -1,2 +1,2 @@ -next-version: 4.1.0 +next-version: 4.1.1 assembly-informational-format: '{SemVer}' diff --git a/README.md b/README.md index 4892750..4e0124b 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,15 @@ Errors and Warnings can be treated differently: Warnings means the task will partially succeed, in case of errors the task will fail. If there are no errors and no warnings, then the task will succeed. You can treat the errors as warnings, so in case of errors, the task will just partially succeed. Or if you would like to ignore the warnings, those should be handled as info. +Errors and Warnings can be reported as pull request comments. Currently only two loaders are supported: +* ts-loader +* tslint-loader + +Even general webpack errors and warnings are not supported yet. More support will come! + +Don't forget to turn on the following agent phase setting: +![Prerequisite for pull request commenting](https://raw.githubusercontent.com/Dealogic/webpack-vsts-extension/master/screenshots/PullRequestCommentingPrerequisite.png) + ![webpack arguments](https://raw.githubusercontent.com/Dealogic/webpack-vsts-extension/master/screenshots/WebpackArguments.png) The webpack build errors and warnings are reported under the issues / build section on the summary page: @@ -62,12 +71,6 @@ The webpack build result section is added onto the summary page to summarize the ![webpack build result](https://raw.githubusercontent.com/Dealogic/webpack-vsts-extension/master/screenshots/WebpackBuildResult.png) -Errors and Warnings can be reported as pull request comments. Currently only two loaders are supported: -* ts-loader -* tslint-loader - -Even general webpack errors and warnings are not supported yet. More support will come! - ### Advanced Settings - Working folder where webpack command is run. If you leave it blank it is the root of the repo. @@ -109,7 +112,7 @@ stats.js Location | true | ./node_modules/webpack/lib/Stats.js | Location of the ## Release Notes -* 4.1.0 (22/08/2018) +* 4.1.1 (23/08/2018) * Errors and warnings can be reported as pull request comments (ts-loader and tslint-loader are supported, more will come). * 4.0.4 (24/05/2018) * Dependencies are updated to fix security vulnerabilities (though it was just in one of the samples). diff --git a/package.json b/package.json index 139901e..93c5eac 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wepback-vsts-extension", - "version": "4.1.0", + "version": "4.1.1", "description": "webpack Visual Studio Team System (VSTS) Extension", "main": "index.js", "scripts": { diff --git a/screenshots/PullRequestCommentingPrerequisite.png b/screenshots/PullRequestCommentingPrerequisite.png new file mode 100644 index 0000000000000000000000000000000000000000..5a985abea11ca177b68cbefcb02af20af44c7880 GIT binary patch literal 15165 zcmc(`by$?q_vkxA3rI+JN+XgYjZzjVozf}Y3?PUgjf5a6AyRyo|iU9ws((ylI+_D+!e zl3xm-3)cm7$(T8tI9WNkSlPdY5Zz&50{z&?{-^d1o=#R4mM)MY{9huV7w>Pcli3^O zP)YVHflb*?pd!D)dSl#B$= zw%^wKlMaY~?0i@Kvz`iiH~N*W)6^Sb7VSW1#`5_I>ydW~1@~=x-q>#9ap5#rQ}xK0 zFu!DuR(H9A9$uTQ8tkUl@#6}&@yx@Wg}Z0G(=WyPVRCEy{c94Ber>pjNXz_fE>Sq? z+t>tzf7>f`+~|)Xe_IPA>E9bH2&yULzXtgqM!4XbgYiPL3iAEsf*yhx4KSCHUy~~W@AIu z{&#Pg>>Mu8^4V}$mB_lr=-0<171bZxOLYpPNtSMAoj*`OjLVhHsxpOnf4C;uTHBp& z)BXG0!M$=w-CnG@)&aJ1wOp`BEJYUcE26LceJW4>$}E;u2I@qolg!oi?3t8{In+r} zFiU;sM)MTb8gQALcY`xJq?bRn81=ln+IFmRm`#eU2vs@Q=lsTvKeTbTZRfpo^yi&A z*m9bsEX@%uv{_!Xu^Q7fu3q8Tee~IslAC=+e|2Fm2d0n2im$ZyAqg~?%Xw)c()K}u?U1ho z54FQ$GU`7UrIZtun#(n8+4)C5Xwk@e*f*U(&H01&YIN?(_53K!YelvP0b}77NEG_Hx_&HT^X-D{otp6Pi*b}U&x6-opq%4Ib?TZpYD-ZqV zQ%md~W#tWg7?LX#g*6aim>9iEXqY)8x>~1uwQxr5s=3ZHiq8)vm>& zPkpRo(~tkKs&o+@PjOeTx)p^Rd--?}Q|rznUg0@|OZ>AQVfsQhJl{|5?$QVGoSGf3 z)V;VV6!eUl``9=*YS#>z8w(4;bcij!Cj|8FnROb$Lvq@+35lW9%UN|<Z)|&89e(^2F#YIk~!j^Oe+{gc)-wLV7rs92XxS-^9`q z>*>>{nC}G|@;*fDAufp}!Bs=ALoCg4ocyR7-FNkp9OBa0XxBj;FvWM(6sxMwY;flJ{ ztT=F1R!PKv+TE3@oZ8_t0v+(AR#UN(D|a-FDLHV$xx(mzX49}FOE7C>ts0A?>rB9e$c)_U7YkloAby?V{Q zG!^E(-;1;>fX3&Y9A(J7Lp%bhJ2XP)Dtr$6WnNDTFJP1O@B3xU%uL#*gNhY|vN_|u zJmSGM6l7^ip#-@Q$iB1ten&k=SS2=4z%R_D-SjIx9OZlig(Er(k?H)Bw1Dzmri-R^ zX#>VX?LriTZESyUM^5PZlhoIeYDstrW!YModSo=uZ7L^Nu}VYW9(`j_HELTnZU&`>`lk6fO9Q4?~CCKz911J09c-HzMBxINLmWQGK5&HGxE@DPr?Y#2H zatP@^%Njvt@&CPLwfx{DlIkFm8moU7Y1qEVk<$|mhA+B^@B*PMEWE+Jd-s)_E7Epa zQocbx*9UTH{JVD-`cg$}UAHt8`iAG`@T3W{(?5N>Crlmb7_Y9cA8~TxHfnc#e4Gb| zHzya&ktFwi$joHK#l?N8L*wHpOzm-fJpQI)aA%^Y#`kC@f?>O8NTzl!@?_Y(;>! z))em z&?{I?9=O<7nZRf)Dkh_2V!q}n!C>MqS%`$}rrvLETDNaUo}C6_;&XI62~+1475!Lf z3od)phVfcc)5OR~%34WI?!zW-GW;g5q(n|lE!L&c=iAFUjlkC5r#fJa_itxZYf@@ndUv zgge(cm8S7z8h^k|NA%i6v?0IeX2q!WaY3P0^%^vXI?(V3K^QpZe~!^G!`p zlkCuulS`?n#AKFaMR@mb?e1OEzlE2SoOs&F?Ck7Jl$+t4?9I~+kgJMD>ChGGUn)mP zo*%1uOQN)tnRIpt$c2OibW_NjZR`bHJe67Q|MREx@MLGYZ)+SbdUOtXh2>vc5`fYc4uVkxbNo17k=?` znheYEngMR%?q0*s!=of3udACpGM*MLmzCLTUZH)VKgZ&jJSBKIx^{hiZE(FjSp!ZM z*T-rfSo_Mh&_lx0@F%?aYLBshi~S_E(f6R<1L5|_&*T8c-`{yWw_7> zpO|r_8-oO#_OrumAp@TX!mL5IZ`SZfoNwB z4`Jptrp){x{w^5-?#JThk(ij6jyqF=VkZ+OiI41QS9_Dmh7No7r01&bl8-LHzh6hK zzYbcKI;}j{t9QBM?{xC5v5}hWfnIdv;MVaF3<1Q}mc(yCT;UF^&RSn;+lRYU^jIik zMcRS$Hzzf=(WVvGMSn)}3i(ToY1Id^GDx_}bh|2gL2Mnq-kJ!efY_ z7D??Z)GM2Ja(2!cS5;LVn4aFMh#DzLf=le}?a@`GlRnU6OO@o~yH}_Qm($ezT*-a^ zzHEVwt!>drZcEqk-p-D!y*<1VzCM)mVxrlvSs;w%B-I1|D%l>ve*A9A#+^Sw>?8lj zpFe*J`<#`IJi6)XRQB-^!@$JkefZFy-=fcGw%*nE(rIHTN0sUVEXX8zX@XL-9@3+e zlSOb6l_M)tQ|9uD3fP!@<4H@GFi@6S2%kEaUM|wGO)WL1zQpd%F!*WPXrX2q?9$ED z!os9Ilms#|55GC1dTLDpu|D3~-24vA7|D{Skr6%f5)T2QL&4sjr`mRsZrnKzN*!)WO3G~f4)4?5_M8`=|4f)fq376HYZPfg3r9nNN<*Gb zE=z?lJStc62M;C7C%6O|YOeC;-d^X``JpG1$1@NcrY6n9et3rROuJ zL}I9)y_J;;H*$6DH6G$2uacHVI|}3D=Pz^LGtlB9{n6RE6o@ZDez@6S(VrIIT{CGb z?03^BP?&2zU2Qkf=vkpD^;pL*?_*R{XD6K>SMS@j$If!c!ewwgYGL}Ov7w=WiHQjn z%_R-aPR;a7=Z&HJR^~8ZUFrO;co&zJ)cXggr^8}dm7c>tj{E)mbidYZ=Zi7bZ|tck z>c@-D37UnYi$HXt6wc>1kL>4;rc0zcK23B?OlVmOPy*|nQCxi2f9uQ1(UC%@o2%=> zRF#cH57Zx%&WE6^tSr<<=u2K68?eN1-bSNV6ukzwyB2*Z(BGT4VEWFu){ZuYhqk}@ zq{zt08P7F(o}K#Lx+9edv{=<|;XC?9ST2x9inzB%+3ex z^=4Ev@3OXq;W5zI4=E!;dGDW?ly=U0(AnJg-9HC0QRJ2fV`f<*3iQDC>e$fAaWlUm zWxp(0g&FIii^tpbKy4oHrZ$MQz1;k4s@;=+Xy9i_NBF1}wP$28J(h2$Z0_LgN!fZK z5B9z*2*B9_CTYK`g?Ij;_jO)YE6SsJ&+?cwB1fs^e9HYdmwv#b*tP+^ONulRm6_&pMH@BX7VPh@8Zk z_XF(ZpPK2IpEx)$2#qEPiG5{pLd1FXrPSVwej6d3&@$j3L=9RBu(7eV0Jkuw z-t*g?p5AmxLyo5siV%8UUc%c8`0eJQN55n9+gXvu%iV?{MyD`RZWKuK9wu<9f$IpK zgAyo}v*lQ&#yNOe!UO$Ka6wa3(~R8Q&NcFbO40U|Mk!EHN`5MCA4cv%fcU|FS;c!aA-R?#fos2zIE{jk4T@hcl8 z{MeBqEK>jzd~}5=Fs}dP<0^x|?P$%yW5cC?9`u)hkHg+a`-@>bkyagFzR~g?-@Y9Ru=2XtEQJ4QCo}y0HJJ80 z&>JC_d(CtpbbF$uMGnvhOM{mTv2m<$;I^bNZL*@k_$s}6dT7cNOwE2Z{97F2!U_JH z9Foaj=#Yt1Df^iC(sQ2P&9297FL|Ke~m^ zgy%FRy-r>PORJ12aQLJ*^v-pj?>;r$!Omz}e`*tp{`h>80&Q?!DX64c+pR>RQV5zq zAEhz*E#U$8i;dIa8h`gjtZZZ8>{Mf}PB`?AzCl0sZ#P@|$71^Z_u3MyU=Ndn*uUlet$`HE% ztE!-=*wG!&8CWd^g1%RD4EpUC{Rxr*uzi&Qj)33vn4J(2-OcD&Ra}UI!q0c@BcX_2 zQmT2PZwL|?2Np3@ft8?Jsr{)t?#wW~I*S`LIVh%gxLerVr)?W#o6D-}U9_9Mnud>}^f)0hDk zIEkjV8~?A*`rHCr!vl@0Xhm}Fsaw5FYxd9E@7R!Jw$DeTf^Fwh&6#nsh%=$Mk-@Dp zjX^Jm!~Nw=1?nAM$ab-%97ne?gq|Y5kYiv*B^<3v0;|#W%((FJhHX)I;?n-bXOClx zK!szhPl7!H3h?H4^N=&5$t~m1W58@^J$^%frHLoE?xPJ^SDkGr`H4)9CLS;{F{x;4 zKb{=TXrM0u^XD?;@^35wT zKAF!BhS#g-u*J?+P^D@=bn-Fga8jI{fo_wPekIQFB%PRPO%<-l>%&Oa3jTq{{%}S! z88vp>U}*gpmqPOjN%+0@>&jDFVu51wm|e$^Hva4GX)`7l4Ipn!WcXL`zI6S1wQ zAoVs0&y`zZm7OTe?42`;>LFyhT>=7on7kQh)^5tcNhs9`eJwS4d#9X-X}O|tFbTaY zrg!ebdi-o^OLwgm+vrt!1MQ%K!BQ@M2V=j$kRg&r-j6JVgbTfu{oKpOQOUlS??#u* z*`QHprfjZ1^J@0>-PQ#x`4Lp;?oA69mjiCwysAPYW;ik+e!}phUm6i~d&)!hu30A> zmYiVJdi(2%^us`t+Fksr7L+jM+!=>bBJC_L>k;=s46YZ)iBMl+9bWnnPvR+c*Aj}S z0&UeSWbI+j^p!4|!hI~s+D8PjK?QOdZ2D5@{wb8FMO$W6T!ocv4apdsGEWwW1+f;&QOi?UMN&!g0FY`d`3Up^xG%T*o}j%sEF++Nb9!`$&uR}X8tmkTXep~$N-IXFtMntn zgnqxK8G4Ux_SMr6!k}CI0EM#m;RPH8i&+8Tg(?2U0WMn)v@AfJks%>iK0rgCjnyE6 zKv?2P`Zp~SV2(n%;e`GZodGLS-dv=(RL4v*BFEq~wBVyb5qjVBYtaMOze~3jiF?lYC4-&CTYEWzIi(~VbTHB;Eu7^fv5QfW4>;UGXCQ2;MTh(_`&ux_q@egxR?!a8efa$; zJBr^)uJhoPy?E)lX9q9Ds20EZsz!I>A~(vz?jGtgaBA?8Ahpr+&|#%J{u$1vmHz9a z)0cf07Z?8N>4hD@tRIgXo_aT0=%aWl=AF$>laQ9UBj1aTIp|TN_Hf8 z4uWIg3S~)n3&$;AGvDrO=KiGBL`>KU5tERd!|cz!4KWYWSQ#@1?l^{4&2Ucyh;58{ zmZBtx5fwC6*9Meh$5PaFm`dJf&X}+ckdDq7@cOpe!OTQLVrihp(sZ(ZuSGRE5G5f8c6g6^t++Y%~@Kh@M|CHjXx3Vc-w){p;4t$f35&@D!U_L zImou4EjOrLxtg(zi#PaQxD{pc<3uwpKg}b7OGB14h=Hb{qbiTw`IbvI#@464 zL_S2VgD$Eq?fz{T-Kc(oIOh5E#QqoC^aaU`x)QR>1hMz4olK3P1ZqVVy-wE^_a(kx z18eMYwh#<8`aV>QiGiW4r-$2Qz*FqR>B}}(WkXh}GfpM|W&~gi2qfjPGfM`EBMlxV zE(WUapFlc=m2ehhJlAwe3sHc|nwz)WmZHtNzw`M`yI-IMN^*3(C0FjWil9E!( zI7wpSn$qdf5i(W;!HodG5G*U_y-7()UB7;%5cbE6Sy$y19Nd_KJmT=vM766pitz8g zCznPf=n#OdQZo`BHMx2fe|RZSjElecs8gboe~qz}Y3q&H;aLsAV^Ne^SDI?2oe2}# zACs)Ktvu{}8v4g9Cvk+@PH)N{sJK6s(}6q{Adie3j(A7lxKl^4;c( zQFwG>BDurw6$<(&K`CqjDLga!#Yz0p(b0hom)Mi86sdl?Z7IE>-fTh4+ z^3

-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 OldUD}{40w~cm4^A6Nv}_ literal 19943 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 PSkmGO?@Qhpe*E76>5Ut> diff --git a/tasks/webpack-build-task/package.json b/tasks/webpack-build-task/package.json index 60e5320..0a1f751 100644 --- a/tasks/webpack-build-task/package.json +++ b/tasks/webpack-build-task/package.json @@ -1,6 +1,6 @@ { "name": "webpack-build-task", - "version": "4.1.0", + "version": "4.1.1", "description": "Webpack build task for Visual Studio Team System (VSTS)", "main": "index.js", "scripts": {}, diff --git a/tasks/webpack-build-task/task.json b/tasks/webpack-build-task/task.json index 5e30b43..e3771e5 100644 --- a/tasks/webpack-build-task/task.json +++ b/tasks/webpack-build-task/task.json @@ -17,7 +17,7 @@ "version": { "Major": 4, "Minor": 1, - "Patch": 0 + "Patch": 1 }, "minimumAgentVersion": "1.95.0", "groups": [ diff --git a/tasks/webpack-build-task/taskResultPublisher/index.ts b/tasks/webpack-build-task/taskResultPublisher/index.ts index 60eb106..4a04904 100644 --- a/tasks/webpack-build-task/taskResultPublisher/index.ts +++ b/tasks/webpack-build-task/taskResultPublisher/index.ts @@ -64,7 +64,12 @@ const publishTaskResult = async ( } } - await publishResultAsPullRequestComments(enablePullRequestComments, taskDisplayName, errorsArray, warningsArray); + try { + await publishResultAsPullRequestComments(enablePullRequestComments, taskDisplayName, errorsArray, warningsArray); + } catch (error) { + console.log("Couldn't publish result as pull request comments. The reason is:"); + console.log(error); + } const taskFailed = (hasErrors && treatErrorsAs === errors) || (hasWarnings && treatWarningsAs === errors); const taskPartiallySucceeded = !taskFailed && ((hasErrors && treatErrorsAs === warnings) || (hasWarnings && treatWarningsAs === warnings)); diff --git a/tasks/webpack-build-task/taskResultPublisher/publishResultAsPullRequestComments.ts b/tasks/webpack-build-task/taskResultPublisher/publishResultAsPullRequestComments.ts index 334c894..08c355c 100644 --- a/tasks/webpack-build-task/taskResultPublisher/publishResultAsPullRequestComments.ts +++ b/tasks/webpack-build-task/taskResultPublisher/publishResultAsPullRequestComments.ts @@ -34,18 +34,31 @@ const parseMessages = (taskDisplayName: string, messagesToParse: string[]) => { }; const getGitApi = async () => { - const accessToken = tl.getVariable("System.AccessToken"); - const collectionUri = tl.getVariable("System.TeamFoundationCollectionUri"); + try { + const accessToken = tl.getVariable("System.AccessToken"); - const authHandler = vstsApi.getBearerHandler(accessToken); - const connection = new vstsApi.WebApi(collectionUri, authHandler); + if (!accessToken) { + console.log("Please allow scripts to access OAuth token in the additional optionts of the agent phase."); - return await connection.getGitApi(); + return null; + } + + const collectionUri = tl.getVariable("System.TeamFoundationCollectionUri"); + + const authHandler = vstsApi.getBearerHandler(accessToken); + const connection = new vstsApi.WebApi(collectionUri, authHandler); + + return await connection.getGitApi(); + } catch (err) { + console.log("Could not connect to VSTS API."); + + throw err; + } }; const getThreads = async (gitApi: GitApi, project: string, repositoryId: string, pullRequestId: number) => { const pullRequestIterations = await gitApi.getPullRequestIterations(repositoryId, pullRequestId, project); - const lastIterationId = pullRequestIterations[pullRequestIterations.length].id; + const lastIterationId = pullRequestIterations[pullRequestIterations.length - 1].id; return await gitApi.getThreads(repositoryId, pullRequestId, project, lastIterationId, lastIterationId); }; diff --git a/vss-extension.json b/vss-extension.json index e518afa..8b97919 100644 --- a/vss-extension.json +++ b/vss-extension.json @@ -1,7 +1,7 @@ { "manifestVersion": 1, "id": "webpack-vsts-extension", - "version": "4.1.0", + "version": "4.1.1", "name": "webpack", "description": "bundle your assets, scripts, images, styles", "publisher": "Dealogic",