01:44:49 RRSAgent has joined #groupautomation 01:44:49 logging to https://www.w3.org/2019/09/18-groupautomation-irc 01:44:51 RRSAgent, make logs public 01:44:54 koalie has changed the topic to: https://w3c.github.io/tpac-breakouts/sessions.html 01:44:56 koalie has left #groupautomation 02:02:00 yoshiaki has joined #groupautomation 02:34:02 yoshiaki_ has joined #groupautomation 02:45:07 yoshiaki has joined #groupautomation 02:52:05 yoshiaki has joined #groupautomation 03:22:30 denis has joined #groupautomation 03:57:23 denis has joined #groupautomation 03:59:59 yoshiaki has joined #groupautomation 04:31:41 yoshiaki has joined #groupautomation 04:40:29 denis has joined #groupautomation 05:17:38 yoshiaki has joined #groupautomation 05:34:23 yoshiaki_ has joined #groupautomation 05:35:00 yoshiaki_ has joined #groupautomation 05:37:51 denis has joined #groupautomation 05:41:16 yoshiaki has joined #groupautomation 05:43:29 yoshiaki_ has joined #groupautomation 05:50:06 yoshiaki has joined #groupautomation 06:00:14 yoshiaki has joined #groupautomation 06:07:45 yoshiaki has joined #groupautomation 06:32:08 yoshiaki has joined #groupautomation 06:59:01 denis has joined #groupautomation 07:31:36 yoshiaki has joined #groupautomation 07:39:05 denis has joined #groupautomation 08:12:17 denis has joined #groupautomation 08:17:02 hyojin has joined #groupautomation 08:27:29 yoshiaki has joined #groupautomation 08:28:11 yoshiaki has joined #groupautomation 08:31:03 denis has joined #groupautomation 08:32:48 astearns has joined #groupautomation 08:32:51 gsnedders has joined #groupautomation 08:33:40 yoshiaki_ has joined #groupautomation 08:34:06 Ralph has joined #groupautomation 08:34:20 rtoyg_m2 has joined #groupautomation 08:34:20 cb has joined #groupautomation 08:34:26 JohnRIv has joined #groupautomation 08:34:27 AmeliaBR has joined #groupautomation 08:34:29 present+ 08:34:31 present+ 08:34:36 Zakim has joined #groupautomation 08:35:19 ada has joined #groupautomation 08:35:23 present+ ada 08:35:48 present+ 08:36:07 Scribenick: AmeliaBR 08:36:33 ada: You're going to see how I chair a WG & how I automate work. 08:36:52 ... I'm really lazy, so I use a bot to do as much as I can, or to pass responsibility to other members. 08:37:32 jorydotcom has joined #groupautomation 08:37:43 present+ 08:38:14 ... Things like organizing meetings & assembling agendas. I have a bot that find agenda tags people have added anywhere in our GitHub organization and compile it as an agenda, with who tagged it & why & a link to the issue. It turns it into a PR on our schedules. 08:38:18 yofukami has joined #groupautomation 08:38:27 astearns: How do you know *why* someone tagged an issue? 08:38:48 ada: They have to leave a comment "/agenda {reasons}". 08:39:17 ... This makes it easier when I'm chairing meetings. I know which person to pass the issue to for discussion. 08:39:50 ... We also generate newsletters that we send to implementers, e.g., what's changed in the spec, this also uses tags. 08:40:03 ... But it's still too much work. I need to tag all the PRs myself. 08:40:11 ... want to automate that. 08:40:42 ... I also have a way group members can leave a "/editor triage" comment & it goes in a queue for editor attention. 08:40:43 Chuck has joined #groupautomation 08:41:51 ... It really helps everyone work asynchronously. People aren't waiting for me to wake up when they're in another timezone if they want to add something to the agenda. But it isn't fully automated, I can always review. 08:42:01 ... I'm more a chair cyborg than a chair robot. 08:42:42 ... GitHub makes all this work. All our agendas and communication are in repos. We don't really use mailing lists. 08:43:09 link: https://iw-agenda-generator.glitch.me 08:44:33 This is one of the first tools I created (screen shot of a web form). I just fill in a few things and it creates a PR for an agenda. It doesn't even need authentication; it uses the public API, then creates the PR as a GET request, with all the text crammed into the URL on GitHub. Then everything's populated for the PR. 08:44:44 s/This/...This/ 08:45:11 ... The app includes a Markdown preview so I can see what it will look like ahead of time. 08:45:32 q: Now, these agenda items all came from "/agenda" comments? 08:45:50 ada: yes, I can click through to that issue and show you where it is [demonstrates] 08:46:09 s/q:/Ralph:/ 08:46:53 ... Another useful GitHub tool is there search interface. You can create a fetch query with search parameters, it can even search across repos. 08:47:07 rtoyg_m3 has joined #groupautomation 08:47:09 ... This gives you a big JSON of results. 08:47:38 s/Another useful GitHub tool is there/Underlying all this is just the GitHub/ 08:48:34 plh: So this is just searching for the label. How do you know if an agenda request is better waiting for another meeting? 08:49:26 ada: You could create a different label, e.g. for a F2F meeting. Or I can just see the comment when I'm reviewing and edit it out of the markdown file. 08:51:07 ada: For generating PRs automatically, it's just a link target that compiles all the data into the URL query. There are limits on how many characters you can include; I haven't had much problem with that for this use case; I limit people's comments to the first two paragraphs. 08:52:05 ada: This approach has changed building an agenda from half day to a few minutes. I used to have to poke everyone, now I wait for them to make an agenda request. 08:53:58 ada: We have other labels for automation, e.g. "fixed by pending PR". A bot sees the PR & finds the matching issue & adds the labels. 08:54:28 AmeliaBR: GitHub now has something like "fixed by pending PR". But it's very subtle, doesn't show up everywhere. 08:54:36 dbaron has joined #groupautomation 08:54:38 ada: Well, this is a big hammer. 08:55:11 ... The other benefit of label bots is that they can add labels for users who don't have those permissions. 08:55:42 ... Our probot has a GH account, which has the right permissions on our repo. 08:56:01 link: https://glitch.com/~probot-hello-world 08:56:01 link: https://glitch.com/~probot-label 08:56:13 ... The bot itself runs as a Glitch app. You can remix it to adapt it for your repo. 08:56:41 ... There's a YAML file that describes what types of GitHub events it needs to respond to. 08:57:33 ... I built it on someone else's bot code. My own first bot was only 9 lines of custom JS. 08:57:37 rtoyg_m2 has joined #groupautomation 08:57:37 vivien has joined #groupautomation 08:57:58 ... It looked for the /agenda comment and added the correct labels. 08:58:35 ... Something similar for how people can mark a PR as fixing issues. 09:00:05 ... Of course, you can do more complex stuff. My latest bot scans all sorts of comments, which gets rate limited by GitHub API unless you're authenticated. But you won't always need that. This was an extra thing I needed for our F2F agenda. 09:00:40 q+ 09:00:44 ... Any questions about these, or has anyone else built bots? 09:00:45 Slide notes: https://docs.google.com/presentation/d/101Ox-tQ0LdNrulvkPrOidaGpUo3He98zKGQL8x2Rrds/edit#slide=id.g6348c6e6c6_0_7 09:00:49 ack jorydotcom 09:00:50 rtoyg_m2 has joined #groupautomation 09:01:07 plh: This is really cool, we of course have lots of bots with W3C, but I haven't seen some of this. 09:01:46 jorydotcom: I second that. This is really cool, I can definitely use lots of this. 09:01:48 q+ 09:01:57 ... Could you say more about your newsletter? 09:02:35 ada: The newsletter goes out to the immersive web public list. 09:03:10 ... [ shows the repo and an example of the markdown rendered on GitHub's viewer] 09:03:58 ... I tagged various PRs to group them into different categories. I plan to automate it so a bot will tell which types of files the PR modifies & categorizes it accordingly. 09:05:19 hober has joined #groupautomation 09:06:17 ... Some things have changed over time. I initially included the first PR comment as the description, but that often gets out of date by the time a PR is merged. So now it's the final comment & the editors fill it in. And since they use Markdown on GH, it gets pulled in and added to the newsletter nicely formatted. The group editors do this when they're creating the merge commit. 09:06:29 jorydotcom: Is this also your probot? 09:06:41 https://glitch.com/~iw-newsletter-generator 09:06:49 ada: No, it's another bot. Very similar to the agenda bot; it's also on glitch. 09:07:55 ... It does a GitHub Fetch, authenticated with my GH user name and API key. 09:08:13 ... Some of these parameters are just copied from GH docs. 09:08:49 ... The fetch returns JSON & then I extract the markdown bits and put in a template. 09:09:22 ... The query search looks for repos in our organization, labels, and so on. 09:09:49 present+ 09:09:49 ... It's a complex search URL, but you don't have to create it by hand. It's the same URL you'd get after constructing a search from the advanced search web page. 09:10:56 ... One thing: that search actually finds issue object. PRs on GH are both issues and PR objects. So there's a separate fetch to get the extra PR object data, based on the issue number. 09:11:49 ... I do end up really hammering the API endpoint, takes a few minutes, but in the end I have a JSON object with all the information I need. 09:12:51 plh has joined #groupautomation 09:13:25 ... Another thing that's interesting is about the tags — I'll need to go tag a PR just so you can see it in action — this PR touches both markdown and bikeshed. So I need to tag it as both changes to explainer and spec. This is the slow part I want to automate. 09:14:00 ... Now I run my app — and it's not showing up. 09:14:12 AmeliaBR: Maybe a caching delay on the GH API? 09:15:57 ada: Maybe. I can show another app. This one looks for the F2F tag. What I wanted to show was the SVG version of the GitHub tags with their colour backgrounds, so they show up pretty. I use a node library for that. You give it the text and the colour, it generates an SVG that looks like the GitHub native tags. And the GitHub API exposes the colour you need in the issue data. 09:16:46 https://glitch.com/~iw-find-by-label 09:17:36 ada: I can also show you the final source code for my robot. It has three commands to automatically add labels. 09:17:56 https://glitch.com/~probot-label 09:19:10 ... Now, you'll also need to know how to install robots from the GitHub interface. Go to the organization, then Settings, then Installed GitHub Apps. So that's where I gave permissions to the probot-label app. 09:19:37 q? 09:19:43 ... For repos on the w3c organization, you probably want to control these permissions by repo, instead of searching across the full organization. 09:20:11 astearns: You mentioned that you put your meeting minutes in GitHub. Do you have that automated? 09:20:30 ack astearns 09:20:54 duerst has joined #groupautomation 09:20:54 ada: No, a group member copies the minutes generated by RRSAgent into a PR and works from there. 09:21:02 present+ 09:21:09 q+ 09:21:49 s/minutes/minutes URL/ 09:21:54 astearns: Are there auto links to the exact section for each issue? 09:22:11 ada: no, just one link to the full minutes 09:25:47 ada: It's not really a W3C thing, but something else I've automated at Samsung is this page that shows sponsorship requests for our events. That's all pulled from issues in our internal repo. If someone wants to sponsor, there's a link to fill in a form, that generates the issue. It has a checkbox list that we can then mark the steps being done. 09:26:10 ack next 09:26:12 plh: Is there an event that a bot can listen to for when those checks happen. 09:26:29 ada: Not that I know of, but I haven't needed it yet. 09:26:59 duerst: You mentioned about not wanting your bots to search all of w3c, but for internationalization that would be very useful. 09:27:24 plh: We do have some organization level bots at w3c, we could do that. 09:28:05 ada: You could use my bot for that type of thing, just need the permissions. 09:28:19 duerst: We have the labels already, just need a good way to keep track. 09:29:31 ada: And you can also do select repositories if need be. It's an option in the permissions, which repositories a bot has access to. 09:29:54 ... The real magic is the labelling bot. It allows anyone to add these specific labels. 09:30:21 https://github.com/dontcallmedom/github-notify-ml-config/blob/master/mls.json 09:31:35 ... For something really simple, like searching for labels for an agenda, you don't even need an API key. 09:32:17 plh: this is an example of a config we have set up for one of our W3C bots, which allows individual chairs to opt in for their repos. 09:32:30 https://github.com/w3c/validate-repos/blob/master/report.json 09:33:30 q? 09:34:08 ada: Already, my agenda bot is used by others. E.g., Dan used it for TAG. But, that turned out to have issues; they had more agenda requests than get returned in a single GH API response & I don't currently page through extra responses. But you're all welcome to fork & expand on them. 09:34:49 yoshiaki has joined #groupautomation 09:36:33 RRSAgent: make minutes 09:36:33 I have made the request to generate https://www.w3.org/2019/09/18-groupautomation-minutes.html AmeliaBR 09:36:44 zakim, bye 09:36:44 leaving. As of this point the attendees have been ada, AmeliaBR, jorydotcom, hober, duerst 09:36:44 Zakim has left #groupautomation 09:37:56 https://github.com/stilliard/github-task-list-completed 09:38:08 ^^^ Probot example for list completion 09:38:55 yoshiaki_ has joined #groupautomation 09:49:38 dbaron has left #groupautomation 10:15:46 plh has joined #groupautomation 10:47:27 plh has joined #groupautomation 12:46:48 plh has joined #groupautomation 13:33:49 vivien has left #groupautomation 16:19:51 plh has joined #groupautomation