<div dir="ltr">You can take control of the VM by downloading a ransomware or botnet or whatever.<div><br></div><div>You usually counter that by making sure the PR VMs are restricted in term of network access they can do, and also restricted in the number of time it is alive (basically just the time of the build)</div><div><br></div><div>Another much more simple option is to trigger the PR testing  via a PR comment from an admin.</div><div><br></div><div>If a macPort maintainer sends a message like "Go Buildbot", then buildbot would catche that a start a build, provided that the PR got basic review, and is not suspicious.</div><div><br></div><div><br></div><div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">Pierre</div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le jeu. 28 mars 2019 à 13:03, Rajdeep Bharati <<a href="mailto:rajdeepbharati13@gmail.com">rajdeepbharati13@gmail.com</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">All right. Could you please give an example of a malicious PR? Would it be one which is done (locally tested) from an old version of macOS?<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Mar 27, 2019 at 9:55 PM Mojca Miklavec <<a href="mailto:mojca@macports.org" target="_blank">mojca@macports.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Dear Rajdeep,</div><div><br></div><div>It's not just a question of how to fetch a PR. That shouldn't be too difficult, I hope (and probably the link you provided works as intended).</div><div><br></div><div>The tricky question is how to prevent malicious PRs from doing damage on the builders. I assume that a proper solution would require starting a fresh VM for each build. There is some support in the buildbot already:</div><div>    <a href="http://docs.buildbot.net/2.1.0/manual/configuration/workers-libvirt.html" target="_blank">http://docs.buildbot.net/2.1.0/manual/configuration/workers-libvirt.html</a></div><div>    <a href="https://github.com/kholia/OSX-KVM" target="_blank">https://github.com/kholia/OSX-KVM</a></div><div>but we would need to find a way to create VMs with macOS, so it might not be trivial to do it. On top of that what we would really need the PRs for are the old machines (say, 10.6, or even 10.4 if we would want to go to extremes) where it might be even less trivial to automate this in a nice way.</div><div><br></div><div>(A compromise solution would be to only allow trusted developers to test pull requests on devoted builders, where we would also need to make sure to uninstall the software after the PR is done building.)</div><div><br></div><div>While implementing this remains almost the number one requested thing when people contribute to packages, I'm not sure how much time doing this would take. It could be that this could be done in a day or a few days, but it's also possible that there would be some stumbling block that would require more hacking skills and would prevent us from proceeding, and not even two months would suffice. In one way, I wouldn't mind if a student would work on this for the full summer to get this working; on the other hand, if there's a block and none of us is skilled enough to overcome it, it makes more sense to proceed with other stuff that can certainly be done.</div><div><br></div><div>Mojca </div><div dir="ltr"><br></div><div dir="ltr"><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, 27 Mar 2019 at 16:05, Rajdeep Bharati <<a href="mailto:rajdeepbharati13@gmail.com" target="_blank">rajdeepbharati13@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div style="font-family:arial,helvetica,sans-serif">I could use the <a href="http://docs.buildbot.net/current/manual/configuration/changesources.html#chsrc-GitHubPullrequestPoller" target="_blank">GitHubPullrequestPoller</a> which periodically polls the Github API for new/updated PRs.</div><div style="font-family:arial,helvetica,sans-serif"><br></div><div style="font-family:arial,helvetica,sans-serif">Here is an example: <a href="https://github.com/halide/build_bot/blob/master/master/master.cfg" target="_blank">https://github.com/halide/build_bot/blob/master/master/master.cfg</a></div><div style="font-family:arial,helvetica,sans-serif"><br></div><div style="font-family:arial,helvetica,sans-serif"><table class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-highlight gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-tab-size gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-js-file-line-container" style="box-sizing:border-box;border-collapse:collapse;border-spacing:0px;color:rgb(36,41,46);font-family:-apple-system,system-ui,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:14px"><tbody style="box-sizing:border-box"><tr style="box-sizing:border-box"><td id="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-LC102" class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-blob-code gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-blob-code-inner gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-js-file-line" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;overflow:visible;white-space:pre-wrap">c[<span class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-pl-s" style="box-sizing:border-box;color:rgb(3,47,98)"><span class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-pl-pds" style="box-sizing:border-box">'</span>change_source<span class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-pl-pds" style="box-sizing:border-box">'</span></span>].append(GitHubPullrequestPoller(</td></tr><tr style="box-sizing:border-box"><td id="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-L103" class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-blob-num gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-js-line-number" style="box-sizing:border-box;padding:0px 10px;color:rgba(27,31,35,0.3);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;min-width:50px;text-align:right;vertical-align:top;white-space:nowrap;width:50px"></td><td id="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-LC103" class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-blob-code gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-blob-code-inner gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-js-file-line" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;overflow:visible;white-space:pre-wrap"><span class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-pl-v" style="box-sizing:border-box;color:rgb(227,98,9)">owner</span> <span class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">=</span> <span class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-pl-s" style="box-sizing:border-box;color:rgb(3,47,98)"><span class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-pl-pds" style="box-sizing:border-box">'</span>halide<span class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-pl-pds" style="box-sizing:border-box">'</span></span>,</td></tr><tr style="box-sizing:border-box"><td id="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-L104" class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-blob-num gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-js-line-number" style="box-sizing:border-box;padding:0px 10px;color:rgba(27,31,35,0.3);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;min-width:50px;text-align:right;vertical-align:top;white-space:nowrap;width:50px"></td><td id="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-LC104" class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-blob-code gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-blob-code-inner gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-js-file-line" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;overflow:visible;white-space:pre-wrap"><span class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-pl-v" style="box-sizing:border-box;color:rgb(227,98,9)">repo</span> <span class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">=</span> <span class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-pl-s" style="box-sizing:border-box;color:rgb(3,47,98)"><span class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-pl-pds" style="box-sizing:border-box">'</span>Halide<span class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-pl-pds" style="box-sizing:border-box">'</span></span>,</td></tr><tr style="box-sizing:border-box"><td id="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-L105" class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-blob-num gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-js-line-number" style="box-sizing:border-box;padding:0px 10px;color:rgba(27,31,35,0.3);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;min-width:50px;text-align:right;vertical-align:top;white-space:nowrap;width:50px"></td><td id="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-LC105" class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-blob-code gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-blob-code-inner gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-js-file-line" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;overflow:visible;white-space:pre-wrap"><span class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-pl-v" style="box-sizing:border-box;color:rgb(227,98,9)">token</span> <span class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">=</span> token,</td></tr><tr style="box-sizing:border-box"><td id="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-L106" class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-blob-num gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-js-line-number" style="box-sizing:border-box;padding:0px 10px;color:rgba(27,31,35,0.3);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;min-width:50px;text-align:right;vertical-align:top;white-space:nowrap;width:50px"></td><td id="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-LC106" class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-blob-code gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-blob-code-inner gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-js-file-line" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;overflow:visible;white-space:pre-wrap"><span class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-pl-v" style="box-sizing:border-box;color:rgb(227,98,9)">pullrequest_filter</span> <span class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">=</span> pr_filter,</td></tr><tr style="box-sizing:border-box"><td id="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-L107" class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-blob-num gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-js-line-number" style="box-sizing:border-box;padding:0px 10px;color:rgba(27,31,35,0.3);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;min-width:50px;text-align:right;vertical-align:top;white-space:nowrap;width:50px"></td><td id="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-LC107" class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-blob-code gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-blob-code-inner gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-js-file-line" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;overflow:visible;white-space:pre-wrap"><span class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-pl-v" style="box-sizing:border-box;color:rgb(227,98,9)">pollInterval</span> <span class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">=</span> <span class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">60</span><span class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">*</span><span class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">5</span>,  <span class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-pl-c" style="box-sizing:border-box;color:rgb(106,115,125)"><span class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-pl-c" style="box-sizing:border-box">#</span> Check Halide PRs every five minutes</span></td></tr><tr style="box-sizing:border-box"><td id="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-L108" class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-blob-num gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-js-line-number" style="box-sizing:border-box;padding:0px 10px;color:rgba(27,31,35,0.3);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;line-height:20px;min-width:50px;text-align:right;vertical-align:top;white-space:nowrap;width:50px"></td><td id="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-LC108" class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-blob-code gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-blob-code-inner gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-js-file-line" style="box-sizing:border-box;padding:0px 10px;line-height:20px;vertical-align:top;font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;overflow:visible;white-space:pre-wrap"><span class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-pl-v" style="box-sizing:border-box;color:rgb(227,98,9)">pollAtLaunch</span> <span class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-pl-k" style="box-sizing:border-box;color:rgb(215,58,73)">=</span> <span class="gmail-m_3680961584162154966gmail-m_-5770754703410181031gmail-m_-2732812776140997096gmail-m_-8612727812145576601gmail-pl-c1" style="box-sizing:border-box;color:rgb(0,92,197)">True</span>))

</td></tr></tbody></table><br></div><div style="font-family:arial,helvetica,sans-serif">Rajdeep</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Mar 27, 2019 at 3:59 AM Mojca Miklavec <<a href="mailto:mojca@macports.org" target="_blank">mojca@macports.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Dear Rajdeep,<br>
<br>
On Tue, 26 Mar 2019 at 19:51, Rajdeep Bharati wrote:<br>
><br>
> I have submitted a draft proposal: <a href="https://docs.google.com/document/d/12wRjA8sOWNOuApHZ_fm0n1aIPLVPt9Xm2yGiMwiK3AI/edit" rel="noreferrer" target="_blank">https://docs.google.com/document/d/12wRjA8sOWNOuApHZ_fm0n1aIPLVPt9Xm2yGiMwiK3AI/edit</a>. Could you please provide some feedback?<br>
<br>
Cool, thank you very much, it looks nice, please give us a bit of time.<br>
<br>
One question: what precisely is your plan for setting up disposable<br>
builds for PRs?<br>
<br>
Mojca<br>
</blockquote></div>
</blockquote></div></div>
</div></div></div>
</blockquote></div>
</blockquote></div>