[IPython-dev] GitHub Automation, migrating issues.

Matthias Bussonnier bussonniermatthias at gmail.com
Tue Dec 27 08:50:46 EST 2016


Hi all,

[Cross posting IPython-dev and Jupyter Google group]

Hope you are enjoying the lasts few days of 2016 !

I've been recently working on GitHub automation, in particular we have
local scripts that we need to run locally to do some common tasks on
github, like migrating issues, backporting PR... etc.

It is a bit inconvenient as you have to interrupt your workflow, go to
a terminal, and issues commands you never remember the syntax, and
need to copy/past issues url. So I decided to write a bot to do some
of these chores for us when it is mentioned.

Right now it only respond to a limited number of commands, but you
should be able to activate it on any repository and it will respond to
commands as long as you are admin (migration requires you to be admin
on both repositories, for example). You do _not_ need to host it.

It is hardcoded (for now) to respond only to me, but I can easily
whitelist more people if asked[4].

For now I've name it Mr Meeseeks, which you will understand if you've
seen Rick and Morty season 1. Otherwise you can watch the relevant
part [1].

Here is the first example of usage on the IPython and Jupyter org[2]:

> @Meeseeksdev[bot] migrate to jupyter/qtconsole

Replicated issue ipython/ipython#1322 to jupyter/qtconsole#177 [3]

Mr Meeseeks also know how to backport PR for small repositories
(cherry pick -m merge commit) and submit a PR on the branch you;d like
to backport to. On a merged PR:

> @Meeseeksdev[bot] backport to 1.x

I'm hoping to extend that a bit to extend the functionalities and let
user tag/untag (with a limited set of tag ?). There is a bunch of
possibility but right now this is using a GitHub Beta API so things
possible are limited.

At some point it could allow a number of truster user to be able have
a finer grain permission model than GitHub and let everyone access to
issue tagging/closing/opening, restarting test without always giving
commit rights. I'm thinking about how to have per org/repo
configuration/customisation/isolation. I'm also hoping to convince
GitHub to extend their API to allow for automatic fixes on PR and/or
help to find workaround the limitations.

This mail is already a bit long, I'll develop how we can improve this
somewhere else.

If you have any questions ...

Cheers,
-- 
Matthias

[1]: Warning, "Rick and Morty" is known to have harsh language and
character behavior. This extract should be relatively gentle though.
 https://www.youtube.com/watch?v=qUYvIAP3qQk (duration 1min8sec)
[2]: https://github.com/ipython/ipython/issues/1322#issuecomment-269317754
[3]: https://github.com/jupyter/qtconsole/issues/177
[4]: https://github.com/MeeseeksBox/



More information about the IPython-dev mailing list