Hi, I generally like the idea, thanks for improving the user experience for the project, Chai! One thing that would be important to me is avoiding a constant shifting between the states. The PR shouldn't switch to "awaiting-testing" every single time CI is retriggered but rather have some consistency. But that's something we can also tweak as we go.
Before the bot is run, a small heads up would be nice. Just running a batch job on the repository - especially using others' credentials - without previous approval is not that nice. Hence, please run your tests a non-intrusive way until the bot has been approved for deployment. With regards to the ticket, I'm happy to be of assistance. Just send the secret to my personal email. Best regards Marco On Fri, Jul 31, 2020 at 9:12 PM Sheng Zha <[email protected]> wrote: > +1, thanks for driving this. Here's the pseudo code for the PR labeling > for better readability: > > if WIP in title or PR is draft or CI failed: > pr-work-in-progress > elif CI has not started yet or CI is in progress: > pr-awaiting-testing > else: # CI passed checks > if pr has at least one approval and no request changes: > pr-awaiting-merge > elif pr has no review or all reviews have been dismissed/re-requested: > pr-awaiting-review > else: # pr has a review that hasn't been dismissed yet no approval > pr-awaiting-response > > Best, > Sheng > > On 2020/07/31 18:08:34, Chaitanya Bapat <[email protected]> wrote: > > Hello MXNet community, > > > > Banking on the success of mxnet-bot that has been triggering CI > > successfully for the past 3 months, Sheng proposed an idea for automatic > PR > > labeling. I am working on the implementation of the same. > > > > *What's the idea?* > > An automated way of labeling PRs based on the status of CI. > > > > *Why?* > > > > This serves dual purpose > > > > - Automates the labeling [currently manual] > > - Allows contributors to prioritize review of PRs. > > > > *How?* > > 1. Github webhook would send status update events to the Lambda function > > 2. Lambda would then label the CI based on following conditions > > > > > > > > > > > > > > > > > > > > > > > > *if WIP in title or PR is draft or CI failed: pr-work-in-progresselif > CI > > has not started yet or CI is in progress: pr-awaiting-testingelse: # > CI > > passed checks if pr has at least one approval and no request changes: > > pr-awaiting-merge elif pr has no review or all reviews have been > > dismissed/re-requested: pr-awaiting-review else: # pr has a > > review that hasn't been dismissed yet no approval > > pr-awaiting-response* > > > > To that end, a POC was done to test if it's possible & result: it works. > > Results of 1 successful run on Prod for apache/incubator-mxnet repo > > > > Open PRs : 207 > > PRs labeled : 18 > > PRs already labeled : 38 > > PRs with unknown jobs : 2 > > PRs with status failed : 149 > > > > Lambda function labeled 18 PRs that had passed all the tests. > > > > PR for POC: https://github.com/apache/incubator-mxnet-ci/pull/27 > > However, Marco made a valid point regarding leveraging Github Webhooks > > [instead of Jenkins] for retrieving status of the PR. > > > > *What's required?* > > Thus, to get this feature functional, I'd need a separate Github webhook > > that sends information related to PR Status. Just like the webhook > request > > for CI Bot, I can send the details over private email to Marco's personal > > email address & then he can create a ticket with Apache Infra. > > > > Thanks to Sheng & Marco for guidance & assistance on this. > > > > Thanks, > > Chai > > > > -- > > *Chaitanya Prakash Bapat* > > *+1 (973) 953-6299* > > > > [image: https://www.linkedin.com//in/chaibapat25] > > <https://github.com/ChaiBapchya>[image: > https://www.facebook.com/chaibapat] > > <https://www.facebook.com/chaibapchya>[image: > > https://twitter.com/ChaiBapchya] <https://twitter.com/ChaiBapchya > >[image: > > https://www.linkedin.com//in/chaibapat25] > > <https://www.linkedin.com//in/chaibapchya/> > > >
