The Changelog: Software Development, Open Source - Automating GitHub with Probot (Interview)

Episode Date: October 6, 2017

We talk with Brandon Keepers and Bex Warner about GitHub's Probot — GitHub Apps to automate and improve your workflows. You can use pre-built apps or easily build and share your own....

Transcript
Discussion (0)
Starting point is 00:00:00 Bandwidth for Changelog is provided by Fastly. Learn more at fastly.com. And we're hosted on Linode servers. Head to linode.com slash changelog. This episode is brought to you by Bugsnag. Bugsnag improves the task of troubleshooting errors by making it more enjoyable and less time consuming. For example, when an error occurs, your team can get notified via Slack. You can see diagnostic information on the error.
Starting point is 00:00:26 You can identify the developer who committed the code. And Bugsnag's integration with Trello, Jira, GitHub, and many other collaboration tools makes it easy to assign and track bugs as they're being fixed. We have a special offer for our listeners. Head to bugsnag.com slash changelog. Try out all the features completely free for 60 days. Once again, bugsnag.com slash changelog. From Changelog Media, you're listening to The Changelog, a podcast featuring the hackers, leaders, and innovators of open source. I'm Adam Stachowiak, Editor-in-Chief of
Starting point is 00:01:04 Changelog. On today's show, Jared and I are talking with Brandon Keepers from GitHub and Bex Warner, a recent intern at GitHub, about ProBot, a trainable robot that responds to activity on GitHub. So, Brandon, you've got this thing called ProBot, and you work at GitHub, and we've always been huge fans of what you do there and all the open source work, obviously, at GitHub.
Starting point is 00:01:32 But Probot was recently announced. Can you kind of give us the backstory in terms of your passion around this and how it came to be? So, Probot has kind of come out of this long obsession for me. I've been at GitHub six years, worked on the engineering team on various features. And I spent the last couple of years working closely with the open source community, trying to make sure that GitHub was meeting the needs
Starting point is 00:01:54 of large open source projects, but maintainers that were overburdened. And kind of one of the common themes that kept coming out of a lot of this was that people were asking for or wanting features that weren't necessarily high priority for GitHub. For one reason or another, either they should have been priority and they weren't, or they're features that only a few projects need and isn't necessarily something that's universal to software development. So I've been obsessed with the GitHub API for a long time and built a lot of things over the years. I built this notifications client,
Starting point is 00:02:30 which now Andrew Nesbitt built a way better one called Octabox, but kind of that idea. And so last year, Universe GitHub Apps launched. I think it was called GitHub Integrations then. And as I was talking to people, it came, became pretty clear that like people needed these features and a lot of people had common features, um, uh, common things that they could share with each other. Uh, but they didn't really feel like they were empowered to build them themselves or even that it was something
Starting point is 00:03:03 that they could or should do. Uh, and so this kind of light bulb went off for me talking to people at universe last year of this idea of like a scriptable github or scriptable workflows um you know github has all of these primitives for software development you know it has code it has review it has you know issues in project management um but what it, what it's lacking for a lot of people is this notion of like, when this event happens or when these conditions are met for my team and my needs,
Starting point is 00:03:32 like it should kick off this chain of workflows. And so it went through a bunch of iterations last fall. It started in November. I built this Hack Day demo where it used kind of a custom grammar and you just commit a file in your repo and it'd say on this event when these conditions are met then do this thing.
Starting point is 00:03:54 And that got it pretty far. I worked on that for a few weeks. And then after talking with people and kind of soliciting some feedback online, someone was like actually a jQuery-ish JavaScript style thing where you could, you know, do like dollar sign on this event, and then chain a bunch of actions together. And that took it a little bit farther. And then this last March,
Starting point is 00:04:17 there's one of the folks on the Electron team named Jacob Groundwater reached out to me. And he's like, can I give you some unsolicited advice? Which is always the best. One of the folks on the Electron team named Jacob Groundwater reached out to me. And he's like, can I give you some unsolicited advice? Which is always the best. It's not often unsolicited advice. Always say yes. Jacob is amazing. He's really brilliant.
Starting point is 00:04:45 He said, hey, this seems like a really cool idea, but I feel like you're trying to create an abstraction before you understand, like before you have the other layers figured out. And that was, it helped articulate something I've been feeling. I've been working on this project in my free time for several months. And, you know, I'm like, I feel like the scriptable GitHub is really close, but like, you know, the conditions, like, so when a new pull request is open, if it's a first time contributor, then do this thing. Like those, those like logic gates, I guess, hadn't really been teased out.
Starting point is 00:05:08 And so, like, trying to implement them on this custom grammar was really hard. And so Jacob kind of inspired this, like, reboot, where it's kind of three main components. He's like, you know, start with a bot framework. Like, start with something that's just plain old JavaScript, node modules. People can do whatever else you want. Start to figure out how to make those easy to run easy to deploy
Starting point is 00:05:30 and then as as you're working through that like start to identify the common patterns and start to extract those into a higher level api so in march that kind of kicked off and i basically like in a couple days just like tore out all the code um in fact you can still see the the original code we can like put it in show notes or something um there is now a plug-in for the the current bot framework is the original code um so that was yeah I mean that's kind of the story of how it got to where it is um and then uh this last June um GitHub has every year has this group of interns that come in. And this last June, I randomly get this message from someone named Bex. Actually, Bex, do you want to tell your side of the story?
Starting point is 00:06:18 Yes, please do, Bex. Yeah, sure. So I joined GitHub as an intern, and I was really excited for my time there. And I was on the community and safety team. And going into the internship, I really had no idea what I was going to be working on. And when I got there on the first day, they told me that I was going to be doing some IBM Watson level sort of analysis on toxic comments. And I was like, that sounds pretty cool. I want to prevent toxic comments in open source. And that was a very vague and not totally accurate description of what I ended up doing. But basically, the plan that they had laid out for me
Starting point is 00:06:58 was to create a series of open source GitHub apps that were designed to help open source communities, large open source communities, build and grow and maintain open source contributors, and especially aimed at diversity and inclusion in open source. And since we were building GitHub apps, the obvious platform that being GitHubbers they had heard about was to use ProBot. So I was basically assigned a summer of doing coding working on Probot. What an awesome internship, by the way. I'm thinking back to my college internship, which was at a technology company where I basically spent the summer answering phone calls and helping people upgrade their version of Java. And I'm just,'m just totally jealous right now
Starting point is 00:07:46 how awesome that internship sounds. I think the tagline of the GitHub internship is no coffee runs or something like that. Is that right? That's awesome. So Brandon, you were saying when Bex got involved, that's when Probot went from being your passion project that you were making moves on, but not necessarily
Starting point is 00:08:07 getting too much closer to shipping to here we are a few months hence from the internship and now Probot's out there, at least in a version that you're willing to let everybody participate in. What did VEX bring to the table that you were lacking?
Starting point is 00:08:24 Yes, we sat down, like Vex pinged me and we had a chat and just gave some awesome feedback. I mean, it was things like, hey, I'm trying to do this thing and there's no dots. Or like, what are you doing for testing? Which was a
Starting point is 00:08:40 question we kind of wrestled through for a little while because a lot of it, like I've been just throwing a bunch of ideas, like I've been just, you know, throwing a bunch of ideas together and seeing what sticks and, um, not being super diligent about, about testing stuff. Um, and so I just think that like that initial, like partnership, I guess I would call it of like, you know, we started meeting and it was probably at least once a week,
Starting point is 00:09:01 like we would sit down and chat about like, here's the next big hurdle. Um, and it wasn't just, I mean, from the very beginning, like I think after our initial conversation about docs specs, I think you started submitting pull requests to like document some of the things that, that you had already run across.
Starting point is 00:09:19 Um, but I think just having somebody that was like fully immersed in it, understood the value of where it was going and constantly contributing um you know questions and answers uh was just an awesome experience so when you got to that point there with with the lack of docs it's a pet project so to speak a passion project you're not really trying to be you know I guess production worthy so to speak it's sort of like tinkering in a way and a fun tinkering how do you go or what was the process going from that stage there to to getting docs did you sit down Brandon and do it or Bex were you the person that you know took
Starting point is 00:09:58 that to the next level how did docs come from you know that moment there what were the steps to go from no docs to docs so i think that i just want to point out that when i came into this project i didn't really understand that this was sort of brandon's pet passion project i i thought this was like a very big deal and you know i was a little intimidated at first i thought probot was this big well built out thing and over time you know i realized that there was a lot more I could contribute and give back. But I think that the first step was just having more conversations about it. Because at first, when you're just working on something alone, it's a lot harder to kind of figure out what the important things are, what the problems are.
Starting point is 00:10:41 And I think probably the biggest step was when we decided to create a website for it if brandon you want to talk more about that yeah um i mean i think at that point there had been there'd been various forms of documentations just like stuffed in the docs folder on the repo and those were more meant for me and you know the couple other people that were looking at it. And I think the sign of any open source project becoming mature is having a website. I don't know if that's true. I just made that up. It's in there somewhere.
Starting point is 00:11:16 Yeah, it's in there somewhere. I think it does force you, though, to think about how does a project go from being useful to being presentable you know like like there's the part of it's just like here's here's the function that it serves but then you also have to help people understand what that function is and maybe even where it's going and so yeah I think pulling together the site was was a lot of that like we just think through like how do you want to how do we want to present this because because there's also a part of this to me which which maybe we can dive in a little bit more but like this is like step one
Starting point is 00:11:49 and where i think a lot of platforms are going in a few years um you know the idea of of scriptable extensions um and not necessarily like like you know 10 years ago like webhooks was kind of the big innovation and um yeah and then you've had kind of this like app platform thing start to emerge. I think making your platform scriptable is going to be the next. And I think there's even a few steps beyond that. What kind of platforms make sense for that to be to play? Like, obviously you got some, you probably have some ideas, but like where aside from GitHub does something like ProBot work?
Starting point is 00:12:23 I mean, I think you've seen a lot of it already happening. So like Twilio has been launching some really cool stuff in terms of not only making their platform more accessible to coders, but also non-coders. You know, taking like if this, then that type of mentality around controlling like these lower level services. You've seen, well, like Shopify has been doing this for a long time with,
Starting point is 00:12:52 with the way that they allow you to add functionality into your, your stores. Stripe I think has done an awesome job of some of this stuff. But like, I think you're going to start to see any of these software-as-a-service type companies can benefit from this. Because for a lot of these companies,
Starting point is 00:13:14 and I know GitHub experiences this a lot, the challenge isn't necessarily implementing the functionality, but it's actually deploying it. So I can write a little workflow that customizes it with a pull request open and ping this person. But now I have to deploy that to a server somewhere. And for most of us, even with free offerings like Zyte now or Heroku or...
Starting point is 00:13:43 Glitch. Glitch, thank you. That was the one I was trying to think of. Which is amazing, by the way. If you haven't used Glitch, check it out. So even with those, there's still some sort of maintenance overhead. And so I think starting to get to the point
Starting point is 00:13:57 where these scripts are run and hosted by the companies whose platforms you're trying to extend, I think it's going to be a huge opportunity for a lot of these companies. That's not where ProBot is now, though. It seems like, if I understand correctly, you're deploying your own version of it. Or is it run on GitHub? It's a little bit of a mix.
Starting point is 00:14:18 We're basically trying to get to this world where any ProB robot app that you write is just magically running in the cloud. And I think things like Glitch are an amazing example of what can be done there. So what we're doing right now, so it's a bot framework
Starting point is 00:14:36 written in Node and JavaScript. And you can take that, build your own apps, deploy them yourself, and then we're taking a bunch of the ones that we think are incredibly useful and reusable and we're running hosted instances of them so like an example um actually back to you want to talk about like sentiment bot or the welcome bot yeah sure so i was actually just the other day writing up some documentation about that but um yeah so during my internship one of the bots i created was sentiment bot which was the
Starting point is 00:15:14 aforementioned sentiment analysis but um just done through um google's perspective api and basically the bot runs in a way such that if you install it on your repository, it will scan through issue comments and if there's an issue comment that is above a toxicity threshold that whoever owns the repository will set in a configuration file, the bot will comment on it and link to the repository's code of conduct as well as just sort of a retroactive way of trying to get people to reconsider potentially negative circumstances. And so that app is hosted so anyone who wanted to install Sentiment Bot on their repository could just go and click through and get a free version
Starting point is 00:15:58 of it. But it becomes more complicated when people want to install multiple instances of apps or make certain customizations that really make sense for their project. So that's definitely a struggle we've had is making everything, you know, the deployed version work for everyone's specific needs. So the bots that are available on probot.github.io right now that are in the Explorer section there. Those are hosted by GitHub, but if you want to do your own version of those or something like it, you host it yourself. Exactly. I think there's nine apps hosted right now.
Starting point is 00:16:36 Probably by the time this airs, there'll be a few more. There's a couple others that are about ready. And then all of them that are listed on the site are open source, so you can take and get feedback on those projects or stand up your own instance. I do want to dive into the details on both the examples. Those are two great ones,
Starting point is 00:16:57 the sentiment bot and the welcome bot. But there may be some other ones that exist to give people ideas of the types of things that people are building with ProBot or which you can build with ProBot. And then we'd also like to people ideas of the types of things that people are building with Probot or which you can build with Probot. And then we'd also like to talk some of the details of how it works with the events and stuff. But before that, staying big picture for a minute, Beck said something interesting there a few minutes back
Starting point is 00:17:17 when they said that when they first started, they didn't realize it was going to be, you know, Brandon's side project. Um, yeah. Or Brandon's passion project. And then, you know, but,
Starting point is 00:17:30 but I guess what that made me start thinking is there's this, I don't know, hazy relationship that I see from the outside with companies and people, open source. And so you have Brandon working on this in his, in part, you know, spare time, but it's very much a GitHub thing. And the way you're talking, Brandon, with regards to like in the future, it would make sense if GitHub was, you know, first party hosting certain things. And it seems like
Starting point is 00:17:56 it could be a valuable business endeavor for the company. And I would just love to have you speak on where all that stands and how you feel about it and what it's like to have a side project that's also kind of a company project. Yeah. This has been a big part of my life this summer, I guess. I mean, obviously, I think that this is a direction that GitHub should look at going it's still to be determined I think if this fits in
Starting point is 00:18:31 with everything that GitHub is doing I mean either way it'll be an open source project that exists and is part of the ecosystem and I mean one of the great things about GitHub is and a lot of companies now is their willingness to allow employees to kind of explore these ideas in open source. Like GitHub explicitly has this balanced employee IP agreement, it's called. And I actually talked to our legal team
Starting point is 00:18:55 in the last few weeks just around, you know, if this does become like a future product thing, like, is there any conflicts in this? And this, the guy I talked to said, this is exactly the kind of thing that they're hoping to encourage. You know, if you, you should,
Starting point is 00:19:11 companies should be encouraging their employees to kind of dabble at the edge of what might be an interesting product area. And if something comes of it, great. Like I'm, I'm still employed by GitHub and like this can become an important part of the company's future and if not like that's okay
Starting point is 00:19:27 like it's been a fun project and I think a lot of people will still benefit from it yeah I mean the short answer to that is I would love to see it become something official and still to be determined. I think the interesting thing about a company like
Starting point is 00:19:44 GitHub is that once you and you've been there for a while too Brandon so I think the interesting thing about a company like GitHub is that once you, and you've been there for a while too, Brandon. So, I mean, once you get to a place like you are as a company, it's pretty easy to start, you know, very similar to Amazon, you know, how they have their main business, but then they also have AWS. And then all these other slivers of, you know, Amazon things, but they're very much standalone businesses. I can see how, maybe not so much how easy
Starting point is 00:20:09 it is, but like Marketplace, for example, or Slash Jobs, you get your job where you get lots of different slivers of GitHub that isn't exactly GitHub's core mission. However, it does lead to the core mission, which is advancing the open source mission. Yeah, and I think an important part of Marketplace, sorry, I think an important part mission, which is, you know, advancing the open source mission. Yeah. Yeah. And I think an important part of marketplace, sorry, I think an important part of the marketplace is that, you know, it kind of encourages this open source ecosystem we're talking about. And I think that to an extent, ProBot isn't really sort of limiting that in the sense
Starting point is 00:20:40 that, you know, when you talk about Amazon, some of those products, you know, have competitors outside of Amazon. But what we're trying to do here is more of just a platform for GitHub apps that really anyone could become part of the ecosystem as opposed to closing people out from it or making it a GitHub-only thing. It's certainly focused on making GitHub smarter, I guess, for the individuals using it, but it's certainly focused on making GitHub smarter, I guess, for the,
Starting point is 00:21:05 the individuals using it, but it's, it's open to anybody to contribute, whether it's using the featured apps or sharing your app or, you know, having the, the, you know,
Starting point is 00:21:17 the, I guess the, the flexibility to write your own and deploy your own. It's still the same pro bot. I think like just looking at GitHub's product strategy, I guess, if you will. GitHub is a tool that has become literally the hub of software development. But we're under no
Starting point is 00:21:39 impression that GitHub will be the only tool that you can use. Every software team is going to bring their own chat service or bring their own CI or have their own internal tools that they've developed over the years that they want to use that should work alongside GitHub. And what I think, like, what I get really excited about with ProBot and one of the reasons it's kind of been this, like, passion of mine is this idea that, like, this could be something that starts to glue github to those other things um you know it doesn't
Starting point is 00:22:10 matter if you're using slack or or hip chat or um you know if you're using travis or circle or jenkins like uh like what's the connective tissue between all of those tools, especially as more of our tools move into the cloud? I think it's important that those connecting pieces are open and accessible to anyone to use and to modify. So when we talk about side projects, I always think of things like, I don't know, generative art or your own programming language or, you know, things that are like either art driven or curiosity. But this is even though we I guess my point is we don't make light of it because it was a side or a passion project.
Starting point is 00:22:57 Very much. This is a proof of concept that you are very interested in seeing exist. And so, you know, you spent your spare cycles working on it. Do you have, is there added pressure when you're building something that doesn't just represent Brandon, but also represents everybody who associates themselves with GitHub, the company, or no big deal? I mean, that's a great question. I think it depends.
Starting point is 00:23:22 There's been moments in past where there's, there is a lot of pressure to get something right the first time. Um, and I think like any company struggles with this, I think around like large product launches, um, you know, or like,
Starting point is 00:23:38 like if we roll out a feature, there's, I don't know, 5 million, 10 million developers using it right away. You know, or how are the 25 million-ish developers on GitHub at the moment? So, like, there is a pressure in that sense
Starting point is 00:23:54 to, like, if you're going to roll out something at a large scale, like, you better be kind of sure that it's right. And our product teams have a lot of really good ways of arriving at that. And, you know almost everything that we ship is iterative and like we start to roll it out to select groups and stuff
Starting point is 00:24:09 like that but so i think there is that sense in anything that's like kind of core i guess to the business um something like this and maybe since this was a side project and a passion project i haven't felt so much of the pressure in terms of like what will people think of this with regard to github i think the bigger pressure has been like i've kind of bought into this vision of where it's going and if it if it doesn't work out like that's a been a pretty big bet for me personally um and i mean i. I'm more than happy to be wrong, but I don't want to be, I guess, if that makes sense. It sounds like you have a lot invested in this.
Starting point is 00:24:55 It's a big bet. He's putting his time into it. He's putting his name on it. This is where he thinks things are heading. He hopes so. That's tough to put yourself out there like that and i just like i think for github itself i mean like so pressure to bring up like dear github but like um for me a lot of that is came out of that moment
Starting point is 00:25:16 of like people were asking github for things that like the engineering team couldn't necessarily deliver um and that's nobody's fault like. We just have a very large audience, and that's a good problem to have. But that doesn't mean that we can't enable people to start building those things themselves. In fact, I think the community would be better off if we got to a place where, as a community, we were starting to actually build features for each other.
Starting point is 00:25:44 A large open- source project like Kubernetes knows a lot more about the pains of managing a large open source project than, you know, someone working on some product feature at GitHub or any company. And so I kind of want us to get to the point where some of these communities that are like pushing the edge of where software is are the ones that are thinking about, you know what, if I build this little bot or build this little feature, it's a tool that I can share. I mean, this is kind of like open source at its heart, right?
Starting point is 00:26:17 So I want to see us start to get to that with all of the other products that we use, not just tools and libraries that we run on our local machine. Coming up after the break, we talk with Brandon and Bex about more of ProBot apps, bots, whatever you want to call them. We want to know how they interact with the GitHub marketplace, how it's built into GitHub apps, what the vision of ProBot is, what it might look like in two or three years and it might even be cool if probot lived inside github instead of a self-hosted kind of thing you got running around
Starting point is 00:26:57 so we talk about all those details after this. is a continuous integration and delivery platform that helps software teams rapidly release code with confidence by automating the build, test, and deployment process. They recently launched version 2.0 of their platform with a focus on providing faster build times thanks to advanced caching strategies and flexible resource allocation. Super fast build cycles ensure quality code by using SSH access and local builds to quickly troubleshoot and remediate. Flexibility to run CI and CD without limits. There's no pausing work while environments update. And language inclusivity frees up your team to use any toolchain or framework
Starting point is 00:27:56 because CircleCI supports every language that runs on Linux. And finally, control workflows. Let your team run build, test, deploy stages as individual jobs, which lets you fully customize your development process. There's a ton more to learn about Circle CI, so head to circleci.com slash changelawpodcast. Once again, circleci.com slash changelawpodcast to learn more. So Brandon, you said that the form of robot, what it exists as today, began to solidify for you when you had some help from your friend, but also when you started some help from your friend,
Starting point is 00:28:49 but also when you started thinking about the use cases that you were trying to solve for. We like to hear some of the use cases out there. We hear a little bit about Sentiment Bot and was it Welcome Bot? But surely there's more than just that. So tell us some of the things that ProBot can do today, and then we'll get into maybe what Probot can do in the future. Yeah, sounds good. I still brought the first app that really took off was the Stale app. And what it does is it just sweeps your repository for stale issues and pull requests.
Starting point is 00:29:25 This is kind of a problem that plagues every open source project where you either open up a bunch of issues of things you want to do eventually or the community starts to come in and make feature requests. And most of those things are great ideas and probably things that could and should be done given infinite resources, but the reality is just that they're not going to get done. And I've actually, over time,
Starting point is 00:29:45 started to notice this happening within GitHub as well. A lot of our projects are going to be used to issues and pull requests to manage them. And I started to feel completely overburdened by all of the unfinished work that was in front of us. And so there was the Jekyll project. Jekyll is the thing that powers GitHub pages. It had an app that would, if there was no activity on a project,
Starting point is 00:30:08 would just ping it and say, hey, it looks like there hasn't been any recent activity on this. If there's no more activity in like a week, I'm going to close this issue. And so that was kind of one of the first ones where I was like, oh man, this is awesome. Like every project should have this. So we built Stale. It's now used by,
Starting point is 00:30:25 I don't actually have an account in front of me, I would guess 150 to 200 organizations on GitHub. Last time I looked, it commented on like 6,500 issues, 6,500 public issues, because you can also use these
Starting point is 00:30:39 on private repositories as well. And yeah, it just helps, it helps you keep your project in shape and, and, uh, make it so that everything that's open is either actionable or things that you intend to,
Starting point is 00:30:52 um, to keep open and keep on the radar of the team. I think that's really helpful. Like in this, there's a weird social dynamic when you have a certain issue that just goes unworked on for long enough where it's like, you know, this should really be closed, but I feel weird closing it explicitly because that's mean or rude or something. And so it's like we can shove off these hard things onto robots
Starting point is 00:31:17 and just be like, well, it just passed the threshold and it's stale now. And so I guess that's what has to happen. It's a freeinging it frees you up to not feel sorry this is the conflict i'm sure right yeah because you can't really get mad at a robot well you can but it doesn't help right i mean they're not going to argue back right yeah unless you program a little silly yeah you would feel a little silly exactly which is like that actually sorry i was gonna say that might lead us later on to where we saw your best practices
Starting point is 00:31:47 for robots we might dive into that at the end if we have time but I was actually just going to bring that up related to getting mad at a robot I mean so actually is that alright if we go into that real quick yeah let's do it just real quick based on stale because I think that's really relevant
Starting point is 00:32:03 so yeah one of the one of the kind of notions behind most of these apps that i that we've been working on is you should build it in a way that it acts as a normal human would um to a degree so like stale we want it to not do something that a maintainer wouldn't be willing to do um and and it should be practicing you know empathy so thinking about So thinking about how's the community going to receive this. So the stale bot will come in and say, hey, if there's no more activity, I'm going to close this. But it does
Starting point is 00:32:32 give people a chance to voice their interest and say, actually, I do really care about this. I want to make it happen. So I think that's really important. It's important for the entire bot ecosystem and app ecosystem to think about as our lives become kind become surrounded by robots. I think it's going to get to the point where we're just overwhelmed and we're around all these dumb robots that don't care about us as humans.
Starting point is 00:32:56 But as long as the designers of those robots are remembering that there's humans on the other side of that. I think that we can design good interactions. There's also that uncanny valley of when a robot almost sounds human, but then it's almost like, I mean Siri a lot of times, or the Google equivalent, will be, it's like more annoying because it's so close to being sentient, but it's not. Exactly. Way too often I give Sirii more credit than well i say she or he you know depending on what voice you choose but you know it's like no sir i did not
Starting point is 00:33:31 mean that and it's just like i forgot you're a robot you don't have you don't even care what i'm saying to you yeah you know it's you get to that point it's like well and you and uh back to what you said you kind of feel stupid because you're talking to a robot and they actually don't really care and in based on the last message they don't understand either that reminds me do you guys know know what siri uh calls me my nickname adam you know this i told you this one uh it calls me how do you say toilet in Spanish? And the reason it says that is because right when they added some Siri features, I pulled it out and I was going to test it.
Starting point is 00:34:15 And I said, hey, Siri, how do you say toilet in Spanish? And then she responds and says, oops, I actually just triggered her. Shut up, Siri. Sorry. So then Siri responded and she goes, okay, I'll call you. How do you say toilet in Spanish? And I said,
Starting point is 00:34:32 I said, yes you will. And so she's been calling me that ever since. Were you with me when that happened? Yeah, I was riding in your car. That's right. I was like, that feels really familiar.
Starting point is 00:34:42 I mean, I knew that, but I didn't. It was like two and a half years ago and she still calls me that to this day. That is so funny. Even inside mail, when it comes a new email in, it'll be like, from Brandon Keepers to, how do you say toilet in Spanish? Anyways. The uncanny valley, for sure.
Starting point is 00:34:57 For sure. Yeah. I mean, I have a lot of feels about the bot ecosystem that's emerging. One of my strongly held beliefs at the moment is that like, I don't converse with bots. Like I want, I want bots that either know what I want or that I can command. Like I don't want to have to have a conversation with a robot knowing that
Starting point is 00:35:17 it's a robot. So like I like that my robot vacuum just every day vacuums the floor at 9am because at one point i told it like 9 a.m is the time that is ideal to vacuum the floor i like that like my nest thermostat you know adjust the temperature based on my behavior in the past and like i don't have i shouldn't have to talk to it um so yeah there's this fine line between like bots practicing empathy and like going too far to to them pretending to be human. It'll be interesting to see where that goes in the next six to 12 months.
Starting point is 00:35:50 We'll add your list of best practices to the show notes. The top level categories are empathy, autonomy, and configuration. So anybody out there building a bot, check out these best practices. And if you have best practices of your own, I don't know, PR, or maybe we should have a thing that is beyond just ProBot, but in general I think best practices for building bots would be a cool thing for anybody to have access to. So back to use case a little bit. We've got stale, we've talked about sentiment,
Starting point is 00:36:17 and welcome bot. What are some other things that people will build with ProBot? Yeah, I'm going to talk about DCO for a bit because I think DCO is kind of a cool niche use case. So I think that back when Probot was in some of its early days, some of the Linux Foundation people who are really into using the developer certificate of origin approached Probot and were like, can you build us a bot that will essentially check for a sign off on every single commit and so dco is a bot that does that pretty simply and i think it's a really interesting use case just because of you we have recently been running into a lot of stuff talking about
Starting point is 00:36:58 how you handle errors and what to do when a commit sign off doesn doesn't have the DCO sign-off. Like, what should we do in that case? How do we correctly communicate with a user that you don't have the sign-off and to basically say, you know, here's how you can fix it and add your sign-off if you agree with the developer certificate of origin. And it's, you know, it's a really simple bot. I think that going back to best practices a little bit, bots commenting on things can get really, really tedious really quickly. I, for a while, was running several of the bots I built all on one repository, and having three comments in a row from three different
Starting point is 00:37:36 bots just doesn't help anything. And honestly, it can be really annoying, which is not really what you want your bot to be. So DCO is only a status check, similar to like a CI check. And I think bots like that that just solve a really simple task are some of the really coolest ones that we've built. So it's almost like the bots are to some degree reacting based on some sort of action or event, as we'll hear about in this bit, but then potentially even trying to have a conversation to some degree, like stepping on each other's toes, basically.
Starting point is 00:38:10 Wasn't there somebody who had two bots that were in an infinite loop at some point on a GitHub thread? I can't recall the details of that, but I remember thinking there was an infinite loop somewhere where one bot was doing one thing and the other was undoing it or replying to it and they just kept going back and forth until I don't know, can GitHub segfault? Can the whole website segfault?
Starting point is 00:38:33 Yeah, at some point the bots reach trigger abuse mechanisms. I've seen a few threads like that. There's been some really clever ones actually where they'll use bots to playfully interact in the pull request, which is fun.
Starting point is 00:38:49 Most of the apps you have listed here though seem to be focused around scripting a better issues user experience or some sort of communication pattern back to the humans involved, since we're talking about bots and humans basically you know the humans involved in a repository or project is that kind of where most of the you know current featured apps are or is that where you see them playing the best fit where's the state of that it's probably more of a reflection of like where our heads have been at um just trying to think through think through how do you demonstrate that you can add features on top of GitHub.
Starting point is 00:39:30 And some of them are what I would consider rather core features. So there's an app for configuring GitHub settings via pull requests. So you just commit a config YAML to your repo, and you can change the project name, you can change the topics, you can change whether it's public or private. So you can have, you know, like open sourcing a repo is now a pull request.
Starting point is 00:39:54 You can change the collaborators, you can configure the labels. So just kind of trying to get people thinking in this idea of, you know, even something like that, which seems, you know, it's like, oh, we're going to have full requests on repos, on repo settings. Like that would have to be a core GitHub feature. But really it's not like the API pretty much allows you to do anything you can
Starting point is 00:40:14 do from the web UI. So starting to demonstrate some of those features. There's also a few bots of just, or I'm trying to not say bots, a few apps. Why did you want to say bots? It is... We had a great branding decision in 2017 in which we transitioned from saying plugins to saying apps all the time. And we also decided to not say bots at that time i think your bot is to build apps
Starting point is 00:40:48 but it's a bot i know it's unfortunately named naming is hard um i think i mean so the bot part of it is just there's a lot of craze about bots like as soon as any like you know the like technosphere gets excited about something um i'm always kind of naturally skeptical um and so for me i think i mean bots i think are really important will continue to be important but they're currently in like one of those hype cycles and i want to make sure that uh as as we come out of that hype cycle that this doesn't die with that um because i think there's more to it than just bots. It's more about building applications and utilities that extend the tools and platforms that we use.
Starting point is 00:41:31 Right. And apps have already been through their hype cycle and back in 2008, they're not. Yeah, now it's just practical. We're over it, yeah. I think the other part of it is kind of going back to that uncanny valley idea. There's a really great talk, actually actually by a woman named Kate Compton called The Poetics of Bots.
Starting point is 00:41:52 And Kate's actually speaking at GitHub Universe, actually platform day, which is the day before GitHub Universe about this. And her, I probably won't be able to summarize it very well, but she looks at like Plato's ideas of poetics, which is like theater and the way that we present stories to each other. And she compares that to like, what is a bot? Well, a bot is an algorithm with eyes. So it's not just like the, the functionality of the application, but it's the way that we experience it in the same way that it's the way that we experienced theater. Um, so I, so I love that, which you'd think I would be tempted to call it bots, but I, there's also this fine line between like, like a lot of
Starting point is 00:42:41 these things actually aren't intended to be bots. They're intended to just be algorithms or software. Kind of going back to my idea of like, I don't want to converse with a robot. I want a robot to just do the thing that I need done with as minimal interaction for me as possible. So between the hype cycle and that notion of like, I think a bot does have a personality and some of these things don't.
Starting point is 00:43:05 And there's an important distinction there. There's an aspect of scale there. And I want you to tell me if I'm keen into it or if I'm being misled. But with a bot, and even with a lot of the existing apps that you guys have with Stale, with Welcome, with Sentiment Bot, uh-oh, it's an app called Bot. I mean, it's bot. These things all are
Starting point is 00:43:27 the Unix philosophy, one thing well. They're very small in scope of what they try to accomplish. But then when you go to GitHub Marketplace where apps exist and you have CircleCI and all these other things that are business-level integrations with GitHub, is ProBot always going to live in the small Unix philosophy of like scripting GitHub? Or is it also supposed to scale up because, and you're building apps with ProBot that you can maybe build a business on? Which one is it?
Starting point is 00:44:03 That's a good question. So from the beginning, Bex mentioned that we originally called them plugins. And it's actually designed so that any of these apps can all be run from the same instance, the same deployment. We can talk more about how it's built, but it's all Node.
Starting point is 00:44:23 And so if you want to combine multiple of these together, you just declare dependencies on each of those packages, and then it will start up and run all of them in one instance. Now it's kind of intentional starting to look at how some of these large open source projects were designing their automation. You look at a project like Kubernetes that I mentioned earlier, they have a ton of really awesome tools built around their GitHub project,
Starting point is 00:44:46 but they're all these monoliths that are tied to Kubernetes workflow. And so the idea was, let's try and pull all of these individual pieces of functionality out so that we can deploy them and they're useful on their own. But then if somebody has custom needs, or if it's an enterprise that wants to run something on their own. But then if somebody has custom needs or if it's an enterprise that wants to run something on their own infrastructure, they can pull all these together
Starting point is 00:45:10 and not have to reinvent the wheel. I think to more directly answer your question, I think the answer is actually, I don't know. I think I like building small things because they're easier. Bex and I have had this back and forth a lot I think I like building small things because they're easier. You know, like, as, like, Bex and I have kind of had this back and forth a lot where, like, we have all these really tiny apps,
Starting point is 00:45:30 which is really nice because, like, every single one is this, like, new fresh start. But then, like, you start to see the patterns in all of them as well, which I think is kind of helpful for influencing future design. So we'll see. On that note, since this is a framework for building GitHub apps, and GitHub apps is essentially, if I'm wrong,
Starting point is 00:45:54 but if the marketplace is built on this GitHub apps idea, right? Yep. Okay, so if that's the case then, so you then have this passion project you've been lifting up, Brandon, and now Bex is involved and others are involved and it's become more and more legit, so to speak. It's no longer this side thing that doesn't have a name or a face or visibility, so to speak. Right. A website, documentation, all the things we've talked about. It seems to me that the worlds are colliding, so to speak. You're giving people the ability to create what is in Marketplace,
Starting point is 00:46:30 but Marketplace has its own strings attached, which is like if it's a for-profit kind of thing, you have revenue share, you've got sort of some edge cases that you may not be personally able to answer now, but that at some point, ProBot may graduate to be something renamed or altogether different, but with similar roots where you're coming from. So the way I see this is that there's the set of features that GitHub decides to build into the product on one side. And then you have on the other end of the spectrum,
Starting point is 00:47:07 if you think about it that way there's marketplace apps which are things that are profitable products that have enough value that you can go and resell them and build a business around them and I think in the middle there's this massive gap of features that are useful to developers but that aren't profitable for someone to start a business on and aren't interesting for github to build
Starting point is 00:47:29 and so i think that's the sweet spot for prova i mean like you know if somebody wants to try and build a business on closing stale issues like best of luck but like those are those are just the type of things that like you know we shouldn't have to deal with. As developers, we shouldn't have to deal with the overhead of these little lacks of automation in our lives every day. But some of these things just aren't profitable. And so the way I've thought about it and tried to explain it to other people is my hope is that this fills in that gap in the middle. So developers get the best experience, you get first-class features from GitHub,
Starting point is 00:48:07 great apps from marketplace partners, and everything in the middle, the community can build themselves and share. Inevitably, I think it is going to force marketplace people to keep going up the stack and try and find things that are higher value. And this is kind of just, I think the story of like human progress where it's, you know, we're constantly solving one problem that used to be profitable and then
Starting point is 00:48:33 now it becomes commoditized and you have to go on and solve the next problem. So I think it will have that effect, but I think in the end developers win. I mean, we, we get better tools. And I think even people building businesses, you're going on and building more interesting businesses that are harder to replicate, which I think puts you in a better position. Let's talk about the technical nitty-gritty a little bit. You mentioned Node, but just thinking from the perspective of,
Starting point is 00:49:01 okay, I would like to script my GitHub. How can I use ProBot? What are the events that are exposed? How do I program against it? We know it's going to be some JavaScript or anything that compiles to JavaScript, I suppose. But tell us how it all works. So basically, what you need to do is you need to go on GitHub itself and set up a GitHub app. And from there, you get a few things. You get an app ID and a private key. And then you can start running a Probot server from there. And that's kind of your connection to GitHub.
Starting point is 00:49:32 Through there, you can also set up permissions, basically. And so the core of Probot is listening on GitHub webhooks. And GitHub webhooks are basically anytime you do an action on GitHub, anytime a pull request is opened, you open a new issue, you close an issue, all of those different things count as a webhook. And so we can listen on those different webhooks and then take actions based off of them. So you set up a GitHub app, you choose your permissions, say you want to do something every time a new issue is opened. So you choose the issue event and you give the app that permission. And then in your local dev
Starting point is 00:50:12 environment, you can, you know, paste the very simple ProBot code. I think there's some on the front page of the website documenting. You just basically have a robot act on issues.opened. And from there, you'll get the context of what's known as the payload, which is basically the webhook event that has just occurred. And GitHub's API is pretty intense. So you'll get a lot of information about that issue that's been opened. And then based off of that, you can do anything with the content. And we have a built-in GitHub API client through the Node GitHub library. And from there, you can basically take any action on GitHub. You can add labels, close the pull request, assign people, etc. And pretty much do anything from there with the code. Sounds so easy. Anything to add, Brandon? No, Beck's covered it.
Starting point is 00:51:09 I mean, it basically tries to abstract all the details about building an app that are not unique to the app that you're trying to build. So you listen for the events, you have an authenticated GitHub client, and then you can start making use of any of the APIs available on GitHub. Yeah. So it probably would be exhaustive to go through all of the events and stuff,
Starting point is 00:51:33 but maybe if there's, and of course, you know, there's documentation now, so go read that. But is there anything that's glaringly missing? Like, oh, I want to build this, but, you know, you guys have already thought of that, and you can't do it because of reason X, Y, I want to build this, but you guys have already thought of that and you can't do it because of reason X, Y, or Z. Up until recently, the pull request reviewer API was unavailable to GitHub apps.
Starting point is 00:51:55 But I think as of potentially soon, most of that will no longer be an issue. Right, Brandon? Yep, I believe so. To kind of expand on that the so github apps was one of the first major features that was launched as a like preview feature um so launched last year at universe um and kind of the idea was like you know get it out in front of people so that you can start using it building on it um keep iterating on it. So the result of that is actually that there's still some things that are in progress.
Starting point is 00:52:30 One of that being some APIs still aren't set up to work with the apps, but hopefully the platform team is working really hard on that. And so hopefully that won't be the case soon. Every API should be available. That's available now. Yeah. Cool. So next up, let's talk about use cases that don't exist.
Starting point is 00:52:52 And maybe y'all could just throw out some ideas. You probably had more than we have in terms of thinking about a thing, but not actually building the app for reasons. But we have some apps that exist. Are there apps that, I mean, there obviously are apps that don't exist, but what are some things that you've thought of that you just haven't had time to build yet or you'd love
Starting point is 00:53:12 for somebody to be inspired and go build a ProBot app? So there's a couple apps that are in progress. Hopefully, actually, well, a couple of them will be available by the time this publishes, but some of them of them will be available by the time this publishes, but some of them I think will be long-term.
Starting point is 00:53:32 One of them that should be available is a reminders app. One of my frequent problems with GitHub issues or just work in general is somebody will ask me about something and it's like, oh yeah, well, I had this and this going on, but I'll come back to it next week. And I don't have a great system for for doing reminders like i've tried to do lists and task lists and using reminders apps all over the place um but one of the things that i've figured out works for me with with everything in life is i store information about that thing in the place where i'm going to
Starting point is 00:54:00 act on it so like i keep you know keep book recommendations as a wish list in amazon because that's where i'm going to buy them. Or I keep movie recommendations in an app on my phone that I buy movies through. And so I want, for reminders, I want those in GitHub. So we're building, basically introducing a couple new concepts with ProBot. You have slash commands. So I can reply to your issue say hey yeah you know i'm in amsterdam this week but i'll take a look at it next week and then just
Starting point is 00:54:29 below that slash remind me next week to you know do whatever um so that'll be that should be launched here pretty soon um there's the linter uh bex you want to talk about that? You've probably worked on that more than I have at this point. Yeah, so linter is my current little pet ProBot app I'm trying to get working. But basically, the goal of that one is to, whenever you push up a commit that's using, right now it's just implemented for JavaScript because that's what ProBot's in, so it's easiest.
Starting point is 00:55:03 And then it would automatically push up a follow-up commit linting your code for you for any linting things you might have missed. And so basically just taking the hassle out of having to read through a CI log telling you if you don't have a semicolon like 20 lines down. Brandon, when you were saying what you said about
Starting point is 00:55:23 the slash commands and things like that, it kind of made me feel like since you said this is designed to help you add features and whatnot to GitHub, it almost made me feel like the reminders idea could be similar to how a browser extension will recognize that you're on an XYZ site. For example, Hacker News where it'll say buffer this or do something somewhere else where it actually adds interface. So the sidebar you might have, rather than just a slash command, you might actually have a brand new piece of interface because you have this app installed and the interface, maybe it's a standard way GitHub has interface. So I'm thinking you can maybe add things to the sidebar or add metadata to issues or just different things, like add things to GitHub that aren't GitHub and maybe store that data somewhere.
Starting point is 00:56:11 I'm not even sure how, but this seems to open the door to allow you to kind of make it up your own. Is that kind of what you're thinking? Metadata. Yeah, that's what I was thinking. Yeah, I mean, that's kind of actually one of our goals and experimenting with this is trying to figure out how to push the platform. I mean, the idea that adding UI to GitHub is not new. I mean, a lot of integrators and stuff have been asking for that.
Starting point is 00:56:37 And it's something that a lot of people on the platform team are really interested in. I think it's just a matter of figuring out what are those patterns. Personally, what I would love to see is if I install an integration or an app that offers CI, there should be a rebuild button on the side of the page. Or if I install an app, if I install Heroku or the AWS app, there should be a deploy button. We're trying to,
Starting point is 00:57:07 we're trying to like tease out some of those patterns. And a lot of these, again, are things that like the platform team has been thinking about for a long time. There's some, we're just really hard problems. And so I think what we're trying to do is figure out how can we standardize at least the concepts behind them.
Starting point is 00:57:23 So like another example of this is that DCO app that Bex mentioned. We've been trying to figure out how to surface errors to users in a way that's helpful. Cause like DCO, like if you don't do it right, you have to rewrite all of your commits. And the status checks are really great in GitHub, except that they don't give you a spot to actually then like help users resolve those errors. You know, like if your CI fails,
Starting point is 00:57:47 you click through to the link and then circle. Or your CI system has the error log. And so it's really interesting to think about how can we bring those back into GitHub? And so, yeah, we're just experimenting with a lot of those patterns, storing metadata on issues, slash commands, displaying the results of checks like COCI or VCO. This is very much in the skunkworks slash.
Starting point is 00:58:15 It's out there. It's available. However, it's early in its days. So a lot of innovation, a lot of change could be potentially expected because you're sort of in this, how should it work? How could it work? What does the community really want? What does the community really need? And even down to, you know, how is it hosted? Because you've got one, which is, you know, hosted apps that you do just in a.github directory inside of your repository, or the opposite, which is hosting you know externally heroku get glitch you know however um it seems like you're still in the very it's it's it's a cake being baked
Starting point is 00:58:52 state it's not it's not ready for it's ready for usage but maybe not full-on consumption yeah um i think like one of the things we've been trying to do with all that, though, is recognize some of the, at least the abstractions early on and pull those out so that the apps aren't having to. So actually, I think the config one would be a good example. Can you talk about that, Bex? Yeah, so one thing that was one of the original goals of ProBot was to not have to use any outside data storage. So most third party integrators like Travis, any CI service have their own website, and you go to their own website. And that's where you kind of view all the data that they're trying to give you. But with Probot, we don't none of the apps at this moment have their own website. So basically, we just wanted to be able to build apps that were purely dependent on your GitHub repo. So that's why we came up with the idea of
Starting point is 00:59:51 having configuration in.github files, so that all of the basically history of your GitHub app lives within GitHub. So it's kind of purely using GitHub as its platform. And recently, we've been having a lot of conversations about the best ways to store configurations that aren't annoying for people, because we've had people want to install GitHub apps at an organizational level. If you have 100 repositories in your organization and you want the same stale settings to act on them, it's kind of we're not really in a space right now where you can easily set that up for all 100 repos without having a configuration file in every repository and we haven't really seen a lot of good patterns for apps that are acting upon it without having
Starting point is 01:00:36 some sort of you know third party actor doing it for them so it's right now you're not sure how to do it at a corporate level across an organization, but you can do it now at project levels. Yeah, there are definitely ways to accomplish it for an organization. It's just maybe not as easy as it could be. Right. An elegant solution that allows you to easily
Starting point is 01:00:59 manage it. That makes sense. I have an app idea. Share it, Jared. Let's share it. Okay. Bear with me. It's called Changelog Promoter Bot. And it watches
Starting point is 01:01:12 every repository on all of github.com issues. And anytime somebody references a changelog, it just chimes in
Starting point is 01:01:20 and says, I'm sorry, did you mean the changelog and awesome podcast about open source? Or did you mean the actual changelog of this project? And it just linksimes in and says, I'm sorry, did you mean the changelog and awesome podcast about open source? Or did you mean the actual changelog of this project? And it just links to our website.
Starting point is 01:01:30 I have a feeling that will get marked as spam. That's funny. Yeah, the spam bots are very aggressive. I actually, on my testing bot, got it marked as spam within my first three days of my internship at GitHub. Oh, wow. It was quite scary.
Starting point is 01:01:48 Achievement unlocked. Wow. We're very close to bot slash app spam. Oh, yes. A problem we do not want on GitHub. I mean, it's hard not to keep up with notifications, let alone spam. Spammers. No spam.
Starting point is 01:02:04 No spam. What's some ways that people can get involved? Is it to build apps? Is it to get involved with the framework itself? What are ways that people who are excited about ProBot and this possibility of scripting GitHub to our liking, what's the best way that the Hackett community can help out this project?
Starting point is 01:02:23 Yes, if you check out the website, probot.github.io, there's basically three main ways right now. So one, just start using some of the apps, like give feedback on the ones that are already hosted. And then we link to all the other ones on GitHub that have been written
Starting point is 01:02:39 so far. Just go try them, hack them, figure out what makes sense and what works for you and what doesn't um and then yeah the second thing is like start to dive into to playing around with it it's really easy to to get started with the hello world example um you can run it on glitch so it's free hosting you can edit it live right in the browser um and then you know the third third way is just getting involved with the community.
Starting point is 01:03:07 There's been a really fun community around this project, kind of starting with Vax, but then several of GitHub's interns this summer got really involved. So, like, Jason at Co. on GitHub, England B. Oh, I started naming people now. I'm going to forget a bunch of people.
Starting point is 01:03:28 But yeah, the community is starting to take off. We do lots of trout slapping in the Slack room. Is that a phrase that's familiar to you guys? I was lost. Trout slapping. Are you a bear?
Starting point is 01:03:45 Yeah, something like that. I don't even know how it started. We were... We also have, continuing our plug for ourselves, a weekly office hours that we just host. It's basically a video conference that anyone can join, ask
Starting point is 01:04:01 questions, get help. During that video conference someone was talking about some product on slack called slap and you know being curious i googled it and the first result was this slack app that just had a slash trout command and it would just slap people with trout like fish trout and so we built one for our own slack channel so that we could trout slap each other i think it's a term of endearment it's basically it seems like it i want to be yeah i noticed that the you're you're contributing documents pretty thorough too in terms of like adding apps and you know in terms of next steps.
Starting point is 01:04:46 You know, someone might be saying, you know, how do I add an app or how do I host my own app? So you're contributing documentation has some pretty good information there in terms of like adding your app to the website, you know, adding a new file in the slash apps directory, all that good stuff. So that's a pretty, pretty neat little thing to be able to add that. Is there any is what can somebody expect in terms of protocol after they do that? Like, is it a pull request? And obviously we get opened up, but like, what's the process of like criteria, so to speak of, of accepting or even the kind of apps you're looking to accept? Yeah.
Starting point is 01:05:18 So I actually outlined most of that document and basically the goal was, the number one concern is that it's just not like an existing app and it is its own app and it actually does something on GitHub. It accomplishes some tasks through the UI. And that's basically it for listing an app. We will basically list any app that, you know, does something and to the best of our knowledge, you know, isn't stolen or copyrighted in any way. But for hosted apps, we have a few more strict requirements. We'd like to see some basically minimal documentation for how you can get set up. Usually it's just a screenshot of the bot in action is enough or if there's any configuration needed, what that is going to look like. We also want the apps that we host, obviously, to be open source.
Starting point is 01:06:08 And then a couple of other just general maintenance things, like we want it to have a license, we want them to have code of conducts, and someone willing to maintain them. But it's a pretty simple process. Either me or Brandon would probably reply to anyone who opened a pill request pretty quickly. So is it possible that you would have an app that you have here, but then also host yourself? I mean, it seems like adding your app is one thing, but then hosting your own app is potentially another. Will you have sort of like two directories?
Starting point is 01:06:39 Like one is the featured that are on there, the nine now, plus the more that are coming, and then potentially a list of hosted apps that are sort of like best of, so to speak, or just like from the community? Yeah, I think the ones that are listed now are all hosted. We're still undecided. Like if we want to, like kind of in the back of my mind, I've always had like we'll feature the ones
Starting point is 01:07:02 that are like one-click install. And then if there's other ones, anything else where where you have to run yourself it kind of requires a little more digging but that's also like that's a hard like chicken and egg problem for some of these apps that are trying to get traction so i think we'll probably you know just exercise a little bit of editorial around you know like there's a couple apps uh there's one that does duplicate issue detection as an example obviously open a new issue and it will um search for other issues that look like that and then comment and be like hey like were you looking for this other one um something like that to me seems really really useful and that i would love to just see have a version out there um but it had it
Starting point is 01:07:38 basically just needs a little bit more work to improve the algorithm um so i was gonna say what's nice too is that you're actually linking up repository directories like the work in progress, for example, is Internet Slow is from Gregor and seems to be
Starting point is 01:07:57 not a GitHub-er, from Hoodie. But the person or persons or community that are involved in that repository or that app get some credit, so to speak, when they get their app listed. Credit where credit's due, right? Yep. And we've also talked about adding more community content style features, adding better ways to give credit to people who are contributing to apps, but maybe not the main creator. We were also considering talking about adding, you know, a blog and featuring a different app every month
Starting point is 01:08:30 and just having sort of community content once, you know, as ProBot hopefully grows to basically be able to give people credit where credit is due. Yeah. Well, very cool. Well, Bex and Brandon, thank you so much for taking your time. And, you know, obviously the promise to care about the community. I think this is certainly something that the GitHub and larger open source community will really appreciate because you're putting a lot of power back into the user's hands and and being able to do things that obviously they weren't able to do before and to Greenfield.
Starting point is 01:09:06 So hopefully this stays in place and becomes something that people use quite a lot. And thank you so much for joining us. You guys are awesome. Thanks for having us. Yeah. Thanks for tuning in to The Change Love this week. If you enjoyed this show, share it with a friend or two.
Starting point is 01:09:26 Rate us on Apple Podcasts. And thanks to our sponsors, Bugsnag and CircleCI. Also, thanks to Fastly, our bandwidth partner. Head to fastly.com to learn more. We host everything we do on Linode cloud servers. Head to linode.com slash changelog. Check them out. Support this show. That's how we pay the bills. The changelog is hosted by myself, Adam Stachowiak, and Jared Santo. It's edited by Jonathan Youngblood. And the awesome music you hear
Starting point is 01:09:57 when we play these shows is produced by the mysterious Breakmaster Cylinder. You can find more shows just like this at changelog.com or by subscribing wherever you get your podcasts. Thanks for listening. Thank you.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.