From 949c30d42b91a0dd3959a3ca303b8f76158a2556 Mon Sep 17 00:00:00 2001 From: Alexis Reigel Date: Thu, 7 Dec 2017 13:15:49 +0100 Subject: [PATCH] remove all .ico favicon variations, use png always the ci status icons are generated client side, wo we don't need the static files anymore. --- .../dev/favicon_status_canceled.ico | Bin 4286 -> 0 bytes .../dev/favicon_status_created.ico | Bin 4286 -> 0 bytes .../ci_favicons/dev/favicon_status_failed.ico | Bin 4286 -> 0 bytes .../ci_favicons/dev/favicon_status_manual.ico | Bin 4286 -> 0 bytes .../dev/favicon_status_not_found.ico | Bin 4286 -> 0 bytes .../dev/favicon_status_pending.ico | Bin 4286 -> 0 bytes .../dev/favicon_status_running.ico | Bin 4286 -> 0 bytes .../dev/favicon_status_skipped.ico | Bin 4286 -> 0 bytes .../dev/favicon_status_success.ico | Bin 4286 -> 0 bytes .../dev/favicon_status_warning.ico | Bin 4286 -> 0 bytes .../ci_favicons/favicon_status_canceled.ico | Bin 4286 -> 0 bytes .../favicon_status_canceled.png | Bin .../ci_favicons/favicon_status_created.ico | Bin 4286 -> 0 bytes .../{overlays => }/favicon_status_created.png | Bin .../ci_favicons/favicon_status_failed.ico | Bin 4286 -> 0 bytes .../{overlays => }/favicon_status_failed.png | Bin .../ci_favicons/favicon_status_manual.ico | Bin 4286 -> 0 bytes .../{overlays => }/favicon_status_manual.png | Bin .../ci_favicons/favicon_status_not_found.ico | Bin 4286 -> 0 bytes .../favicon_status_not_found.png | Bin .../ci_favicons/favicon_status_pending.ico | Bin 4286 -> 0 bytes .../{overlays => }/favicon_status_pending.png | Bin .../ci_favicons/favicon_status_running.ico | Bin 4286 -> 0 bytes .../{overlays => }/favicon_status_running.png | Bin .../ci_favicons/favicon_status_skipped.ico | Bin 4286 -> 0 bytes .../{overlays => }/favicon_status_skipped.png | Bin .../ci_favicons/favicon_status_success.ico | Bin 4286 -> 0 bytes .../{overlays => }/favicon_status_success.png | Bin .../ci_favicons/favicon_status_warning.ico | Bin 4286 -> 0 bytes .../{overlays => }/favicon_status_warning.png | Bin app/assets/images/favicon-blue.png | Bin 0 -> 1522 bytes app/assets/images/favicon-yellow.ico | Bin 5430 -> 0 bytes app/assets/images/favicon-yellow.png | Bin 0 -> 1667 bytes app/assets/images/favicon.ico | Bin 5430 -> 0 bytes app/assets/images/favicon.png | Bin 0 -> 1611 bytes app/assets/javascripts/favicon_admin.js | 2 +- .../components/file_icon/file_icon_map.js | 2 +- app/models/project_services/jira_service.rb | 2 +- doc/user/reserved_names.md | 2 +- lib/gitlab/favicon.rb | 9 ++++----- lib/gitlab/path_regex.rb | 2 +- public/favicon.ico | Bin 5430 -> 0 bytes public/favicon.png | Bin 0 -> 1611 bytes .../projects/jobs_controller_spec.rb | 2 +- .../merge_requests_controller_spec.rb | 2 +- .../projects/pipelines_controller_spec.rb | 2 +- .../user_creates_image_diff_notes_spec.rb | 2 +- spec/javascripts/jobs/mock_data.js | 4 ++-- spec/javascripts/pipelines/graph/mock_data.js | 18 +++++++++--------- spec/lib/gitlab/favicon_spec.rb | 10 +++++----- .../project_services/jira_service_spec.rb | 2 +- spec/serializers/build_serializer_spec.rb | 4 ++-- spec/serializers/pipeline_serializer_spec.rb | 2 +- spec/serializers/status_entity_spec.rb | 6 +++--- spec/services/system_note_service_spec.rb | 6 +++--- 55 files changed, 39 insertions(+), 40 deletions(-) delete mode 100644 app/assets/images/ci_favicons/dev/favicon_status_canceled.ico delete mode 100644 app/assets/images/ci_favicons/dev/favicon_status_created.ico delete mode 100644 app/assets/images/ci_favicons/dev/favicon_status_failed.ico delete mode 100644 app/assets/images/ci_favicons/dev/favicon_status_manual.ico delete mode 100644 app/assets/images/ci_favicons/dev/favicon_status_not_found.ico delete mode 100644 app/assets/images/ci_favicons/dev/favicon_status_pending.ico delete mode 100644 app/assets/images/ci_favicons/dev/favicon_status_running.ico delete mode 100644 app/assets/images/ci_favicons/dev/favicon_status_skipped.ico delete mode 100644 app/assets/images/ci_favicons/dev/favicon_status_success.ico delete mode 100644 app/assets/images/ci_favicons/dev/favicon_status_warning.ico delete mode 100644 app/assets/images/ci_favicons/favicon_status_canceled.ico rename app/assets/images/ci_favicons/{overlays => }/favicon_status_canceled.png (100%) delete mode 100644 app/assets/images/ci_favicons/favicon_status_created.ico rename app/assets/images/ci_favicons/{overlays => }/favicon_status_created.png (100%) delete mode 100644 app/assets/images/ci_favicons/favicon_status_failed.ico rename app/assets/images/ci_favicons/{overlays => }/favicon_status_failed.png (100%) delete mode 100644 app/assets/images/ci_favicons/favicon_status_manual.ico rename app/assets/images/ci_favicons/{overlays => }/favicon_status_manual.png (100%) delete mode 100644 app/assets/images/ci_favicons/favicon_status_not_found.ico rename app/assets/images/ci_favicons/{overlays => }/favicon_status_not_found.png (100%) delete mode 100644 app/assets/images/ci_favicons/favicon_status_pending.ico rename app/assets/images/ci_favicons/{overlays => }/favicon_status_pending.png (100%) delete mode 100644 app/assets/images/ci_favicons/favicon_status_running.ico rename app/assets/images/ci_favicons/{overlays => }/favicon_status_running.png (100%) delete mode 100644 app/assets/images/ci_favicons/favicon_status_skipped.ico rename app/assets/images/ci_favicons/{overlays => }/favicon_status_skipped.png (100%) delete mode 100644 app/assets/images/ci_favicons/favicon_status_success.ico rename app/assets/images/ci_favicons/{overlays => }/favicon_status_success.png (100%) delete mode 100644 app/assets/images/ci_favicons/favicon_status_warning.ico rename app/assets/images/ci_favicons/{overlays => }/favicon_status_warning.png (100%) create mode 100644 app/assets/images/favicon-blue.png delete mode 100644 app/assets/images/favicon-yellow.ico create mode 100644 app/assets/images/favicon-yellow.png delete mode 100644 app/assets/images/favicon.ico create mode 100644 app/assets/images/favicon.png delete mode 100644 public/favicon.ico create mode 100644 public/favicon.png diff --git a/app/assets/images/ci_favicons/dev/favicon_status_canceled.ico b/app/assets/images/ci_favicons/dev/favicon_status_canceled.ico deleted file mode 100644 index 4af3582b60d2fa40201791f2865491fb84e0ae76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4286 zcmb_fYfM~K5WY<{8l$Pk#z$hc{<+VEZi8qDO}ZFM(%MGK?qX?wD5W&Men6EU2(eUa zV%w~VA;i)))Ln|DBsF3}h)EOsTO0U6tnsmSVS#Lmr9dd$ecf@seRa89c7gV6hI7xH znfd0--e{Mvw*)s&y#}ij35Xy6SD*d6Znb2dk=cJ-R|{@qU;hyu|t;SVg8FKcZ>ciw_zX_84zBV_atpve|6$nwlDFZf>UI$B$EeeLaveT?Mn0_celQqJ ze?CBt)pne=mlH*srTeW%w}e0%%&3S)nG#bcNA(l7ry_zy?DIa_SeW?AWn%EhlEwnpM8Dm2g+% zz2JK4$j0}3x4tpft^GN9Nu$v&g@WIywBV5`{*_3vlOk0XNmRaL2gT#@j5+ip>JqdP zY$)QrfIP>47x1~p9=_o#_-wpe)kEK_H0o1m#HZ5iH%bOO`ng1XJEVkOZ*Ok~KO7Dd zd_WxXof}GcFYsn@?On$^_D^T=reK#gFxkWL<})X-dA{AQCb3WO*-wcS`B*Ko`~N#kbE0dIi^cg&r(RK2CKF(dYemg1*<`RVm! zU%(G5dc`hN^-g&hZ+A9k_V*uMcE{9N&4_cK1202-cH>K#sG7+o5xFf0{CzTonk5?e zP$b{GBAq@U(&ajlemx@6WQRt7abIWSnZGAm_dKQ_QvNn-Wr`l;T&E~rCzD>Q{H#}~ zJ9SqM!hWsV5Ban%W}{Yu{*7C$j>pZI=Cxj-wBvl}u{7b#^A)x#v#iy6{w>>Ha;5T= zvH^SgUgeCHyqTxFY~=>I~Dd7|JS2Cm2*_ZF@!$P3r_8w zTzKZa1-G{Uo_@lAuURJ7`mR&kgB+w{KYhD$`JS<|Gg(>mJfHbC^pX2{m#xxDZaLoc z{(`5XmC`u9EmPR3^e-oui_bax5&BV=9Gc*o$R%sF$GBZot&r~24qNT#<1M(<8tAi~ zo_w-a`}0nuz_^p5vKJtEv%zJf&{uM+#~kIV2UwKGXdt%C3p({|9+ Uqp2SSjs__C8=+~M$^63fKe{^4Q2+n{ diff --git a/app/assets/images/ci_favicons/dev/favicon_status_created.ico b/app/assets/images/ci_favicons/dev/favicon_status_created.ico deleted file mode 100644 index 13639da2e8a343576006037c7ca2345beee1fd20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4286 zcmb_fZERCj7`_CJ#%Rz;{76Lc&)R$2!3>%F7zz7fOhAZZ?Iy*jVM7xmKNRE##>k>E z5y*&!5E(2$*G+~AhQtsfU?dUt;fA_^9sB6$+I8txx0Qyqx1X=?b9Xzgx3}#koaXK6 zIp=-f=lwh<6@(@HS-Dccx6uB$AUq`qf|-f8gi0ptD}&GO_aLIBSFT*yc=hVlCZ_95 z)4Y~>9%Z`3w5zwb_xbyc3w<3O9h+FcoAIc#von3;#tj-88lsVr5xRNvCSALBErm1Y zN%DNSySw|z`(X!sW}S`D-P6;Pnw*@ZbUMx3xg#2lDmF2HhRM%1tiD$pSWgSEhlhtL zlgZ?Q8tg7Y=<3-N4fhzu#XF8#1s@-zT^q7=N@Fes9y7WxiJH5%-U~6&!s&`}_Ng;==~i zq;}wr;(fUgzUO3Fd7#bO6Z+mlBWFHPaN_Z}RtEg}zt7gg(HV#lE|FxpeqM`3k?w@>8gt;@Xv+oB>D6!j2sVyb+*V$I;WWS7bD@GLg!kdL!;n-|~?;dCAuE<%df}6z-9+N1! z-$W^3gE;nyx;gyWx(e$0Eo76n)@8No+tJ_ z^QD={!DKfP)ff==x0*>lxRxeQI4IzHpL}f}Qt;Gv3Lo7>)6J`Bko#JTr~f_Pu=x>r zhd7j}H&e2XbFEVPUDjJK{w!BX8)SO{!g;-P9{gEZ%$a%<kvYS8F_DFQKH(^v@l~+Nbrr zM(c=U&2r|SfZV(e);C*Yea(npzZa^jcr0Nvdr6fi?zgyI{6WuGXq~W$XCMcB=wW-t zW~#~-{I5s0iOp2YF@!wNF`MO`LU{VKSdC@dU3tZRr=F+Kde&yyj2x)34^LIE%G)zW zdP3D}o@Jk>AdlQf?bd1|zI=P(ZKY2nt4#rV!%T6Tcs?Irp?%KTImjpN=HNKjL?K?I zGsbn1LnPT|dC%y)*j~&oZHGMTX)nfWbRM-ywQ0L49eE%_}l(JN6=oecVdBkOC+qPjIfMk;UT7_6c(0{S0RBe3wMca$uOmu p!c1PK1|}Y`6Ym*lS%V;ZheMTuvx92}``WJpq)k6RP diff --git a/app/assets/images/ci_favicons/dev/favicon_status_failed.ico b/app/assets/images/ci_favicons/dev/favicon_status_failed.ico deleted file mode 100644 index 5f0e711b104b2e4bf88a3c726cdb9b7f17a09844..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4286 zcmb_fdu&r>6u$(G#%Rz;d?cdK;o9DIJc5hSwWA0zK?iK>-C&p~Zh)GgW)oC28AGCB zkP!$$8L!!m$?ydU8HR*J{x$eYPzC|u&xZ|-RV(LK~r_b?w4j+T+MkF*M&T* zYe;8x$vk)KEUvRUi?dE=aX)#daiNd(mgHHT7iSeYNx#S)d$qQYKHT0}ASZ98E^Ics zi*3I8Hs`f^^z=o@V)xLNU4aSK^Z;52#Jt50k}zqx#?%(C6}``yO@x7krRmkxQ9@4L@iN+z;%} z?p*jkH!qmhbJV=Av94axIXn{6Qm3rdZuS4q2KXV(!hR^I^SKR;Qw-AOs$HX zU1258z=Y3J{gBB9+|}q8YWzQ23LoofGau_eW+HF9k$i_l3h&U9Z`*SU{+=U4Y4}G^ z3@g0Ucqj7#brDjf4DM?53)FKezS}W>iMQQ!DRA6GJ#9wn{Zgc{CIiK`=Tme?J}qB- znqFAhMKO&OfDQ0N>Ofue`qD3G^b7b3eG~YcV|RD87S#8(i?aVKk$PH<)ZHr5$R6Va zcH|R1ohVta$aS0=PKCLt_b{7-o`t@NKIS@7IHR}C^h2P7{mo}quz4QbCyrw`^4WLh zQ}{gtMa%MOh3zyIEXiDlxr{;2QqIo38)tVr3hG9_Gb^}BZ2tj~B8_^A0vp7>4_A-l zdrFIGe(`T)DR*bQ3o_Y&o|V9E0yc)bb*{zRCdPW%=ZLxYh)AKGdWxlBN4DuHQpxt% z*%qer%aLpRz9TKfPR6V1#I+g_m0G3AU=Ei zQv*>IlcXoA&>*a@GLXOidFrfPLoILC(dX+vrf)X9ML&H|MuFxzbeZcq6;J){Ygl%l zyw>Q9*BB^L&9P2UY@LDR8sizcR9q@cSqS_Zu@n1~vY6vFddPPTG}!J}W2(R9QsX|H z4>gt~oO!g=T&dox^*y@6Tt-qNP6-{*CzlxyXzf?8$&&fSIPeoW9+&bdV%Pt3t?JoF z)qAzRN2(S~=l%VVo6y1fu2+~}*4nRL3se_95VjjUl#nN`w~%D~UcE2dci3(`4msdM z58LCtS~_pizj|c5@eozA44_jS8z8Dfy|eQ>aR zPR5$i(i13O@Hn4&5b}uqsAMkJ+Lvi9xVqq>NV&d`RvIW|H+E*)mu;P6b`tUt$>8^K zPGsAw#bewysxp#nH?7y==UN++#MdFudOC9L)#8uZ#mbnZ4+Sgc%+liLS{q$eI3p_Q zWwzs$Tzj?nBUQHP{>q|{2tV6zarmX8&HaThrJyi{JPHYPPPjpA tOPndn6lC%+H8Amjo#%*_*Yr)5D4)?qF zo^yWZd2e8tMfh93oT0yr^JRv4jbRuL3AY#{6799&)LG^(ChaRObj7H-#h<&f2p&>=zNE3{Ub+?fY<9yh{-eE4|GS(hkvPEzhvaJ_V9sEWByD{ zO(peEjm6_A&lfLVOrFt4adC0-oN7`z=#HXV&W7(gr8A5{`Fv1P zQj(0dGS7iP01O6062GOTMF}t8lj#3sCj9^GIrZbGg(IHMTbD0iPSHaP ziaW(2FE0-q4hIYj3_xXNWfD6*E+j*DHP*QYrv#up=iSfh(sbvb zV~ss~t0Sj*%ppkLp9L7{;9bbkSJ4GKY5_MTxS}N=A?d_G{ zhV1k7v9MC7 zOX)+UF%uIL^4**1U7|OOe8=3Eknb*g&d%wxS{XNi?L8(yXdeq1>Ghz*q;GmJ=*=Q*jC%*gJ%-LO1E-A7yY1qQamu@0fcxLa>n(v#vELQ* zJ%LX%#es4`I;ke9FQ_-^exO>Qdy?*IdM^ZlkJ4R(G5<1wtDN2T92?y+_uAt1mcXW& zVqY^CKVeI6VXQC64mHZtaZpjrU8A>KiK+blvr}iBJT68f*yn_oB=kM{EeBA6WMKiU zDn$F6Iq){I&|jy4j!F$2-Kv4JwHo++rv`lOBK(bgt;9?J9&asuL8{^ZiB@wE+J?D~ zQ>2yysha;yDiew&OBSN@YN3z#6S6c%t67r2b*I(%VmfB}S}NlYlYi7>2_m0o%CzO_ zylU&2kF=Y>63G!Qbg6Zb3Le?6U7Z9QF~UyA&< zNiL}a^*yj^KUCvS-}7zDe<^6@+z^)s?6+A9|4TYwwsp|Vcaa?7lOD9kbFWOd;Qx9g zGk*fgF@_|MbHFTqk_|8YEMOJ4Jd~I1x2N-DTR$+1rIdqs?EQC5nR`Y}kI$rk6Meo* z@|61-i`JyZmub(xCFhlpi5-KFIhZx`eVO>O?PJbiiCsg hr1y+yNh`y=gS3uluqFNjcZ(ZhzhUshRPr|q{{t;Pg#`cr diff --git a/app/assets/images/ci_favicons/dev/favicon_status_not_found.ico b/app/assets/images/ci_favicons/dev/favicon_status_not_found.ico deleted file mode 100644 index ed19b69e1c5bef5fc97b8d8273886f6fbbd028f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4286 zcmb_fZERCz6ux8{jnSZy_>qX>pSAb40}Pq`7zz7fOhAZZ?Iy*jVM7xmKNRE##>k>E z5y*&!5E(2$*G+~AhQtuVhml0sSBEnhZp^Kt>po~#w{~S~Z$FRcxx2U2_O=_sdvp5U zd){--bKdjuzNsKA;b+AP0lz})lY;P!AP7b#W(nm?;46dI9`qohqN`W0ZoGEwS_4xr z(=>m}JdZG4X4=)=-TmT&#)ZAMwzf@dzmM^#y}dnoY{i&p0h5?vf_gphkMRNM@PpC zj4k)|_2q7w(GrOSaZM2Xo12@aoy3O(I52pDZ>89Q$?9@%#OGO``|2_!o*144^l8 zKbIGa|Hs8c-vb}M=NqUwbze#z^2vdZ^MUb47Q*jtShLjAY(CQW^KQj9YAoN##77?# z@)c(k`zja0cb!~aI^JS-`hPUh@R^Sk{Ae_q4_@K-_xGn`fIf`HV!HBb4Nm97AGVk5 zoM@J2ysZ*V9%X8@DR$963k}quRtNdc37pj&|K4o;zfP7u=W&=%`%ar^tVN`WMu}nv z3>5zMRR!PU@#wpcaXugh$PdnH)L&bha^J}u^G`M0%-L-(smB=;IIPy2hONbZ zM=rkRi*N5cN?*VaJ!=2`5_MlX-iy0C6EpL@-?6%U`nV~TZu4XE4skG5YovG$ z=US!Y`)s#XydYOd8)Rz%!g{TA9`c$l=2Wc#`nM+Q${)|h%>I@u#3R@rdQ2niIb30` z&X(2t4!>#MLRK|Tstwqaw}{8|7>2V;`KVT$#6L^z8U6*F4XA zo`ODdAGVq+_2lyLg4;@-idP!O=`ABgE#mona)tPuvvbgoTaDfcu8BgjdTWg9Ae%_C z#q@#R`a-;jRoV`Hw$r+htloOqB2_1?hG?*A<;!~O3-Q8ROP43C2ATbMdm&l9^^mQ6 znYX&^Gs55Y|2e$Yvc0}V_AQaHo>Ib6l7&Z@iYO>7A-6&TT@mgQ`;uZxFa??1Om$2= i;3w`g(9$|Vc!_B}=*m9zA@@Ev%|9a)q?z;+rGEjuZ13y< diff --git a/app/assets/images/ci_favicons/dev/favicon_status_pending.ico b/app/assets/images/ci_favicons/dev/favicon_status_pending.ico deleted file mode 100644 index 5dfefd4cc5a284aa507915ee8dd8efb3ab2a34b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4286 zcmb_fdu$YC5MP4jsDa=EMU5yXq<6b_Eof6QX${pF6Hv76Z3_n`#uj{_e+b$?G(;MR zK?(hhU_Nb-Z-hR8|%-(K$x!YbJ^t()V z_nZ0VH?MCd<+yqHTd{(pzg)vz9Cts*aW*8};?j|5Ut7qV>y>>1=37eG`nVESVR6f? z3*BsBftyJSOIb&pn>ATVm7Vbw@W@=_l0Hirdl4}&#g)jgsEjG=zE-;ob(}!^drn6n&E7~6U zYPPhyiTz=^_+sU$GQz(+5UuTOM+l$zvJSWLOb9=($sC{h1NEq>@PDgFUea0TaPK-= zr1>)_%?&>FD5~XH_-)mzQ+nzhzxJK5Ls7{d4ZqtYpR@6w`Xu%0$?*U7B)-#IC*1Tm z2ymlZfRhKeYxw8GYRrhlZ1Aa9)4Yhp|D!tPfzDdT@$1L!&|S|%?@1)7vqt6;PKKtE5 z2zx*JejovY@7aK5CcsnsF2X(KLDPE}8#%YXzkXV@^5mt`cDEfEAQ5 zYifZ<}j z-VA(-eSXMy1D~E02g(KMq?+7wK>@m()E}rvQJwH^Rl$2s zxgICr-e{coDVGrUC>vV1b^YZ4#$gp z?=9GHr?i#7s^-~1&c$5oq-?W+l*gZyGK6)K7=wtPC!8jE<19VZJS&}Vzfq9BC=xUB zTgu?w=Dd^D5!%HLi*YAUm!9 z4!hPYiEYAn1+-e|Uc^Tc`0eov%KtnXV+`v%H^ z9{WIlR??(*#!OFNR`P@Bb3dJ@+>eNkEHk;u_5zy|@0PQyJ+RRRV^03`WOA|gF=waf zye!)My;u{mWX*VpTMI58B&Yp#GyYV2qoVK{oku+lQ^}g~N1Q^AB3j1+*-4L?@u%7w z*_5)JiB<{i*fN!@8Gp!?zSN(S`XSK2?Xz5dG4+G%)4aC;+*(k%B_MGYr1=ow=7CQm z4$g5Cgtn+i3@L!*Ln=VRMRw9WBU)0xagQRcB|5iT|AB9}4?@2V2*Azp-x&N4kZ+6h diff --git a/app/assets/images/ci_favicons/dev/favicon_status_running.ico b/app/assets/images/ci_favicons/dev/favicon_status_running.ico deleted file mode 100644 index a41539c0e3e8fe178f3ea88fbce6c66b00df3c2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4286 zcmb_fYfM{p6u-+f8lyqu;v;c7ztG;>!dM9L10(}VG@C90EjTufIyUu#A9Qnx`oST~ zj04JKlfA%grDKDsi^<${KDNari;2b$;wCMx0;LuTv_PS^-1Z*Nx!m4eF1Lj}ZgaT* zd;aHte&>Ilfnk>6Z`CS>{xWS3Gt6TQ!x)i}#pELqUwUxwZa;9QY`M!`u-;WyaHP{- z*wJY(8h6;(VCS{S}` z0DR}Fq4%rTVzh^L324&+@0XTG?}i=no$aK%x2YmFapPwYg(&Df(Xj#e@5dTIe9={J z8AP9~zEc}qb%ia2?f=OR5Et}d7w{s!>(G6$B!<2S--!+G`huN=9k|-O03$X%4&mP4 zf&4M!?Enzt^JIiczhndX;dWxtwSV1Hlw01jABt+lvG6Dio%4vVx;(54g8)!ZJYl9+B3(5z|$y=!lxLkD) z`Yq`DzIvXnP{#$z{gn7*gW3<2lf-k?7rehzAGqp@^61QD=cRf0^bsBH15eAglr~T- z)cHWQN&R7|`0j(bhX_A9*1rH>VqhHvt~Oz8ElKT=a#B7`{egPaV)%a^$xa(MX>RO0 zoFnOt^HcixGM6y0&U9^{x=1|KqbQeC;rATR${A`k{}DK20$)S6q*Is*Bvd4Q5469h zi$B$MRXIa_l6rMA{9Z@KyS|g$guji0k;5E>YBD9Ak)eMS9my7Y_;^=P+fKcj=7kpj z`th762At;8!>3K)ZDqmN%)xAp0iw06gg<)CkqlPh>*1^GhI%#43#w-|eve~Kk+;?4 z3bdPGz{$ek2@WE5Bg8*XhgeNI^zF`rp5|BQ<*@>)T4?bp_v4WXMS}7`sz02YgpWCP zZ(mEsCqu0q??1)CKnn}~EgVcXunM+NZGhlAS<<=C-{%!wdJ8qa$N9EYpNbsT3C%2; zn>5F|kL9c!beet$w4uN8&Js4h#~Qgg?7evR+H{!RVT4#oI(Vw`z}>Juc^x8<@4_A! z{CWoj|2n(CS2VNe?limU?mdo-?UUb{CENtI|0oB-UIWAkn+SbByJZePvY7+-UhM5h z%2V2)+*h@rnI-$(PT2JHw5-naI=T2D`kZ3!J;q_K86d907IqszC`Ws&XbV#K4YOne z`9X?>X3nV~r6tV^npqMy&TjJi96G~XKAwNS$6>nRqqsXb2-nN`mcS?9@0`1P0-xUG z2Z{yhq?{bRb^@q2sm7>BQJByiPlk0ZlQJtlZS&bI`1!uMMj z;wNkgZCfqX1=*oTu6+g2wLiCmX15wsz5dskl|SBO6609s6l;a>?&2OJKn0S`08pkw z#NTKH;WO+}b(t_$y9NTa*$}MFf^ba+j5lGdu&&j3+O@B0!vp+Qwo9x;JzFr=GR3zU zfv;pQ^2OXb-j;%Bzmhvo@`wX%BO zGcTJX;4 z>YFYzzo;j#U-A8w$nMnCp~D7H&~pt?}*j(dMZ5aUZl*l>E?OKeuq{j)%Ud3w1HwE`#v;Qnwhj_^z;Nuv!BE}kI{LG z{fy0AswbC>7uuBZh)`-6f>(?XwX)}v$))0B%)X=Zg3ajnVNRry)!Rc{CseS&TTO52 z?JvfQ*tj?8JnCs%Ojd7y#>$n)ZH8#5Ec02t{l$1Q8*^61Yz7|f*u0pm-u`4o{tAD2 z?#Dp?w%_LCx8;5`yu`W%VAg`jqyf*|hqN3*%rfvu#K0BiCZR1NQVc1C*wDnt2L<_nF|ue( z1Tvx_L$=gdZta?_ef@hpzqhv3*Vk?X?#tQj zJ@=gRJAdxEHxq;v{HrWov8ewwpI^)-&}o z&G1^{d5q~g)BeuR&KDmvF6`NCw(V@+!Fbfx)|Tk&>!ZQJK^hquq1(4_)2&;#;@D%E z7|$m+Pme8m9-UPfCILl1ifX`>_ z;nBw8FD9Br$@7Cqu0|b=HHsAcPM5)seW@YO=kLmT==XaaxSQ~1aqJGZv2y5a$(nJi z{uf^h=bK}ev3Z_8DK20i;nOt1St;yB(%9+T@6E+e`{F(Hj@%dULyg-0xJI4V&h+B#&c@9C-EZAcHgiUw zOmLs0)*0g1lV59z%uFT?QKbrjze`Kfu}w5})=U%D56RX1F?r7Kp}?u_G}Ew-{^7pP z##8>DtljaLv{yHntkF`enroe+#QSWwM)#{!E^d`f1qk~!;uXlJbulMvG|(TNsx5n5 ziK$#m<+_uI4?UJ9#2hL&R4HZE)}c2IJIR!)Q_2SHNjr6?)#Q~t$z*sv3H;OUW?9 zsoV#qE7s-h88th;ijB{6%+t_E?L#I*g_>MGUSN0eQ?Uxo1ihuDh*5VXpIjk6*X%O% zV)czZEfwf&&EY_+GV^fSW0?e{o5rqV;+CH5_mu!WMsDw2dpm{w9iSV2yi z1iB&ICH5uB6lV%BIhksic)(A*XP{NJg76a47SN5usgIn8owV?cQGjMMUxfYxQ*!et diff --git a/app/assets/images/ci_favicons/dev/favicon_status_success.ico b/app/assets/images/ci_favicons/dev/favicon_status_success.ico deleted file mode 100644 index 70f0ca61eca731f254935c0babc2d4002b0c7518..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4286 zcmb_fe@qj16hFh3Ez1_S%F`9EX(GP3~BEGNpuLhWSZ#wF{eu= z*SSyHFj{dl}_pU!I?a|gBcX{01 z`@Zk{ykFn`*$-<2V%HLO&2L-5CwY}%V|ZPzKVa2~EFZ>e!l9mTasW}qIZ zCX+uG1JgJ;Si=hs99R!ok(SOJTm!3)Lj$P&lsoAlVr3mehH) z=jXnYF)9gr>*+M+Bn7)s6JMMIk!;i!+Je~?=CuYfZB(j0} z1NEpx_#M^RlY5UCs?0}c$akwSDp9=Gnv4Q#|_3DZ6ubMO0I*zcn`x{uev7d$WmFcoi zU9R85IPqR0ZCKYfKSq>#HO-4?{L6=PUh1tg92+>sfxTW2j)N?Cc4@)6cczTr)cIwM zu8A0A!^+LkO8hgB_HuIC~^{m)`l!e|}JzT40VYosc#`b=yg`YMC zYM{NR@qyuKUeL@6%uPP!-$OZ?zB;bW*?{pzpJi-(x~kX!_D=MDcLsPi>cF=&13ucX zffdaeG3PK@gJ@=v?=-u~_il6MhT$fIj2pu4Kfr=_rxtvKO@y)ctPJ2gmd}KedJU}o zcFujx2a&AAw!q{#t_#?2rpJ~A>pgl&k1*voO4A};X zLwip{!g`>2K{G3ejkB9i37|7f`{CRtZDy|1L3uZ`FtRsTZy|h&{pNu0A$)pL94Hs0 zlWLOA1)WXm57eWmPg1X@d4au&{`U|C>(osl+{mZRoVka3%wT1(-a^=+*q6oPhio~! zJ{`6kOby1BVmqEzSTyi)!?a5@yCX3p->=kV<=(2{BtM>W%5|8~cWH+Xpa{vN1>hBk z_=P%fp{?hu(xG)<8Z=j@!H-|1!R3lq;ARa6|KPcf#EX7+lrMQoEYo*Mr8@Ag#9Rl- zze)#Uss1}Lk9}J-#UWZRWm`!;w3nVzsh0Nl+$hg|IvO+jTg=l}k$-f?LPS2h^9(|? ztkSpp9m7&E1@jctLHfj{`U6Vx(LB*)cvB+$V2w+r4DcGYH%E%*ycjL3^gUdZJq6_l zXkSbuJu7AeU`^PDT^KI1X!Y!KWJc;3cL`sQf4c;6nQzLEA3KIuVw?1On(N&o5* zjrxNiU<_$LK1Yq*ig;`epZ^&dLo{?Fh}DvX+^Z7IFYQ<`fyS1 zlzw6EHlUyF4|w&P=58HG^4tP23qWEfgUCFAlmbJ{B(TZEz!~Nqp)C@U4`~R=hE$G( j7uiYkjA(K>!%Rb3Ky+q%@CMs<8wBoaFa)>5_Za*Ssj5h) diff --git a/app/assets/images/ci_favicons/dev/favicon_status_warning.ico b/app/assets/images/ci_favicons/dev/favicon_status_warning.ico deleted file mode 100644 index db289e03eb15e0b5d799c1e58864e5941ca66da0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4286 zcmb_fYitx%6rNHH#z;WLR{|Cj?e5HOAEq|`C`x10M3mTew+n?INDCweV?q@Z{2^5$ zfj*#HXrzFJ-EE;Xk>C#`CKW@k&C&Q7<`GdX*A z&OP^h=W*{nyMmBF&+63ze+muD1>p%n5Uj)`60(U|t`f~HI5i?saATct7&Qr%Xj$aO zFpV;e9YQ6pki3}YpILBRHdu+b39FSbu%rs%*Utk*-vb{s0j`U{bEgsFInoJ|?h)ZA z9$OGUA~9F6?WC^|^0fiuAsABIFtGJI)dz)g(j`AEzXD8#4Pj>qf9eGu zuR(}%F?L@*RAM({?`fU|p$h8%0QUY2@Te#MXv7CK5BE}wDy-zaweA8GMQ>btPjmz9 zACE@Fc_15#x*z6S2-@RhH+(Z-WH}-u+bTYfu}Iqw!FipFt603K5+fVFjb$|=KX47$ zav9(;7V)0s98nH-#hn5-*6^CMH)2_xpIkkgd_TlVxyQcwlJQ%I%y9}X0cmvrk7mU8 zgL+5Jf&Xhw#jd-a~l>1hJ`q*E!nX9^dwo8Kzly8bz z#intnT8dyFq}a=nG4-Jp!Q5oLxbHfa9u3DlhoUzU8;?fBJxleGdN;@3?nx;g{o1bL zMzQ;jO9&pcAjH_rl>4bdD?)^SbMvcsv^;>MlcAVC7~yisxMyj3uV8GZc5m96Zl4tH zqMUQhyK5y(mRS&JNTCh#tliYLpZ1VlUcNE`~d{=Y7SX`wj z>Rsc;M^W6Fqu-NK!FSBa5pBOkv7@=)HXEOP2ol%r*rlEeKAT#6{~MRPZ{wBf<`(+R zv2rHn%_#Xe{3ecll@7UtWgV z@{jRDSpf!4q~cFH*E8|--+N2eKO}DxZz@H!#|x>}8i%)AAs304t(Xj{)WQ%R8wZf$@R7TGgk1@lX_jF_tAok6{O$K>!xjxy*v5#w~X}lvcbZvrBe>8 zAKH4*d7E^K=kTdai+%`@m3MYRofZWM?oh<7tX{h}U!N$DQ^(BfVI%z^0T(f_au6 zY_MX|AzqB7XC|kbUEuXWr?sz__JowUY6PFMZv7g+}n3t6ZLK5*>=BB;c1OHw> NB2NbbxIO($;y(%}fBgUe diff --git a/app/assets/images/ci_favicons/favicon_status_canceled.ico b/app/assets/images/ci_favicons/favicon_status_canceled.ico deleted file mode 100644 index 23adcffff5082fb84b1dc17f547875d7d3792251..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4286 zcmb`IUrbwd6vr>Y#K)N!eKJb2aqsW8jG=KRn3#eS*jU}%SW(AfhDvc|2gCFM6QU1G#1|7@K(lNQCM49ZT^$Im-CSGl?eTms+~)T7mbM$e=JfZw z=l473bAIRdPm;>`S5YD1U;6F|NqSn6B*DTesg4DDqj2AD7oX2puBvLYEX(6Uh#TBq zR}>||b%5*ZtpC{Uc0aq@T=-+2ml?O1K~+^%dV702`Tc$x92}&st}be9Y}C-l<2Jb- z<@(9phy!zGUqkR+Uth1y&dyRIksznCyu3`ky}iV7rr9RQxj68sF|e;Gu>1P@D3wY% zVRLj#OG{K+TdQ#l_Z}q%X7_+SG&GdMD5MC5LS_uXhgpm2>gs2hpXli5NEc$6{lQ?+ zY#KH4fVIGWD0Lm!W}Nr69tZ@od^&xk(`oAI=^^B5Vqzj|2=)Wdf3uWxQCC;@7_&FJ zySuY|Iel2!;6to=z@FUJcNd$3y)V4{Ds1NF=A4ijof8{*uos+7UWe<&@b`aC9=Y?{ z1Mm@hzLJj(y}jUmz#UbHFNXDz%1J#fw~rY)i^XDgSH^cKY#88gP;Q;p}&wt&C@A`s#$~RilU{5i-m!HXPut z<}+}^&R2%DYw{H58}o)-U^&Oq5jOavqoY~;fq?--zrCN0Gv~D4RwLZicrVyy+~n{5 zlJ+TM+MNs+>`U8h@L81VW7N>lNV=|P+~GWy!iFK<3)pb}o52?s>0IT6re(3OFtf|T z|1d?OcG9q$nVHG(lgT6@2IQg8ykUg*0&f=Yy<2$4luO!=^0$_JW8PO;KC`ef|99e~ z9{P*K{@1Cd=J_4ZVJ0|-2Hq^po!8!rxyx5|J!{_J_uJUWy*IqY_biZb9VAa(eaSK4 z&Dv%UfsK;0<`;9>GUpz1H$}Yivk?RGfVHsh2Zt#W-V3~0U~}H5koPS*ul=w#o|*q; zW_RZDmG*lXb|wbof!6{)8yXr3=K^OF_XF-I+>^Mgu{TtgixlC;+yAM_HES_U74kH% zKkk@Ma@oedKNiX1XX4;JsT??N#DQ4sB5Dqj{H8x$>AO&4GVQfIrr(wQ&TRRk&AeR)3T-L&NruAEVaQ|!3vPzC}CjN)ox^bnDh_-)k zI@+^ex#Rwbm1l3e+u| z%MSbfNGR|7WVJQh>fzfdyAR=wteX8h)uLtX`yAVo|NOd>jlEAjvASUQp|-3|+s8S5 zSG^T|(Y^+*x1+62WAo`;tsC!V^Mh%uZNBk#y?XRcJY#=2oU->9`sTZ*Ol=Bpnm%0K zzc&imSo@Wh)j87^xwQ5b+ZJ!!{oV9|H7(W-iy>Z!FEaboS4V#hm;WBcFKQ|psX zeRds@F1gaH5Ob5QI>g@eikms6W%k(9+v0&CCOvR Y`FYPgt(-R{Kr0lWs39?mQJj+WKX(M>%>V!Z diff --git a/app/assets/images/ci_favicons/overlays/favicon_status_canceled.png b/app/assets/images/ci_favicons/favicon_status_canceled.png similarity index 100% rename from app/assets/images/ci_favicons/overlays/favicon_status_canceled.png rename to app/assets/images/ci_favicons/favicon_status_canceled.png diff --git a/app/assets/images/ci_favicons/favicon_status_created.ico b/app/assets/images/ci_favicons/favicon_status_created.ico deleted file mode 100644 index f9d93b390d8fe6dd63003ea7ebd95c057e7ebc8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4286 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 diff --git a/app/assets/images/ci_favicons/overlays/favicon_status_failed.png b/app/assets/images/ci_favicons/favicon_status_failed.png similarity index 100% rename from app/assets/images/ci_favicons/overlays/favicon_status_failed.png rename to app/assets/images/ci_favicons/favicon_status_failed.png diff --git a/app/assets/images/ci_favicons/favicon_status_manual.ico b/app/assets/images/ci_favicons/favicon_status_manual.ico deleted file mode 100644 index dbbf1abf30c354d547fe599db7e884815f7ef7e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4286 zcmb_dT}WJ45WXRWKBiFGr_u^Z?$53(U&;xRgU9CB;4Y%kZ4~Sc=o)9-EQA2Nm3Ed^8=zN-p2K+ zAP7O6ojBjX{ZFk{>+8=Om-Hc?4KeN_1|%jXhAS&8p}DykE?l?(_4W0TpPw(&8S;g2 z?!o!x=V1rk8Fh7#?(FPrd17J$g25n|jr;fSLsL@|pq&wvSwdeNepVY$*AQX1w6wtH z=B62J)ZVRIw;(+|T}B%oKZ^~B{RLrnbaX^v?6l!>xl|jL{!c8Dl9FCS{9sj8RU{Tx zS63G_Ha5cY^0Fxl`GI0V`LNqKpv(Z~b=c{2>U7_`cMp1ddtrWl9*!J20_2~bo*uY! z=MIdGjp=ylgYp6IAKJ~k$jZuk0kPK_8X9!^R##UcEiFyKBwRBZ9UaxlP)=_1HN@+K z{cpXKLo!oSQ#xJrQC(fF>Vu4o3@9lnq5Elji;Ig3N z2j#xQ;eec+90jYUrUpWxka9dbJ4riXHj_4nM|oOVWw!oouBoN|&KRHG=DW8oj@hF651@E`oJ4E$B3k|9MGdk>Gt z12&sY^EDgi_4Rc~O->oYRr+_Mtq@DzRnM!zv~*Rj(-e=v}eH z=krlb(XiNfsB5av>>%GzzrgbW6@UNNa6ssnA8NRSeR&(3@R5Y16Ofme58-f_RR^uD zt#I_{QK+r0)nb8f8*+1V!D6w%^z^ijpX?#q(Emk*FJ6N42d~Pq4*LpX)-(7un;@nS zDstoF<2rrxq2^_Aak0WPIXS8H2IJeKH$y!ObMG$oG2ya2$$!uIo9=xL=}QKi?*Cx` zq})G2JX8$H$#3f3A#04+>s4xRtiD7&i|&rGx6$4CYvHi&-h|(7z$V|@R<`gnZ-Qt^ zh0Lt%m^QHXuxsjB+t?k1O(QDim!h$G^gZ2OB{Ab?#Rl>N#ln~mEGDg~Ur^5?Z1npO z`F#r=W8WzcX!q|!?7C=tq4KeYt=T|+z*vyZyu5s+-_YBn`arorb&_f|^$Q7eP!O%u z`#)E4)miL>1b!IfPc`PVXly0#Pq?G-H9IgTg~KNmJIEFziOE=l&NN33+Ak)nn8um! z4?p6Y&9V8~P)uyq2AcUQ*H(=>iFMNU4e+Hu0)Or%@XZ?_^vNqmO!iy+UsRvBy zTwqZuTf4FoiRJ(NZYqy@`RXU#ES_;~Ee}|v+@%P6A9Zah_ZJ%Z&Au&XeRfqwH@~|S z5i8ac%w*U-$>v_u$x*%+x?=VxR#sh0$CfvZIz*e>qnVCYlShVu5Sm2V$m+{K5e0DqRl?s-_(s6fy-H&%Io%W84r@S-q z@|*FY{IAmK)j_i};~oH)2@!4|1i2TH_JWVw0}mA9z`<=%JI*L5BT+%{AvuuRk#LZo ksGkw-Lwci~<1!U$b7VT;L7PfWcmPiDDdYz~1YiUH1L^sjfdBvi diff --git a/app/assets/images/ci_favicons/overlays/favicon_status_manual.png b/app/assets/images/ci_favicons/favicon_status_manual.png similarity index 100% rename from app/assets/images/ci_favicons/overlays/favicon_status_manual.png rename to app/assets/images/ci_favicons/favicon_status_manual.png diff --git a/app/assets/images/ci_favicons/favicon_status_not_found.ico b/app/assets/images/ci_favicons/favicon_status_not_found.ico deleted file mode 100644 index 49b9b232dd1a27e39b1d3c82cbf2292239402d09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4286 zcmb`JYiJx*6vrn-@M8thPoe?a*_mxcKS;hw)Cy^nMXY&X8`0JxQnV%2RuI7kK|yF6 zo6wY4ENv1&nt&jvpaG-J`$3e%Jj}z*rb#y0B)glH9|{>2XPt6c$!VFS0;yG#=aQMnsv-&CPi&EiKh7eJqRo z9_4<5rIF>s?(Xg<_nHfTt*xyd_CLTpYHMrL`}_N8WMqWK$H!@CXoz}xdNhpjoH+ND z9UUEy?nN9}GyA*(-(6i@+T7e6>AKEpds|&yHDcoV36@EY;n@d`f&J8gJvur{iA2H% zb1Z2j)-g#8=AoiUW7_#Q6rF;TtuUs+svX2iwJp zJBnkCrsD6fpvPR5`oD6mM)EC<&Rm}|`0MNIsqlt=aBwi01DwNHEao_Wvj!KP`0lT% z$n~wZZm?^Z|A|J&znU}r;{5E?P=lflQr#1{t2zIDR=%rTtCwr^gu%wzzhF75QTD}+ zn)Ug7j`*3G8RKk=!LhM1BVN8MgeuviPVv29ezo8~eVz8ZZfG+}F4)&L*x*Cz>bv;9 z?@sy=58-gwV6jh{ot>rSIiHSyn%(c7g% zhMnK<7ignLO=7P_?Ten*w z8lIE6LFc_M*Q%52uVVH&JKuF`Ims3=AP?9J_(V_;$TgFyCOaeSP7N z?QE=L>ajqF)rVRzUu&J`^nU1#(DT+ka32p9JIzg{a~B8S*~*_xU~f~+x9ZjWnMl(9 z$aKs)zSBG3D;a9;bX@pwduD?>*_g*&1%aQ0EplldOZQoMZSF7O1ACgT9p)V@j=Usn z4;6(@@5WZlGn$A^s16Og@5ug(zP+qD=MN)HTS-*=KCXNeY($T z;rw0Y*!=J5&Uc!}_N{8+;vJ_ktBy#@p@g)LqSC`GnG}*T$ZLp1P11&xanFVt3oe8Z rOA|{O3peBm-!sTQmZ!=jDaVjYO*u{Ey(DCUyfi@}L&6lM2(8oqz|{oQ diff --git a/app/assets/images/ci_favicons/overlays/favicon_status_not_found.png b/app/assets/images/ci_favicons/favicon_status_not_found.png similarity index 100% rename from app/assets/images/ci_favicons/overlays/favicon_status_not_found.png rename to app/assets/images/ci_favicons/favicon_status_not_found.png diff --git a/app/assets/images/ci_favicons/favicon_status_pending.ico b/app/assets/images/ci_favicons/favicon_status_pending.ico deleted file mode 100644 index 05962f3f148842ece8c1fe9c996abb1692776672..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4286 zcmb_feQXp(6yK(nYm*XCqks~rw(RX57>zOfTNIPh(llbZQ(EH}A;c(z`jrqdG%EfD z9+ci4rGfMVBcO>9HA+%#jR`1!VTkx0dt7@xx!SvOEiHF5`+RS=({6XS?Oo|K?`C#p z-uu0;c`ucuJp3yuk?2=CwN#SsmLy3*!Yye%67A~)&lY-k&p^JbnN<}uvldq%bGb0U zh86|bcwvx*3j(am738lKwZMG~jZ5-eAy$o;R|=XlP#j{s@^cP5zT?pF1BbeE9MqGH z(HZKKL0yh4ZihP;LJzVT?RA34rb2a?(LV-$V+I!b7*J!=fPT zAncdBIi$HGtZnnh7{EOz7(+cqZbb)IGk=q?_g=^n*rZALx}gL4VLq`aYK4`QTQy&D z%_KIbCHaA3LHUqt94N;zulZleoFHwNC-Nba%ez?L4Y#=hEK!enZ5`x{FaFWs{J_-7 z)fB*Ie{0Y`GPNgGl#>)gSAaKU>x04&JWf2P|FpZlE28Q0(67KIj<q9p94}J*cD_Zy%;r}{hmv$~};L~|#0`BRr4g76g&iGUxs7B3&ulRY>>UORzL)%Dx zVtirnsYX#Q&xBvr1b4ZQ@IT~E2J#68%Nq^+K8JYD$9}4lRI8ovJ%_;SKF)6H*d2(! zhrzvjGP?a2OgSbzF&})Y)zmMn_-;S@MDF04j!m}jN7~7tw860dy^HqzqxZP(G=r+M z9K`9NOBy`#F@u)NVn=8Tdab5@LGM}MmjYIeG9Dtpxu{KY`Zbi)9Cj3{@u=4r1&UgHZ-KHt)W?xaipq@p2llqwZFgq)s zH2ItCZbN#@giZE8mjZReRapG~DBOP3`5n%VY@AZh(rw4yO}5KzoKLfx@G;kg&&BMn zj_UYjHT_WJPs0Okx$8hZi?ERn5;hH6%n#VHW%NDSF6e$=OxJ<@K(UxBA1FVmXAw5_ zZt}Z?|yM)5?km%exO*8Ov=f3FLI!_N%eth6xB(p)zmKvgH-D& z=KKwTD`v$HC2}XmA8U;Kx*ePR@2-j2@P!_flf@s53BTIrBE-Jq7}J&p;9-Gjo#ha} zCco{BEx(HPnS4Lfx^#C&uTjh2VXzGIXT@Fyt0;%@+Z|+4E2jBd*)e)dsf~jpJ)8Pj z^(9*8BBlQNFOK{uSKdC_WX7|u*VLyx>V}BsWSggcxYByx>DyD6^g8jYPee53g|QMR z9`l}B9ZT5wEBj~cPi9`RRyX#gtumDASX`XXHY>G*pW1kz`tSSMc&umY=J-!m8EWld zr}duG_u6NYk6L5k*_!k@-JNOA<4e3W9Y3N`Y-hS}-B&jaq$c?{M$^{wxxTT&=BX9Y zjF91}{x>lfkNMnP8~;l1k}u6?*{+o*uU!%{D5lx+(Y-ak)MJ8otv9(X7hZ7}W3bDR zfxfRBUMKdmot3KS4W*)={+r9omdAY0>xF!^qK~VaVkz@}wrh3E;2CA}V0X6no$ew3 zd3DQByVIF<4?rphOLfvrWKbi{$jFeWAS97`kQ$M2ke{fZ5iLPl e)hJ2jI_>Kz?}6TZg2K=XVMyvU48xFuoA5sgl%aC~ diff --git a/app/assets/images/ci_favicons/overlays/favicon_status_pending.png b/app/assets/images/ci_favicons/favicon_status_pending.png similarity index 100% rename from app/assets/images/ci_favicons/overlays/favicon_status_pending.png rename to app/assets/images/ci_favicons/favicon_status_pending.png diff --git a/app/assets/images/ci_favicons/favicon_status_running.ico b/app/assets/images/ci_favicons/favicon_status_running.ico deleted file mode 100644 index 7fa3d4d48d43f7ad2a4d76dd51edda2a863904c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4286 zcmb`IeN0|%ZtZ*BjQ(Lv_7_4ijDZA%l5K2$Y|a^V6WpdUMR3Uy zGg~@9Ajr1xF%xAUe{6u?fD(x&&P;I|Er@)ULJKV`jE}z8<2e`J%j@ea6vrcndwcIa z=XdV8=ib9{arl>zz|nv1%Lh2_VUFW?6ddB7MWJ!_;oL@l&}@l!*phZStVy-Kw&b2( zTgtSV9=2=x7| zUJ4Wkb{3cq>pcg`ab!qKzA?q-!el@6Rb_>7)jm*v;>U7jJ#{D_C@0r*FQB9JK8%~s z)p9b-mcOTsa(`7m`Jj#i1_|=(~m{(zcAQ%a8)1ZEY$fx zcaz?SSolwrLE;&!4kU}TQ zFEG2(LO`FtGD-}*XSzPny^ue8qbQf7@i$k%L&i$UX=oC`a9)JM;>*ltFyN6*L~Vz^ zD$wNz`nnVydMD|v*5jMbfW>%DTx9G<-ij8O;JwEOg)V|YOP4z;{ zH`>LEhDIsG*tGXkD2GMZUNFJ<-tLBISY=#~uf8|*R#Uy8`z-SxuY%3S8gX3V61#kv zO?;A;j}Acp*?nPotUy&AEuV5^fu?sQ7O#!E1Y) znV$czR>hWHN6jB>I>hd$vJUSF)hw!;RL6|v;#I>1RlI56^(gPE*tGu_10a}(p|yBF zILgzb-$Mks+D^g9#iQW+<4Q!VsAkdLsdm%e4fT=~wr}E>YS_p(X1EwX@%iiU`zM*; ztlhP$56XU39jaL?akmkhzKAooMzReUd)m7!S-I`Z2Z{qb3r(FP+r?UC|JBGo63I8dGOMslYgro1<1x+D0qAC!|VC9g6+$QP|#w`W2{l{IwQUiFmB z)V78iY0~h4KHKnCFe+R2f!ghFyV)C6c;Ye?efR~uUi39&9lHTS@e&xTMVFST{>>kn z`<&15fUfKf{3+!5>edoI|ISTaeY9&hI9H+OY5QCA117;d5>oF+?wj&w(zNUKew+6A zEwWBnn=%sOU!G6U(@~EJ8E#*g9_4%5Sk(HY)|LChj?pEp4L-x|k>^)y`5f=12;CQ^ zep*dOJ11m&e$(0za=cC2b$Y+I?eagZJpXa3NOc8e8>Wm2-Ad1H>JRo10gs^?)EDBg-~0_IqZYk;h|g`JJx2eCn7;v5Zwmz0P8Rcp-IE64KoP^?0m( zA=lf?XL~zhU9Yze^}B`K=?1+y?HB-;2qA70EO7Uu#DkxUgFz-7baKm5iY+RNDD)us sQ94mdQShTUQ9UEsgz{J^$0af;=}hc|!4g@9U=W7D&twK>0IL-I2d77AhX4Qo diff --git a/app/assets/images/ci_favicons/overlays/favicon_status_running.png b/app/assets/images/ci_favicons/favicon_status_running.png similarity index 100% rename from app/assets/images/ci_favicons/overlays/favicon_status_running.png rename to app/assets/images/ci_favicons/favicon_status_running.png diff --git a/app/assets/images/ci_favicons/favicon_status_skipped.ico b/app/assets/images/ci_favicons/favicon_status_skipped.ico deleted file mode 100644 index b0c26b62068063c7d9a343be7d5d2feef25a4c42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4286 zcmb_eZ%kWN6n_L0KhDJHC!-{8ukUp;`oZwcpw5I18sp?o+%USi7_-bROg9r_;)sbR zCfjh3vEbse0VZaUn3$-El86opT?~q4!fRgNdxh3<$*=d_ zKj-|;pL@@RPbHH{X2W(I3eLsAz`#?;opih1`8jQ34#k0TfqI$? z%>&A{;+c~-HZ}~J?1CMk!A3;D+2m%hPQNhTBu8FWgL1S2CO85>fm6buaw?PvqtO|-c? zAO7dALD}ifzy|S??Pje|8>l`Y|Lku3LZjSt;I6D(=<>0c5l^m0YnW5!cQ_mdiUXcm zHrAdGlBXJl{v>np?{9)9EY0%2e7gkvZ3)iYm}mT(o13}l!SDC8J;TGpkWQyzW@d(s zM@L5u^=bPIuA1>%zkwRdchV-~ZbSZ0B{=?dkm;iPW7Z1cCV8sW82?c{zok*?>mJt=iFI<6h2X0GJ7WXaWtk>|LO~JeM z6HJco`~PiJo9N9#-`%LA*m7O^iSN+FoBY0m_(a1^{=X9g@vslRzxM#__Wqpra5uZ? z%_86F?Iz#(JF=YRH}N;u1H~bqT+n+#Z`L+<8^wK#9dq9(wPyTpLGJTLe#@zNhFi6P;y}3|opdJY zUeMj7`apGv>Lk@_I)}aZHvDzJPr{gARC(22XoM2J9rKShhX2^eP3PY7dceT1+CgWs zqsztYAY1hK{r&)a^{Yo|_;Kb1l~dpIH{~GznK?KAVLB(bY6JD97Za>TooSkf`W7FY zx)uQ27hw=TNBdi(1wE&BEPRmoR;UVrDc+8ah_&HcyFsX1`^Qus_44m0nzVfS?}K$Q zt9W=$(fXr)TkE1n_501n))SE$RVJ%{ZB7wRZj_kGXy-&*Ae<#f=l$q>&i6?xtA2|| z{3*Q-!4?Rq>pS&A)pD0X_RW<)caqVsiN`_?y$-Qzxm~}{Y<%dg$cy?MSdT|)&GzP+ zv(|>+%jTa`D7U%x>*vMF#aKrE$U;iLzS|hEX7j0 zmhZRlM(}S{2jw(hIofxyHuj1td#EOIx)51)FXrIliD;=hpKmWzEUXLV^Yl+% zQNA+TeKj>uESCFau`&?T&gc6rRxjTZjxGO@?|!p=C~p_5SMQpw>E{5rGElgEkmMdk z6hnk70xtsxJ=_)=utz}&K?Na#=s`3fuu+`oJtOQxJk!8&Wek^l%6h4+XxT< diff --git a/app/assets/images/ci_favicons/overlays/favicon_status_skipped.png b/app/assets/images/ci_favicons/favicon_status_skipped.png similarity index 100% rename from app/assets/images/ci_favicons/overlays/favicon_status_skipped.png rename to app/assets/images/ci_favicons/favicon_status_skipped.png diff --git a/app/assets/images/ci_favicons/favicon_status_success.ico b/app/assets/images/ci_favicons/favicon_status_success.ico deleted file mode 100644 index b150960b5befbb2a8ae5a61cdcb64437ac9a98d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4286 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 MwB#vFA%hwG2hr)3h5!Hn diff --git a/app/assets/images/ci_favicons/overlays/favicon_status_warning.png b/app/assets/images/ci_favicons/favicon_status_warning.png similarity index 100% rename from app/assets/images/ci_favicons/overlays/favicon_status_warning.png rename to app/assets/images/ci_favicons/favicon_status_warning.png diff --git a/app/assets/images/favicon-blue.png b/app/assets/images/favicon-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..2229fe79462352e45e86a52c6c969647db689596 GIT binary patch literal 1522 zcmZ`&X;4#F6ux;`2??@`AwUT6z5AXlVNqE`r3M5shyfL(rC}EpSw&Q&5m19-L0$OE8+^U0sh;gHe5c@)AZ2Z|D{c+EC&b{}$^UXQ;tB8(T&Smr1 z003@8xI|_`!MDYtnxdp>|1A^HGD4&w0GvN$ZcL(oJ4^|eNdee_0-z`dz+l=^=m6L% z2H>q6fWTS+X6MvjS-l7VBq@4jY^do1UtHnrSM4aSbn-bwp-|AsAxt_>p&$TIu$7~j z^rb21Sb1331#oSAEo}W}<3&8rJ#*Yk=D7dlwyZ}Kc3%|QCkpLnvg|P#X~uD3v3X|Z zj&^QxySbURZYg%6beF&u*Tt6vi_W(rs)h0jb?^Lf5M_CO^M|ki4}j9 zB`?B?7wPC-EX7Xg& zb4%LL(hjDDHK7?I8i&oS?d^hPc1z;~n`>Ni>hPL-?&^nbTWZ{L>kx$Mw0?(6q5`4P zZ2co~^<%vLiGA>Djx&ZG=z^*qjtfpVw-Dwxhzc9&oLT&s9K3PZY28)|g4p;h!)qVl zbq{U)!q^T1Y~K~E;u@PLq_Nn-tZHF)EuGEbMWzuahj7gcUR0*#ya1x+K7MS#+G{b( zmWP#eV2a<^_D)nfWA0j&XzdXygN4S-pfN^NHiOCx_>O68n*rahC)DF;#SB_ugjpoq zOcHhD_^DB%`aLWmVKGS@{eU-)z=Kn$at4btVCxL<;52dKCAOc08%UT=Vig9WVT`DK z1B*ylND{~2;D4SJ6_uALdItLM+8dpDyu^*E z>1R5%TE<5`hcz|DmPCiIsH(3%hCCl19z}@XwVmR^;v2oT2BX9J(ln#AVQEiIw; z{f9Rp$o5z|Ti_iEmz(vh4qKx^tYh|Q9}b4_xzg0_9$8hjD$m+q9@7|xUN%RNyjQNW zDo?3w?V<_O*~#jkm-*W(6)D3P%a!r*)PMzTS(frmOr}1%v5=`jZmaHjigjB`%bbKgnWhc$4WoHv!jN$T$!AvpvCZ-$lMZa9$DK64aPybm@x3A^K zh?#dAf@Z;2H;1{RnenoQ^PpMo8rLnXs+?8krL4Q^Ai9u>OG=*RS!Ul%t*Ue>TcUiM zaG5RY?cvpen+b{=2_fuGN^k%@b#np7U6=AwQ$lBs>)YGogA~XoGiC2c#LBnto;`hf z$-GIvZQX0*_3OcXIK<)nw(QBF_Lc|gI=%G6`bC$$f~moF8R^q)&tGf>wv}fs^l7i< z>6e~g?b~PJLSdw2+#WL`4EL^9txk6&?ar|;vyW?i@>Vf;Tl#Ex_8&r4c4}t&_Wvg&We;SS2p}RfO49zFy!2m?`$ob5 literal 0 HcmV?d00001 diff --git a/app/assets/images/favicon-yellow.ico b/app/assets/images/favicon-yellow.ico deleted file mode 100644 index b650f277fb66d6193e27e1f2bfe59f751159270b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5430 zcmb_geM}VT8GrRIB{5da#a7(eot^!faeIy0=I+uqHTp->f7)CvX^b_ExtJJeqvmSW zhW%g>?@J3xv3K>WD6onWRspw&7A(259-_!e!6;oR7^MwRZuvM4cLv`+&&Pc#Tw?{U6^#nzqX;)X|51 zd`+}5%eu;>=lGfL*ed7QksjfSNL}Y=sJ(iea({ZL#ap3{KI}t`vv%Z;Bk$OEkz?sw zht>Ug^ z=Y|%KbvyWw!vPqfCC+hCoDdqsTNv*QeJPI-F}A}aTCBPT+@FUPZk$JGS{Xxw*qyVj zqLBaVV=Wfr*#q~J;@Q&sN<7X3IQZ~mnzOy4c=?9HH|)noD0k$)npt*VyZMbR)d}X< z^^co+j16LP))juw?RFE!-#M&~lPT;RTd>4EU%x+CUjjbBjp}ftUuP7YX=le#&Ak`x# zseWUbwQS`=z#uO6HK^M6(GQ$ReceB|?hksl8B#Dz@JrRIF=~5Y;GE@(c%y1($--vl|oSKXO33i)0@Z8mlF?VP-;y5(MeHHFZF|N{~H-!t*knlHA za#TVdJvI)xpk2-f_9Kvgs-`G^S){@RamZ0Rl$(j~dHQW7kq?AsX&CdgE2!jQ+reQi z7ugO#4udst2EUYZIb!Xlk&@@pNQM2*-rj{=Nq1PdERJD*hx-b2lswM9_b*MKeK(%R zaUVjEg8>UMQCmrO^S6q66V7ugom4)XzjMW_A+a5JW-yP#T>^Pl(YBw!weQgMv5r2> z(N4S*F9IH8Al4m{+HFOh@|~1QCza1q@X02jQTj}15ha-i@3vDkUZU=1KfjhDHarGB&La@m@~)|6+|{B}5J%T?(#+`FS%9FD&+2Ip(?DL34=mOWib z`b=>bwO1;8Am7IjBQ!pp19HN?jJ{SkdnV_1;e_`LCco~7!g(poUyAQF>Y~AUa-M>- z2G138%68=QByIKXu^;~YDGu-sh((Ts`G5vrFEug0sauO{zbvnMqtGyW74|6+2l}qF z%30I2aqUb0lUAQA8A{N{al6jIv!KpLEm5ms_S&*7m79bRJZE@b)V_GhpNF$nrCay- z{4MX?Nvm&pr#Dd_*8rXy{+#YvP<2o~NGmDk`e#&f4U`|A3e zimp>TVD#&Sbw@S4n>8u#W_m5is`J~&~`681bk23z@P+PSM^u$7G@=_~sH z?{`@x<&7y}m01d#*cc`nj<0_h-~+--{&c|(yZl!^wqtiM;HIpe|#?XqvGMC>>nSb>>SrC0(oP2ZKRk_H{*#>!`LF|E&pkZZPHdoywsvb9009nP>8KO}w!!m~aoUo_j5- zp0Q*-cQd|!>-Dj2@!oAS@~Ca-OL|Xd3m$G(`;Dc|JFvsZpQ+9H2l9t10BZ^Sg7_&2u+d`mZ;dnHvo>$`K;h_`rq z`%_`(;xl`DBSt>6w diff --git a/app/assets/images/favicon-yellow.png b/app/assets/images/favicon-yellow.png new file mode 100644 index 0000000000000000000000000000000000000000..2d5289818b47e3da5d8902302d01024acd26c7d8 GIT binary patch literal 1667 zcmZ`&Yfuwc6kd^PQK?i#F`MTm*%c8D4;=+M6$eDBPz?AeDhd?QR*Pb^LJ|l8Q4tW) zBG6PN1c*X-iGWDZk*81+pdb>F0zz6T#Dr(uT_#SfC&zyVR&)3Ux z8EF{+0G8f+Jh%kY7uM&CiRd9qY9h!y+}+0=0LpGI$AdpxxD4IH^#Oor7yv{G0Duxl zqQ3#)A_oA*P5^*QCIGBEC#l)*1^{Nwe)|GEiGtbLS(!|xR4V(TX&OFN6TJYHkoEV;R`Q-BN*0#lhtudrWLFL8ynD5MWX z)80f=-|#5})B>_f2+Fv&GA>sw0M*3)>^9R&{&>8daG%wf*u#{w1J6OUN%Ya{bX`m#QUwmo+9!4*UaBX2;c<>RsiE=2v!c`3ItOix#8>Q%Mb!NVe5-dfp`gmJ%tGg zUJ4ie09KqM;|*b06@pd4^F_`T7i?;y$ap1;S0gpiWM$0P^-&bO9KmW4{4r85ptcJc zn8FULL2!j_yNJ;f@6eS@CsG1k$&4P+#{Ogmq3utBv?**tf;~g9$A~tCsk^xWFW*YI z!b;(Jg{|&3bLKt^Er8KHcmM-nInb*ZlKuf?e8|RX;F)~3K?dnEAl)yFnLO5lndb;v0Z&Vrh6j); z4s4GDr=(2uF>F+@C#BH9Rce1C)gXn4N6pDuhFoYoo$*f^V^+?_D&c7v%kUf2Dk4qi zGSNx|t3%KdcuESrPN4K8P$s3!PsQ+GDRgZzeNN8)m<4^zgl6)XXgM;K%T&iv)MC(( z17SqRl*p%t@X$5-&~@5mE;N_N(%pt8ZZoiIWKsqh?n9HgETZRVG5j`>+INMDDqy3G zJ$92Zmdcouv1W3ZhF_r;5y_AR{UIiIiphptruGJXG>L99nf7)jejr9UnaB0@Cm5)F zQB!Ng&5Wq;(SwIeYb&eA^*SBwylHb%W?K52f&Ts#M$~2%imnQYJawk&MT36Q+)O`d z=8`SR-kFW#(!mib4o3=FRg<$FU4acvL2eaBW93ep{PA%)DY<_j%`B(`?+V%6Vr+3- zQK8dUuedgr?5oAKT&e~|`{@-ZT77BOD6ng_Jwn)76tdULW1R8yF-Rm!dEP#rONY%Z zEZ5Q!GrLw1UySqp|J+7rQ$4VEIM^jFm zaO(wl6HS*l*t}85O$l=<{p)vggE)t;o|C9maH!1ev#hJjthZ%Bp31M5H74=bU$6l0 z@YH+z&g5D8FL}|d^jrHt65P5t;M|q~bNNWNo!8=qfHLiY(6j?>4n2zw)CbDFiw>qf z^vO?s;&=D(S6h1{cIF2&FAP*$l;yX}PJh9*|NTlv(v$QiudLVFU0|c8OH%TiRwSlwSQYWH z{_vl`d1rS`LufI6S!#~>CW&H-o?Ag5?wA)GyW-S!&*$YS0K8WCUb1_nw(wk>`5cfz^l0C2F}|GL_6@NSscp9D`KjJKT4vyN$~?){X?`Zx(A+PR|EEEf+Ty_PQ;P zaNc_3d6b=a-RAO`kQ;Xs{{HA_YRcEWxWB0uE8m&v}#)S literal 0 HcmV?d00001 diff --git a/app/assets/images/favicon.ico b/app/assets/images/favicon.ico deleted file mode 100644 index 3479cbbb46f60e2a0d1b830d07e4b9cdaf8180db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5430 zcmd5=-D_M$6u&Vpq4;1$B!p5-DVclM7ykfXl5SEgVq<6`NGWSS(%8m)HK46&O^a2j z!PpkmwIY(E}~_!o%yAbF4?!6zy0W{qL4^pQ+`x%oOJ5otkonvvk7WkZvS$Vy4$dv8>|L9)uON%rzhZuO8QX)H%d_vGH)uQTNX`mJW_Wl{ zlCz_$dB`lxIYK9Hy(Kv?u46GPftCxLhF+h|^{yq?9vpfn)<7|wfqhJHknSDe8DJV9 zUd}GUKWqVq;uij4Z|wb3aEiH$;CFqI%^$#zVtfU1@j&`)2RL?v4t`5|}UQ z^<+#ovDQR+M2_!;_fW0{re$u`7F@N^`z1&ZbE5zUC}+c}o!ZCT1x0T}&Ox>dAX`FM z%Ka_ob^zpuP@;$Nec*S$jekr!L3-gx@_ooDzFNPHI>!76Fs90=57|y&hhOd=L#IL2 z(=^T>2UKSofo4F~ne(DHL7@Ej0>Ko3@um8%U1ZR)n$`*h;-S+`s@1HtoY_x z!hWK0uu12dek7OEqbnv$SU<4qPsTs$LIb;PFR*j#R(RiErqMocvJXVfNTYV_#=OW) zwYjWD51b;mXnO(9KCzeC$wxfgn&RP>Bx?G)!!Fq?*aNCvC&b?Ti*bN61l$80)I^h= zu(*!eFKSLplIzjGbD~Cmi8-%+R+B8k8*R0?+fTtP92fk_pm;?M+UL?%@2!r3Eic=xC8oW4lyR6A4BWf zep=2?keqx2+kmuZPyRXk(DO}qXf$im{VUc_IlvyU?p0IVb99fLw=>>ZaBbuEEK5A1 zJuLf;V$S`h<95{Z>&8C`zH#vNqIK_JZnUTK;_S(qkNXL-48y(%9n!sAI14fcY7fzx zgW|wjf!2M)^X=aIbe6sakK&v7@dha7UdGV;5czlHJAuQ-!MlXcfa;(6-vcGzD8}`` z3Q(#```BN2dx*8^$JcV$`(o~;f3*7BS$7Y-Jh1`T-@rL=zX_E)17Gwes{;;se&u;_ z^(gPBv35FBl5cRGhxey*g?(3i(|#Bo3&r(I8{)X-TUWerHizLm=lL(jN4`J9p38TW zGXoD%X;A%}7d+tllBWeLV zzJ@oq_a>J1vOS9!-1Yuk@E@}evn!|_RKux;_<^+>9rLL5;(ZzT?G<96TGYA7+0gn% z9^xe*<4y+OL?659gp7`~sEOdWaF=HSumag~_|@4c{CC06fz4pFrXsLGO$_8CA9=47s_ZNc|b0GG=dnORVIu%24r9N+*!`R!BnH|v9= z4mezaugA{;-FhI%H&n$tzK|=wt$z$2S`WSZiBDaV>^}>6$sOSNNO?9g4yrd(e*S95 zu$}YqDMy4B2qi~g>pyp#XrW;W0n^K?mnOXog_8yuGuzBA}o+{>5t zCe@tL-=uXxyw%EJ|D59gW%M_kdp{R+rh$?g;n&&97+enkn3VsYnw*0keY?ZJW9ObY UJ-#T~Ug_ii)GGf9_)oh30I9}9&;S4c diff --git a/app/assets/images/favicon.png b/app/assets/images/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..845e0ec34a513a2c35702b4a2390f33f1732d6e2 GIT binary patch literal 1611 zcmah|4^WJ082{R}Hjy~Gm9wc)@9tu?Wt7QvZfjE;rGFg4s%>+rt*}ZZDMXnq#juE^ zltaj$F|IResMA!}#Toh2X?M#?Y1Otq+xLET@7KwlnQm_8`QAUj_j#V*^ZefT%MJ|i zv9y?Jfnk`X*jE&cW;^OLr=w9+np20SahrwyLJX_Sn+U@h)S=Wj*dN1E0EX?^hhc*V z+Vcj(b_g)+?IsL!S78_{q44LRZ!wIP5V#`Ldw6(QC4lMWYdZ$q({c>4&%aefXoN59FS!ImH?Oza2fa*1>mlcEkcl$ z0=N|*Mj{r#Z6ioAfO7C|6}KyZ3yVfQkAe?U4j##Ys!;^R=1`u97w#PacY>|}UUv|e zO8d8+2QUsXat1bWVEiap0*G@X>q4OQ=8jpnGr=I7)k)`-}6u&m;g|}pQ+yla&^mj5H{SwY6Bnzm8ydlJ%J>qi# z45fkBVjfbD(ybI2BRG8$4uOcyQYsCpz`!mJJP(Ndj{2=!>W(}qXYw#WEs*h4CFn+w z8a<)hp{)QS%@MntDv#1Oj%t>oM$Mu+w@^8?NV;->ZWC2PWsU(vG#ErjDF8h-^VsGp z^eC??f&)U#=-cIzn8)3(m^RF*PK-m@$$H}56O)=v&Sp-NrAza*^}05eRa*GwdVE}IG11m;RW~U^zZF|75{52rP=?4- zrwON=X%93H=34f~)o#c;$DeL7PF|^*T$B5C62G_CCBtF*$(Z{N4!_&o%RbSxf7v?Q zKb>x0?P=_N$*vx*4laqhzWP$)q)Q=g$v=2pUjNi5_HaSFn~Yf0^_EC{ zBQ*BRj34u}_)X^*wMBWwT5k>un^U5!f8OtY>$Ky7mW?#_ibp}T)0!oUD1OEA$Tn+h zyRv^qk%tLi=Gx5?*DNzFTIJGG)b;%>?ko3z2Y#5cOo!zSYaGn>qez2mKHX4YQA z{TgO`7vWHS!D_+nYD48X|HVtwRu{w!s46k7-><2bHT$mL%gFBZJ5lOC{^1`tc_C?@ z9*u6APHgg?mDzRwoGe4Deh2TX~qpo?vl%|Y3v&=jEj`Sy&Nn9lw3G13vVt(kO zu%@CR*GmfrNV=t!S-YBlZhI(~iTqWM>pFQx3`VMVpf zvzFhu^<8j{w^!1_$imjL+-q%u#Ga!Ys%CAuJh`>$R%YtrO1B4ItvXjo$kJ`!yzVg4 z_ctDzq-{@nkmI#cuNJiAm!x!7wWw!AtF?96M-GcC{(Z_I7i+gJic z%Z{H^IZm8mX70S_Pl}!vT0d33tX5v!?Zl3IR3RyTk<^=|&!Arvy(XDfv&jX!)+_lt z`v;yGSWjNO|7zpiEVuVgzoZ?vgJwxWSKAY7Y4_3Faa4G(QACC-WbV>!GBjZ>0%teA zU=iP05bEsgzEI%4&}E*$#a$q1>@BbTB0wG=86B1U-vM`T%uYrDnAkf&bj5R1=3lz0 B24(;N literal 0 HcmV?d00001 diff --git a/app/assets/javascripts/favicon_admin.js b/app/assets/javascripts/favicon_admin.js index 6b2dcf4502e..97e87054ce0 100644 --- a/app/assets/javascripts/favicon_admin.js +++ b/app/assets/javascripts/favicon_admin.js @@ -4,7 +4,7 @@ export default class FaviconAdmin { constructor() { const faviconContainer = $('.js-favicons'); const faviconUrl = faviconContainer.data('favicon'); - const overlayUrls = faviconContainer.data('status-overlays'); + const overlayUrls = faviconContainer.data('status-overlays') || []; overlayUrls.forEach((statusOverlay) => { createOverlayIcon(faviconUrl, statusOverlay).then((faviconWithOverlayUrl) => { diff --git a/app/assets/javascripts/vue_shared/components/file_icon/file_icon_map.js b/app/assets/javascripts/vue_shared/components/file_icon/file_icon_map.js index 9ffbaae3ea5..9bca1993ccc 100644 --- a/app/assets/javascripts/vue_shared/components/file_icon/file_icon_map.js +++ b/app/assets/javascripts/vue_shared/components/file_icon/file_icon_map.js @@ -513,7 +513,7 @@ const fileNameIcons = { 'credits.md': 'credits', 'credits.md.rendered': 'credits', '.flowconfig': 'flow', - 'favicon.ico': 'favicon', + 'favicon.png': 'favicon', 'karma.conf.js': 'karma', 'karma.conf.ts': 'karma', 'karma.conf.coffee': 'karma', diff --git a/app/models/project_services/jira_service.rb b/app/models/project_services/jira_service.rb index eb3261c902f..2edfe7d81f8 100644 --- a/app/models/project_services/jira_service.rb +++ b/app/models/project_services/jira_service.rb @@ -265,7 +265,7 @@ class JiraService < IssueTrackerService title: title, status: status, icon: { - title: 'GitLab', url16x16: asset_url('favicon.ico', host: gitlab_config.url) + title: 'GitLab', url16x16: asset_url('favicon.png', host: gitlab_config.url) } } } diff --git a/doc/user/reserved_names.md b/doc/user/reserved_names.md index 50ec99be48b..6c1378560ef 100644 --- a/doc/user/reserved_names.md +++ b/doc/user/reserved_names.md @@ -58,7 +58,7 @@ Currently the following names are reserved as top level groups: - dashboard - deploy.html - explore -- favicon.ico +- favicon.png - groups - header_logo_dark.png - header_logo_light.png diff --git a/lib/gitlab/favicon.rb b/lib/gitlab/favicon.rb index e28d4c67661..d0178d0fdf9 100644 --- a/lib/gitlab/favicon.rb +++ b/lib/gitlab/favicon.rb @@ -3,16 +3,15 @@ module Gitlab class << self def main return custom_favicon_url(appearance_favicon.favicon_main.url) if appearance_favicon.exists? - return 'favicon-yellow.ico' if Gitlab::Utils.to_boolean(ENV['CANARY']) - return 'favicon-blue.ico' if Rails.env.development? + return ActionController::Base.helpers.image_path('favicon-yellow.png') if Gitlab::Utils.to_boolean(ENV['CANARY']) + return ActionController::Base.helpers.image_path('favicon-blue.png') if Rails.env.development? - 'favicon.ico' + ActionController::Base.helpers.image_path('favicon.png') end def status_overlay(status_name) path = File.join( 'ci_favicons', - 'overlays', "#{status_name}.png" ) @@ -27,7 +26,7 @@ module Gitlab def available_status_names @available_status_names ||= begin - Dir.glob(Rails.root.join('app', 'assets', 'images', 'ci_favicons', 'overlays', "*.png")) + Dir.glob(Rails.root.join('app', 'assets', 'images', 'ci_favicons', '*.png')) .map { |file| File.basename(file, '.png') } .sort end diff --git a/lib/gitlab/path_regex.rb b/lib/gitlab/path_regex.rb index 4dc38aae61e..e5191f5c7f9 100644 --- a/lib/gitlab/path_regex.rb +++ b/lib/gitlab/path_regex.rb @@ -30,7 +30,7 @@ module Gitlab dashboard deploy.html explore - favicon.ico + favicon.png files groups health_check diff --git a/public/favicon.ico b/public/favicon.ico deleted file mode 100644 index 3479cbbb46f60e2a0d1b830d07e4b9cdaf8180db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5430 zcmd5=-D_M$6u&Vpq4;1$B!p5-DVclM7ykfXl5SEgVq<6`NGWSS(%8m)HK46&O^a2j z!PpkmwIY(E}~_!o%yAbF4?!6zy0W{qL4^pQ+`x%oOJ5otkonvvk7WkZvS$Vy4$dv8>|L9)uON%rzhZuO8QX)H%d_vGH)uQTNX`mJW_Wl{ zlCz_$dB`lxIYK9Hy(Kv?u46GPftCxLhF+h|^{yq?9vpfn)<7|wfqhJHknSDe8DJV9 zUd}GUKWqVq;uij4Z|wb3aEiH$;CFqI%^$#zVtfU1@j&`)2RL?v4t`5|}UQ z^<+#ovDQR+M2_!;_fW0{re$u`7F@N^`z1&ZbE5zUC}+c}o!ZCT1x0T}&Ox>dAX`FM z%Ka_ob^zpuP@;$Nec*S$jekr!L3-gx@_ooDzFNPHI>!76Fs90=57|y&hhOd=L#IL2 z(=^T>2UKSofo4F~ne(DHL7@Ej0>Ko3@um8%U1ZR)n$`*h;-S+`s@1HtoY_x z!hWK0uu12dek7OEqbnv$SU<4qPsTs$LIb;PFR*j#R(RiErqMocvJXVfNTYV_#=OW) zwYjWD51b;mXnO(9KCzeC$wxfgn&RP>Bx?G)!!Fq?*aNCvC&b?Ti*bN61l$80)I^h= zu(*!eFKSLplIzjGbD~Cmi8-%+R+B8k8*R0?+fTtP92fk_pm;?M+UL?%@2!r3Eic=xC8oW4lyR6A4BWf zep=2?keqx2+kmuZPyRXk(DO}qXf$im{VUc_IlvyU?p0IVb99fLw=>>ZaBbuEEK5A1 zJuLf;V$S`h<95{Z>&8C`zH#vNqIK_JZnUTK;_S(qkNXL-48y(%9n!sAI14fcY7fzx zgW|wjf!2M)^X=aIbe6sakK&v7@dha7UdGV;5czlHJAuQ-!MlXcfa;(6-vcGzD8}`` z3Q(#```BN2dx*8^$JcV$`(o~;f3*7BS$7Y-Jh1`T-@rL=zX_E)17Gwes{;;se&u;_ z^(gPBv35FBl5cRGhxey*g?(3i(|#Bo3&r(I8{)X-TUWerHizLm=lL(jN4`J9p38TW zGXoD%X;A%}7d+tllBWeLV zzJ@oq_a>J1vOS9!-1Yuk@E@}evn!|_RKux;_<^+>9rLL5;(ZzT?G<96TGYA7+0gn% z9^xe*<4y+OL?659gp7`~sEOdWaF=HSumag~_|@4c{CC06fz4pFrXsLGO$_8CA9=47s_ZNc|b0GG=dnORVIu%24r9N+*!`R!BnH|v9= z4mezaugA{;-FhI%H&n$tzK|=wt$z$2S`WSZiBDaV>^}>6$sOSNNO?9g4yrd(e*S95 zu$}YqDMy4B2qi~g>pyp#XrW;W0n^K?mnOXog_8yuGuzBA}o+{>5t zCe@tL-=uXxyw%EJ|D59gW%M_kdp{R+rh$?g;n&&97+enkn3VsYnw*0keY?ZJW9ObY UJ-#T~Ug_ii)GGf9_)oh30I9}9&;S4c diff --git a/public/favicon.png b/public/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..845e0ec34a513a2c35702b4a2390f33f1732d6e2 GIT binary patch literal 1611 zcmah|4^WJ082{R}Hjy~Gm9wc)@9tu?Wt7QvZfjE;rGFg4s%>+rt*}ZZDMXnq#juE^ zltaj$F|IResMA!}#Toh2X?M#?Y1Otq+xLET@7KwlnQm_8`QAUj_j#V*^ZefT%MJ|i zv9y?Jfnk`X*jE&cW;^OLr=w9+np20SahrwyLJX_Sn+U@h)S=Wj*dN1E0EX?^hhc*V z+Vcj(b_g)+?IsL!S78_{q44LRZ!wIP5V#`Ldw6(QC4lMWYdZ$q({c>4&%aefXoN59FS!ImH?Oza2fa*1>mlcEkcl$ z0=N|*Mj{r#Z6ioAfO7C|6}KyZ3yVfQkAe?U4j##Ys!;^R=1`u97w#PacY>|}UUv|e zO8d8+2QUsXat1bWVEiap0*G@X>q4OQ=8jpnGr=I7)k)`-}6u&m;g|}pQ+yla&^mj5H{SwY6Bnzm8ydlJ%J>qi# z45fkBVjfbD(ybI2BRG8$4uOcyQYsCpz`!mJJP(Ndj{2=!>W(}qXYw#WEs*h4CFn+w z8a<)hp{)QS%@MntDv#1Oj%t>oM$Mu+w@^8?NV;->ZWC2PWsU(vG#ErjDF8h-^VsGp z^eC??f&)U#=-cIzn8)3(m^RF*PK-m@$$H}56O)=v&Sp-NrAza*^}05eRa*GwdVE}IG11m;RW~U^zZF|75{52rP=?4- zrwON=X%93H=34f~)o#c;$DeL7PF|^*T$B5C62G_CCBtF*$(Z{N4!_&o%RbSxf7v?Q zKb>x0?P=_N$*vx*4laqhzWP$)q)Q=g$v=2pUjNi5_HaSFn~Yf0^_EC{ zBQ*BRj34u}_)X^*wMBWwT5k>un^U5!f8OtY>$Ky7mW?#_ibp}T)0!oUD1OEA$Tn+h zyRv^qk%tLi=Gx5?*DNzFTIJGG)b;%>?ko3z2Y#5cOo!zSYaGn>qez2mKHX4YQA z{TgO`7vWHS!D_+nYD48X|HVtwRu{w!s46k7-><2bHT$mL%gFBZJ5lOC{^1`tc_C?@ z9*u6APHgg?mDzRwoGe4Deh2TX~qpo?vl%|Y3v&=jEj`Sy&Nn9lw3G13vVt(kO zu%@CR*GmfrNV=t!S-YBlZhI(~iTqWM>pFQx3`VMVpf zvzFhu^<8j{w^!1_$imjL+-q%u#Ga!Ys%CAuJh`>$R%YtrO1B4ItvXjo$kJ`!yzVg4 z_ctDzq-{@nkmI#cuNJiAm!x!7wWw!AtF?96M-GcC{(Z_I7i+gJic z%Z{H^IZm8mX70S_Pl}!vT0d33tX5v!?Zl3IR3RyTk<^=|&!Arvy(XDfv&jX!)+_lt z`v;yGSWjNO|7zpiEVuVgzoZ?vgJwxWSKAY7Y4_3Faa4G(QACC-WbV>!GBjZ>0%teA zU=iP05bEsgzEI%4&}E*$#a$q1>@BbTB0wG=86B1U-vM`T%uYrDnAkf&bj5R1=3lz0 B24(;N literal 0 HcmV?d00001 diff --git a/spec/controllers/projects/jobs_controller_spec.rb b/spec/controllers/projects/jobs_controller_spec.rb index a08fcea27a5..06c8a432561 100644 --- a/spec/controllers/projects/jobs_controller_spec.rb +++ b/spec/controllers/projects/jobs_controller_spec.rb @@ -265,7 +265,7 @@ describe Projects::JobsController, :clean_gitlab_redis_shared_state do expect(json_response['text']).to eq status.text expect(json_response['label']).to eq status.label expect(json_response['icon']).to eq status.icon - expect(json_response['favicon']).to match_asset_path "/assets/ci_favicons/#{status.favicon}.ico" + expect(json_response['favicon']).to match_asset_path "/assets/ci_favicons/#{status.favicon}.png" end end diff --git a/spec/controllers/projects/merge_requests_controller_spec.rb b/spec/controllers/projects/merge_requests_controller_spec.rb index 6e8de6db9c3..eb83884d54e 100644 --- a/spec/controllers/projects/merge_requests_controller_spec.rb +++ b/spec/controllers/projects/merge_requests_controller_spec.rb @@ -681,7 +681,7 @@ describe Projects::MergeRequestsController do expect(json_response['text']).to eq status.text expect(json_response['label']).to eq status.label expect(json_response['icon']).to eq status.icon - expect(json_response['favicon']).to match_asset_path "/assets/ci_favicons/#{status.favicon}.ico" + expect(json_response['favicon']).to match_asset_path "/assets/ci_favicons/#{status.favicon}.png" end end diff --git a/spec/controllers/projects/pipelines_controller_spec.rb b/spec/controllers/projects/pipelines_controller_spec.rb index 9e7bc20a6d1..c524f5d7f8a 100644 --- a/spec/controllers/projects/pipelines_controller_spec.rb +++ b/spec/controllers/projects/pipelines_controller_spec.rb @@ -190,7 +190,7 @@ describe Projects::PipelinesController do expect(json_response['text']).to eq status.text expect(json_response['label']).to eq status.label expect(json_response['icon']).to eq status.icon - expect(json_response['favicon']).to match_asset_path("/assets/ci_favicons/#{status.favicon}.ico") + expect(json_response['favicon']).to match_asset_path("/assets/ci_favicons/#{status.favicon}.png") end end diff --git a/spec/features/merge_request/user_creates_image_diff_notes_spec.rb b/spec/features/merge_request/user_creates_image_diff_notes_spec.rb index 7c4fd25bb39..25c408516d1 100644 --- a/spec/features/merge_request/user_creates_image_diff_notes_spec.rb +++ b/spec/features/merge_request/user_creates_image_diff_notes_spec.rb @@ -12,7 +12,7 @@ feature 'Merge request > User creates image diff notes', :js do # Stub helper to return any blob file as image from public app folder. # This is necessary to run this specs since we don't display repo images in capybara. allow_any_instance_of(DiffHelper).to receive(:diff_file_blob_raw_url).and_return('/apple-touch-icon.png') - allow_any_instance_of(DiffHelper).to receive(:diff_file_old_blob_raw_url).and_return('/favicon.ico') + allow_any_instance_of(DiffHelper).to receive(:diff_file_old_blob_raw_url).and_return('/favicon.png') end context 'create commit diff notes' do diff --git a/spec/javascripts/jobs/mock_data.js b/spec/javascripts/jobs/mock_data.js index 25ca8eb6c0b..dd025255bd1 100644 --- a/spec/javascripts/jobs/mock_data.js +++ b/spec/javascripts/jobs/mock_data.js @@ -20,7 +20,7 @@ export default { group: 'success', has_details: true, details_path: '/root/ci-mock/-/jobs/4757', - favicon: '/assets/ci_favicons/dev/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.ico', + favicon: '/assets/ci_favicons/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.png', action: { icon: 'retry', title: 'Retry', @@ -78,7 +78,7 @@ export default { group: 'success', has_details: true, details_path: '/root/ci-mock/pipelines/140', - favicon: '/assets/ci_favicons/dev/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.ico', + favicon: '/assets/ci_favicons/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.png', }, duration: 6, finished_at: '2017-06-01T17:32:00.042Z', diff --git a/spec/javascripts/pipelines/graph/mock_data.js b/spec/javascripts/pipelines/graph/mock_data.js index 70eba98e939..9e25a4b3fed 100644 --- a/spec/javascripts/pipelines/graph/mock_data.js +++ b/spec/javascripts/pipelines/graph/mock_data.js @@ -20,7 +20,7 @@ export default { has_details: true, details_path: '/root/ci-mock/pipelines/123', favicon: - '/assets/ci_favicons/dev/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.ico', + '/assets/ci_favicons/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.png', }, duration: 9, finished_at: '2017-04-19T14:30:27.542Z', @@ -40,7 +40,7 @@ export default { has_details: true, details_path: '/root/ci-mock/builds/4153', favicon: - '/assets/ci_favicons/dev/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.ico', + '/assets/ci_favicons/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.png', action: { icon: 'retry', title: 'Retry', @@ -65,7 +65,7 @@ export default { has_details: true, details_path: '/root/ci-mock/builds/4153', favicon: - '/assets/ci_favicons/dev/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.ico', + '/assets/ci_favicons/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.png', action: { icon: 'retry', title: 'Retry', @@ -85,7 +85,7 @@ export default { has_details: true, details_path: '/root/ci-mock/pipelines/123#test', favicon: - '/assets/ci_favicons/dev/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.ico', + '/assets/ci_favicons/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.png', }, path: '/root/ci-mock/pipelines/123#test', dropdown_path: '/root/ci-mock/pipelines/123/stage.json?stage=test', @@ -105,7 +105,7 @@ export default { has_details: true, details_path: '/root/ci-mock/builds/4166', favicon: - '/assets/ci_favicons/dev/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.ico', + '/assets/ci_favicons/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.png', action: { icon: 'retry', title: 'Retry', @@ -130,7 +130,7 @@ export default { has_details: true, details_path: '/root/ci-mock/builds/4166', favicon: - '/assets/ci_favicons/dev/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.ico', + '/assets/ci_favicons/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.png', action: { icon: 'retry', title: 'Retry', @@ -152,7 +152,7 @@ export default { has_details: true, details_path: '/root/ci-mock/builds/4159', favicon: - '/assets/ci_favicons/dev/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.ico', + '/assets/ci_favicons/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.png', action: { icon: 'retry', title: 'Retry', @@ -177,7 +177,7 @@ export default { has_details: true, details_path: '/root/ci-mock/builds/4159', favicon: - '/assets/ci_favicons/dev/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.ico', + '/assets/ci_favicons/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.png', action: { icon: 'retry', title: 'Retry', @@ -197,7 +197,7 @@ export default { has_details: true, details_path: '/root/ci-mock/pipelines/123#deploy', favicon: - '/assets/ci_favicons/dev/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.ico', + '/assets/ci_favicons/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.png', }, path: '/root/ci-mock/pipelines/123#deploy', dropdown_path: '/root/ci-mock/pipelines/123/stage.json?stage=deploy', diff --git a/spec/lib/gitlab/favicon_spec.rb b/spec/lib/gitlab/favicon_spec.rb index 22b9c631ed8..fdc5c0180e4 100644 --- a/spec/lib/gitlab/favicon_spec.rb +++ b/spec/lib/gitlab/favicon_spec.rb @@ -2,19 +2,19 @@ require 'rails_helper' RSpec.describe Gitlab::Favicon, :request_store do describe '.main' do - it 'defaults to favicon.ico' do + it 'defaults to favicon.png' do allow(Rails).to receive(:env).and_return(ActiveSupport::StringInquirer.new('production')) - expect(described_class.main).to eq 'favicon.ico' + expect(described_class.main).to match_asset_path '/assets/favicon.png' end it 'has blue favicon for development' do allow(Rails).to receive(:env).and_return(ActiveSupport::StringInquirer.new('development')) - expect(described_class.main).to eq 'favicon-blue.ico' + expect(described_class.main).to match_asset_path '/assets/favicon-blue.png' end it 'has yellow favicon for canary' do stub_env('CANARY', 'true') - expect(described_class.main).to eq 'favicon-yellow.ico' + expect(described_class.main).to match_asset_path 'favicon-yellow.png' end it 'uses the custom favicon if a favicon appearance is present' do @@ -27,7 +27,7 @@ RSpec.describe Gitlab::Favicon, :request_store do subject { described_class.status_overlay('favicon_status_created') } it 'returns the overlay for the status' do - expect(subject).to eq '/assets/ci_favicons/overlays/favicon_status_created.png' + expect(subject).to match_asset_path '/assets/ci_favicons/favicon_status_created.png' end end diff --git a/spec/models/project_services/jira_service_spec.rb b/spec/models/project_services/jira_service_spec.rb index 54ef0be67ff..3a6a6c116c2 100644 --- a/spec/models/project_services/jira_service_spec.rb +++ b/spec/models/project_services/jira_service_spec.rb @@ -173,7 +173,7 @@ describe JiraService do object: { url: "#{Gitlab.config.gitlab.url}/#{project.full_path}/commit/#{merge_request.diff_head_sha}", title: "GitLab: Solved by commit #{merge_request.diff_head_sha}.", - icon: { title: "GitLab", url16x16: "http://localhost/favicon.ico" }, + icon: { title: "GitLab", url16x16: "http://localhost/favicon.png" }, status: { resolved: true } } ) diff --git a/spec/serializers/build_serializer_spec.rb b/spec/serializers/build_serializer_spec.rb index 98cd15e248b..52459cd369d 100644 --- a/spec/serializers/build_serializer_spec.rb +++ b/spec/serializers/build_serializer_spec.rb @@ -39,7 +39,7 @@ describe BuildSerializer do expect(subject[:label]).to eq('failed') expect(subject[:tooltip]).to eq('failed
(unknown failure)') expect(subject[:icon]).to eq(status.icon) - expect(subject[:favicon]).to match_asset_path("/assets/ci_favicons/#{status.favicon}.ico") + expect(subject[:favicon]).to match_asset_path("/assets/ci_favicons/#{status.favicon}.png") end end @@ -54,7 +54,7 @@ describe BuildSerializer do expect(subject[:label]).to eq('passed') expect(subject[:tooltip]).to eq('passed') expect(subject[:icon]).to eq(status.icon) - expect(subject[:favicon]).to match_asset_path("/assets/ci_favicons/#{status.favicon}.ico") + expect(subject[:favicon]).to match_asset_path("/assets/ci_favicons/#{status.favicon}.png") end end end diff --git a/spec/serializers/pipeline_serializer_spec.rb b/spec/serializers/pipeline_serializer_spec.rb index b741308e2c5..33c8213f9a7 100644 --- a/spec/serializers/pipeline_serializer_spec.rb +++ b/spec/serializers/pipeline_serializer_spec.rb @@ -174,7 +174,7 @@ describe PipelineSerializer do expect(subject[:text]).to eq(status.text) expect(subject[:label]).to eq(status.label) expect(subject[:icon]).to eq(status.icon) - expect(subject[:favicon]).to match_asset_path("/assets/ci_favicons/#{status.favicon}.ico") + expect(subject[:favicon]).to match_asset_path("/assets/ci_favicons/#{status.favicon}.png") end end end diff --git a/spec/serializers/status_entity_spec.rb b/spec/serializers/status_entity_spec.rb index 559475e571c..73f81405d54 100644 --- a/spec/serializers/status_entity_spec.rb +++ b/spec/serializers/status_entity_spec.rb @@ -18,17 +18,17 @@ describe StatusEntity do it 'contains status details' do expect(subject).to include :text, :icon, :favicon, :label, :group, :tooltip expect(subject).to include :has_details, :details_path - expect(subject[:favicon]).to match_asset_path('/assets/ci_favicons/favicon_status_success.ico') + expect(subject[:favicon]).to match_asset_path('/assets/ci_favicons/favicon_status_success.png') end it 'contains a dev namespaced favicon if dev env' do allow(Rails.env).to receive(:development?) { true } - expect(entity.as_json[:favicon]).to match_asset_path('/assets/ci_favicons/dev/favicon_status_success.ico') + expect(entity.as_json[:favicon]).to match_asset_path('/assets/ci_favicons/favicon_status_success.png') end it 'contains a canary namespaced favicon if canary env' do stub_env('CANARY', 'true') - expect(entity.as_json[:favicon]).to match_asset_path('/assets/ci_favicons/canary/favicon_status_success.ico') + expect(entity.as_json[:favicon]).to match_asset_path('/assets/ci_favicons/canary/favicon_status_success.png') end end end diff --git a/spec/services/system_note_service_spec.rb b/spec/services/system_note_service_spec.rb index e28b0ea5cf2..b7f38874c26 100644 --- a/spec/services/system_note_service_spec.rb +++ b/spec/services/system_note_service_spec.rb @@ -789,7 +789,7 @@ describe SystemNoteService do object: { url: project_commit_url(project, commit), title: "GitLab: Mentioned on commit - #{commit.title}", - icon: { title: "GitLab", url16x16: "http://localhost/favicon.ico" }, + icon: { title: "GitLab", url16x16: "http://localhost/favicon.png" }, status: { resolved: false } } ) @@ -815,7 +815,7 @@ describe SystemNoteService do object: { url: project_issue_url(project, issue), title: "GitLab: Mentioned on issue - #{issue.title}", - icon: { title: "GitLab", url16x16: "http://localhost/favicon.ico" }, + icon: { title: "GitLab", url16x16: "http://localhost/favicon.png" }, status: { resolved: false } } ) @@ -841,7 +841,7 @@ describe SystemNoteService do object: { url: project_snippet_url(project, snippet), title: "GitLab: Mentioned on snippet - #{snippet.title}", - icon: { title: "GitLab", url16x16: "http://localhost/favicon.ico" }, + icon: { title: "GitLab", url16x16: "http://localhost/favicon.png" }, status: { resolved: false } } ) -- GitLab