babel-bot icon indicating copy to clipboard operation
babel-bot copied to clipboard

Move to Probot

Open hzoo opened this issue 7 years ago • 9 comments

https://github.com/probot/probot

Should use the framework instead of our own thing

hzoo avatar Dec 21 '17 15:12 hzoo

Works for me. I've clearly been terrible about maintaining this. You always assume something is going to be small and not need a framework, and then it grows 😆

DrewML avatar Jan 04 '18 21:01 DrewML

I would love to work on this but currently, I have to focus on graduating first 😞 I will check in again once I am done with my master's thesis.

aaronang avatar Jan 09 '18 05:01 aaronang

Is this still a want? I've been looking over at probot and the handlers currently in this repo.

I figure I could start with some of the most basic handlers and slowly start moving it over one by one instead of a big switch.

Thoughts? I was thinking of starting with the issues/opened.js handler since that one seems pretty straight forward.

If this seems cool, do let me know. I'm going to get started later in the day. If anyone has an alternative approach or maybe a better handler to start with, let me know :).

Thanks.

ericduran avatar Jan 24 '18 20:01 ericduran

Would love to help with this @hzoo! Will try to hack away at it this upcoming weekend, though my bandwidth this week is low; are the features in this repo's README up to date?

JasonEtco avatar May 07 '18 14:05 JasonEtco

I believe so other than the existing prs? Haven't updated it in so long

I'm sure a lot of the features are already probot apps too? wonder if you can just reuse like https://github.com/eslint/eslint-github-bot

hzoo avatar May 07 '18 14:05 hzoo

I'm sure a lot of the features are already probot apps too

Yep:

  • Create a new comment on newly opened issues (if not in the org): https://github.com/behaviorbot/welcome
  • Reply to issue with canned response when Needs Info label is added: (similar idea, doesn't do on-label): https://github.com/behaviorbot/request-info
  • Notify committer in PR of test failures in TravisCI, and add OS/node.js version that failed, with direct link to log: (similar, also copies bits of the error logs back to the issue): https://github.com/JasonEtco/ci-reporter
  • Add Has PR label to issues that have been referenced in a PR: https://github.com/rsarky/helpr

A couple of these are only kind of the right fit for the related feature - might be worth rewriting them into one app anyway, but its up to you.

JasonEtco avatar May 07 '18 14:05 JasonEtco

Yeah, possible that most of them are simple enough to do anyway - would be nice to be able to import it as a dep and then run it from one app

hzoo avatar May 07 '18 15:05 hzoo

You actually can, by npm install-ing the repo (since most of them aren't on NPM) then either calling the exported function with your own robot:

module.exports = robot => {
  someOtherProbotApp(robot)
  anotherProbotApp(robot)
}

robot is effictively an event emitter, so calling those apps' exported functions is adding a new event handler via robot.on, and it gets all the magical authentication bits from the over-arching app's robot.

Or, we also have some docs for "combining apps".

Only issue with doing this is that unless the app is exactly what you need, you can't configure or change it. That's typical for dependencies in general, but Probot doesn't have a way of passing options on an app level (there is context.config but thats per-repo).

JasonEtco avatar May 07 '18 15:05 JasonEtco

Ok sounds like what babel's presets were originally before: just an array of plugins. But then we added preset and plugin option to be able to configure

hzoo avatar May 07 '18 15:05 hzoo