From 93a9e9d01a8350031e5cf80a5a37539ab907c1f5 Mon Sep 17 00:00:00 2001 From: Jimmy Zelinskie Date: Thu, 19 Mar 2015 14:30:25 -0400 Subject: [PATCH] migration: add private key to build triggers --- data/database.py | 1 + ...6a8b1_add_private_key_to_build_triggers.py | 26 ++++++++++++++++++ test/data/test.db | Bin 294912 -> 294912 bytes 3 files changed, 27 insertions(+) create mode 100644 data/migrations/versions/214350b6a8b1_add_private_key_to_build_triggers.py diff --git a/data/database.py b/data/database.py index 2ddd2fada..39a142b5b 100644 --- a/data/database.py +++ b/data/database.py @@ -379,6 +379,7 @@ class RepositoryBuildTrigger(BaseModel): repository = ForeignKeyField(Repository, index=True) connected_user = QuayUserField() auth_token = CharField() + private_key = TextField(null=True) config = TextField(default='{}') write_token = ForeignKeyField(AccessToken, null=True) pull_robot = QuayUserField(allows_robots=True, null=True, related_name='triggerpullrobot') diff --git a/data/migrations/versions/214350b6a8b1_add_private_key_to_build_triggers.py b/data/migrations/versions/214350b6a8b1_add_private_key_to_build_triggers.py new file mode 100644 index 000000000..ee862f9e1 --- /dev/null +++ b/data/migrations/versions/214350b6a8b1_add_private_key_to_build_triggers.py @@ -0,0 +1,26 @@ +"""add private key to build triggers + +Revision ID: 214350b6a8b1 +Revises: 2b2529fd23ff +Create Date: 2015-03-19 14:23:52.604505 + +""" + +# revision identifiers, used by Alembic. +revision = '214350b6a8b1' +down_revision = '2b2529fd23ff' + +from alembic import op +import sqlalchemy as sa + + +def upgrade(tables): + ### commands auto generated by Alembic - please adjust! ### + op.add_column('repositorybuildtrigger', sa.Column('private_key', sa.Text(), nullable=True)) + ### end Alembic commands ### + + +def downgrade(tables): + ### commands auto generated by Alembic - please adjust! ### + op.drop_column('repositorybuildtrigger', 'private_key') + ### end Alembic commands ### diff --git a/test/data/test.db b/test/data/test.db index a7f50c8be40eb9b197578be1dcda6076df917d8b..832456ba0993591972fe69297a7befe70f24aeba 100644 GIT binary patch delta 12544 zcmeHt33OD&wsxIUosrH6nG*t}0}0`TGxs^jkc3QR=nS3CgafC$Pltp|gd`*)h6vXQ z0VPV|fZ%}0#VaV%K`wHg73Tp&h4&opeUA%H==J&(uKMrONif0T`F_{>*T4Q>)?!s> z@2c8$zS^~G54CDlJXd&bS6l5T3x$h--!6`c~J>!QqvZk}gUr^+*|?vz={>GDX5 zQx6!297vcv&15nSXfw*p!K-Jj4ISKnaak{Q|G=RcHuKc>=PRVwW0&Us^SPvfSY~tF z#5Lc&H2na##%TK~)6n?KjPZw=CFY57Ywn(&^62iWEjL~>kdwL1JUMcITW0Cv+vPRm z{$uZ_nXy#(=LjJx0KbXv!@cz9IC*b0dz=mg;^}nkpb6_RS^Uu&=reI(r7*+qA8FV@ z5q1l<1QkN3fA{^#y@D-%m%^WKkZrj*-2}g0Cly&Zjp}+>%-UuVoNkU+WjDiWs+$oN zU1FSq#4%2{u5hyMlH7ta;67q0P-Y42ESArdt*R=kkzJ^Ns$Up#sHi_A5CsMW24-Vf z;9VTg1B3#r1CFA^s8+zyBg?8)V?9=<<{5bPNOZj_+bYTy~c$*!b=PDBV{*ham%T(*_x=CtQH+La2Scz%npY6bE9imy4u$3=BlM7 z#SJapm3sH`o^p0sWmjfPS;5R^-JaVdH|Lfqdg=Vqna&=ewW_ko(=BxkEP2b)Hzb|Q zR8+;vipH)?qG4B_OU=1!Aw#KE145+k~@vw@Ocd@LK6*RZr-Kja7^$d4s zN1L;)Gp}TR=>n^jm3e!8j#SK-7TH-gk6TbuUQ;CYml7_l!wbtdXcP%Yh(9P-#+Vzf{3U_6}(giKWQdjx%Lan{1+ge>xp1Hi9 z%URmgJMh>sK42K5yAUVXk;Rb|U{*h+HB?Dg~OI6g;~)S|-D5;3p1+@6u*0=rkcO+ip{; zx#Ap$lv`=DOM;l4Z?7umtaU~C6*j)eR?6j+)K`(eBv7fOFo7yd6BiVf7IDJ-+=`Nt z99v1b)$XXzD=)7qP%7+dbzW{xWp$|{7gr9#kTYQwZWow2x2Q9UuDZY)D+;5^k_flE z#|>stk`+nr(A(Q)Y3`QB)=qs{XJ^|Iy>*lY(|Sef zpwj}^smx1ov4T~E`-l@oMv+8?ak({xRe0X2@G5zK6O}V;sYH@asA+Yo@4^))F)aL> zvU1dVIB|%T$-`hl={He9$Uz15`(+0@bvLW3aOb);&dP|IOJEdD5E;!aIX$AvvT*;A zorGEt`okQoVCB4Y_;D5q`S&oJ4&?zvQ3<{(0Zn&MD zisaEm!o5SyvcOHwO7P(f?{aB|GPAI?s&S8sGB3lzWe-m_yhBZ~SOwOjiyoel0X+ag z1+8<6Dq!LkoK{d|PLasbcc|GH3vQ>bb29iRE)E<7-f$2k&c(PTaFQ-wJ^;EO6C98?CTbUPXN zOXYQ4cez|5*>jwlkqllcuX6&()dV;^I&2-lrZ843xL2Aqc1h{sfk_<~(mt9?S6@hjsq!zR-7}A#eF1IolX>)>=sushIFE#RBF?6MWG>FL$Ne%p z_?Ov1Kf&%}XPuut@F)1A*a2hM(xf2^dVaM37`AvJ+wZ5@`iKsg#_)v;hvQ#nk2SMD z8ttv6?+sWevo=R*K?zq;&DYcll3J2oFUbyDei>KE)>bWGt5r@cC>88w3sgyQlvh+& zmlU)4MTLA>PJW)q2 z?exLm?0zaBMpfzS69zwSr>9X7?H!HXTBm;561{iIq^i8ys=@FM`YXz`4&ilhkF3Vr zQVL?_ASx&obs>sZWLXp7=4PE>F+_+}7}W(4y3@r=PPozCnnxTww4B}-KcuAaT@rki zA`SL$q#LO7L{U{(P8j@ZfL@o?H!kYosPsUTKv5or3`B9GzHf*cnKZiRqH(^SiDP>XQxnEg zFYXKSb&elPt_k!}wZGIXS`F+SPXHxBY2h9a2)Q-(At-egPx{~wrO9=o;}A17+u z$mEj3L1ID-$Hsuj;E}nFbqvv>f=0S3Vjs9ak`m_Y8x=T0AO1Wa`GLrQkttw#e2CHY zfk^*RG;WyYH;Tp%(@Y~YLwq3ZTR$GP{zNz=L*xi>wW6pXI66jGq*D zmDMB&Jvm0;ARrJSI|tr24-UQTkvtqPD4J6psCaLD-~T*aGB#T>`oj;YH3ecUH|O$@iBVV`&N#wU z5C}=WJg_AQGLDn`{nCRF%mtJ2F5b!tZjq6A9&*Y$YlVC|=V3Uvrh8nh0Ktyf*44SJ z(XF?2Gz{nWI+{COj_m4UTcf=W(s`=8ruA~M%hsm$I0~0mdz#gfrpofd#SullTv1a~ znWw39d0UyiwT&NGdL(9eRYIo1D*`L~@}PmRs<=_B;uP@cHQvg|f)0V33PF?;^0bU( zRb|fO<~;C6hYqRGk({tCr?e->+S;J8?%v*>#fuj=>x)Y>-D1HqTaQbqQ8NqbGM6

@W&S{$4C3m%U>m7}rM%_IOOiruZl3!k1BNr?vvR8LkU0#tlvo*7EzN?|B*yifa z&Ji2C)x}jaE1MRSb~jYZTwaxw+1e(J!G(piJvX#l{uk`luc-iZXszzHmQnd~S9^A| z9n!e9OSzf31&-Y6w!)S!UGCC)mgRT3E0^RnD2q#amxOXlow~D8Y%j}esjDj(Xgv}? zZ6slSzK{?CiG%=Dhw!cRr*sZ=h>Ay#qq>2J@cHKdvsD-JX*}L)4(!&<H)^T9 zo7|d!7n;pyzi5h_F)7n%HM5wW zM4P(n%|o4#$>c}4B%Bi}(x=J`UweNxLOXXq{VM58!kf)A{nKB}KH9Rc>w)8aBxNG* zG0&s-y;m!LcW3^64?RM5OvKyF0r#9c8vO908;zFOlkwJ2DJ1h`QQrOG2(7uA-Qb;s zqaw`Gntd%rAAkG(Wt->LlgS*mnWvAx_LEtEpBihlWCe#ehsLg$5-=t2U+oC3uD{Jq zCiA!_lzH)y`?8YQ1cVOtpZRyPgU8!KQ{Q^(xcE)atq9%dovjdu0N_}ZXLs`ZKK!`p zy`D?FBK8jqA4E`#+CfjIR#21BAc`e%v+=*;{i094A22DR8KDPXZtbg!9Yz5I3Nz>6 zoRGd(KSU3I_7;HPy?QHIIR}@B_YRUMipPAwjdd8oA ztv@5m>?^|cGX|W4bMeMde%67e{7NMgW|F;+5yw2dH7CaP*f*07z4cW0xqsP>EL99D zNB9_i5dQ&Rj0GG-zfTX+>uH^yO^>HeQIAubsWvK~Nj@!Gt{gk$?DpgzW%p3bm4& zjP|2A5?g}54bAlXyeF%5e`{RNh!s)#Pqgr4$Q*Sn-F^Xo2iTXQ<8=;N-{87 zSBkF>m2Us2x;W&DT?pNN-HiK4iVYM@T(UQ7f$QcQ^iQ(O$qpMR7}vi(JkNGE+GvTr z3>0kc1XEb`-``k)(8nKitoN4V@j+(km~v6^qW+KDa!)-;lIuXh)Ru>?Dfe7@#%M`z z9qeS>guH*HBx+|7x_^L3B)J|GEaYzi&Eq@TUqI+J=UaqquLlL=zhC)9fxf2_p(n3= zHG|j}g3R=dVW(#Ce~ml2g=W$TeOZll4%zSxNyD~Kzi0B8zzNKD zgdS?n5=pNHa%Vdu@~W;YUWCxD`_2WBWGBe=kBH9?yt3vTLXX_eZzS8D_^yx*_CV9Q zckcz=ygs&s*j*s@qJ77&vTqj35c=cUXL7x6L+tD=D`r%k=$(Vmi7oyglB7lui_Vnx zQRU57BDD4UwO-QO2x95Yp`YTr9$W>qu(?)}+yr97zPyt}S1;d&&>hQXE+E^R;B%Aa z+;=AJvr}G#Zn)~khlza&-WFndaD7(um$2e@cI~{y+l=Wz5ux$uONuI>CZd0i(%NA9 z1A0Hbf%edI=n2$E)RWY$R6Et~)7P?_vg3%}VOo)46ozG;lURX+d?zG38PN)PH;siv zs8!XBBq2o2Rtc>`q^%2AlI6LWA&ZuowhcVWGlNatcoRj+J8`#Yr%K?Ivwi`RSJJ`DsWjR^*2(hmK=q>L)d8x2@rx!A}%MWLHufSnZ zp%EwkcugGj=j#xC#hmZcNYYIpclx5}@fX=E;}PAYRoz8;ZvwfAZ)IMVc3H@NL}yWR z*OTOpAlH)eGZW*wfh64ma_R8gH2SX_?*y&7-1IT&y~X%m%Q3pb z^Xwg9bs8Uknj~)mxziS1f7CkZ$x9G@Ca~%x*}e(nhK+Zej!KC50MXCycp;M53CNvO z-Gv9M{n*-^KQoerlHfm-DgCTeWyMC4*YFw=%wP$2}xIcY_#=-qb`z}TX0Td z?1q1nr?_ZPMY8Ctd-_ufMxXn&Tj1QsU-3y+wv5#Z-q7DLua%6=H7GzoSK2AD(^N-o5UUzfy&T% z%`@y}*|0?&tDB&==p}Twp}U5;E9=C5<4-+@s8AGliljUQ+hT2{>q~FL zMF@R)k)KTZ9>SXw@h2~D_gj^G5}|`H(P(!I zGJ9H2@8^$@$@{?eMP}EHk6XX{WXUTlHF=-rR~&EW@( zTfoqZl~f8kfD%aT)A;*%A@z#Xg4;d-xVATL`KY%3yk?jP_YBT4r@8uGQr4EN?#P|| zEa`s+RuvNd`9C6yKCW8u{#|ED>a(~fVfL$g0vuDGnq##688xHs)j*P*2S}ZG7Pll> zKmYVyTje8QwcovCxwC(I^>DuoAEJxqLqFRixH)S&yXnY9;cuoPboU>xy*3#3ISO>; zC$-}=^~9L__Ab_QPO_Zh+S-eg(egE$iTU3yoHjiHC7D*>V_Hk@+v+G;-!J zPA3~maf)A(uiId?(XF3scmb~>aW4Qf>_xC^uRjlc7rls=`?PAHUq~e{-HX$s4QJCI z9UQq``vBL2C}}YEB}`GVv2PRxPx;Gtokm-~=sc|8xxEaYTe4;6?HRWon1|4+^#y&T z?_~g1s+&_$v}ek_TH}_#k(5{9fCVmF<{WqA$iW%miw4M!S3tE=?)Ze`jz7HIXo>w* z*lPN&mPhb|FFg+zak41RSCcj7*g6901Dou>iEiD%748J9+gSy!aJM;sp+uKMmHYt88wKRNlT z#9KCfj9tGM=l-89&RPDO;+&I(3cL3VK7lQQ#zVcGgC|9T1eH&jbu*e3>i=#PN~a!9 zbLoQa{Sy06ApVQ+Omi#PwElE33-FICA1kjWORPPqJ%vQs?? zaD}~LJw;XqnZTK>r2mTNZ2{->&yPKJ14#)s^(1EAeREWH5xp9rN0%Jf*`Luk%371b zVAIA#O69MiyuD`-y8iIgoBO9P9%ZM=%)jHCLZ@8!^_y({lTRRY-G(niyk=8eklBCD zp-+M)&Fw49?zxAgMwx8pgnwQXGtH8Gb@stWy`(S7wAq~c+?89!zs2k_T9OiN>M<+V z9hJ(aU9zX^PdnF=9nq$3<~b=xsvVm*>@r$nk1=h{9k1SdHvV+!rHGo#z4ur!ARB{9 zjTr1tcnw~N`SUTDo4yE@(viL>j8Lsq9+imBhe|P|JJvLPAemzZ|0~w?I7PO_nlcCf z9B;~_2Fiu>O@GHJ5Q>|=HmB=%U7>#Y;QQK%H=ZJ?N$?@ca;~5(B==jRg%}$?Wa86P zsf@_mZ@=Wo@h2e0Huc2M3*Yy6ZP8}4(e|fz{Q#Z;H{Q~^kZvW8 zWYbo2!m}NvQ$O71cggA**gMIT5Mfp$&cv7f$Eicrw(IwhX&gvSntj`*v`;(yjF$9s zAeq|vW)NL9ZCUK$%U>X=JU|$eyyJ;Um#yhETC$S|2rW0XuM;xx*Ie7 zQr8%*x7M`U^m~D9sJ8KYfeb2ak-rzne1)|Cu0Y29Qh{tdyf%vS)y#&9gubeocadoo zwvCJ08#5Cs!}JfuXwHh(8kOC>F_{-IWOSXucsPc+fFYr4d<^o6%M_hx^vJlNhk#c5 zdU)NYXv#eO^XJyjPA(eAZhrd%GDQb#61^hAp4=OoWwd0a4%UQCKYic)mJbtZloL;o zDITyU(?Y*UkRQA{)o95M4_K3=j)sk-!f~6!w`mPW?6SC8n(WUxP@BN&o-= delta 12541 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