IRC log of groupautomation on 2019-09-18

Timestamps are in UTC.

01:44:49 [RRSAgent]
RRSAgent has joined #groupautomation
01:44:49 [RRSAgent]
logging to https://www.w3.org/2019/09/18-groupautomation-irc
01:44:51 [koalie]
RRSAgent, make logs public
01:44:54 [koalie]
koalie has changed the topic to: https://w3c.github.io/tpac-breakouts/sessions.html
01:44:56 [koalie]
koalie has left #groupautomation
02:02:00 [yoshiaki]
yoshiaki has joined #groupautomation
02:34:02 [yoshiaki_]
yoshiaki_ has joined #groupautomation
02:45:07 [yoshiaki]
yoshiaki has joined #groupautomation
02:52:05 [yoshiaki]
yoshiaki has joined #groupautomation
03:22:30 [denis]
denis has joined #groupautomation
03:57:23 [denis]
denis has joined #groupautomation
03:59:59 [yoshiaki]
yoshiaki has joined #groupautomation
04:31:41 [yoshiaki]
yoshiaki has joined #groupautomation
04:40:29 [denis]
denis has joined #groupautomation
05:17:38 [yoshiaki]
yoshiaki has joined #groupautomation
05:34:23 [yoshiaki_]
yoshiaki_ has joined #groupautomation
05:35:00 [yoshiaki_]
yoshiaki_ has joined #groupautomation
05:37:51 [denis]
denis has joined #groupautomation
05:41:16 [yoshiaki]
yoshiaki has joined #groupautomation
05:43:29 [yoshiaki_]
yoshiaki_ has joined #groupautomation
05:50:06 [yoshiaki]
yoshiaki has joined #groupautomation
06:00:14 [yoshiaki]
yoshiaki has joined #groupautomation
06:07:45 [yoshiaki]
yoshiaki has joined #groupautomation
06:32:08 [yoshiaki]
yoshiaki has joined #groupautomation
06:59:01 [denis]
denis has joined #groupautomation
07:31:36 [yoshiaki]
yoshiaki has joined #groupautomation
07:39:05 [denis]
denis has joined #groupautomation
08:12:17 [denis]
denis has joined #groupautomation
08:17:02 [hyojin]
hyojin has joined #groupautomation
08:27:29 [yoshiaki]
yoshiaki has joined #groupautomation
08:28:11 [yoshiaki]
yoshiaki has joined #groupautomation
08:31:03 [denis]
denis has joined #groupautomation
08:32:48 [astearns]
astearns has joined #groupautomation
08:32:51 [gsnedders]
gsnedders has joined #groupautomation
08:33:40 [yoshiaki_]
yoshiaki_ has joined #groupautomation
08:34:06 [Ralph]
Ralph has joined #groupautomation
08:34:20 [rtoyg_m2]
rtoyg_m2 has joined #groupautomation
08:34:20 [cb]
cb has joined #groupautomation
08:34:26 [JohnRIv]
JohnRIv has joined #groupautomation
08:34:27 [AmeliaBR]
AmeliaBR has joined #groupautomation
08:34:29 [Ralph]
present+
08:34:31 [cb]
present+
08:34:36 [Zakim]
Zakim has joined #groupautomation
08:35:19 [ada]
ada has joined #groupautomation
08:35:23 [ada]
present+ ada
08:35:48 [AmeliaBR]
present+
08:36:07 [AmeliaBR]
Scribenick: AmeliaBR
08:36:33 [AmeliaBR]
ada: You're going to see how I chair a WG & how I automate work.
08:36:52 [AmeliaBR]
... 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]
jorydotcom has joined #groupautomation
08:37:43 [jorydotcom]
present+
08:38:14 [AmeliaBR]
... 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]
yofukami has joined #groupautomation
08:38:27 [AmeliaBR]
astearns: How do you know *why* someone tagged an issue?
08:38:48 [AmeliaBR]
ada: They have to leave a comment "/agenda {reasons}".
08:39:17 [AmeliaBR]
... This makes it easier when I'm chairing meetings. I know which person to pass the issue to for discussion.
08:39:50 [AmeliaBR]
... We also generate newsletters that we send to implementers, e.g., what's changed in the spec, this also uses tags.
08:40:03 [AmeliaBR]
... But it's still too much work. I need to tag all the PRs myself.
08:40:11 [AmeliaBR]
... want to automate that.
08:40:42 [AmeliaBR]
... 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]
Chuck has joined #groupautomation
08:41:51 [AmeliaBR]
... 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 [AmeliaBR]
... I'm more a chair cyborg than a chair robot.
08:42:42 [AmeliaBR]
... GitHub makes all this work. All our agendas and communication are in repos. We don't really use mailing lists.
08:43:09 [jorydotcom]
link: https://iw-agenda-generator.glitch.me
08:44:33 [AmeliaBR]
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 [AmeliaBR]
s/This/...This/
08:45:11 [AmeliaBR]
... The app includes a Markdown preview so I can see what it will look like ahead of time.
08:45:32 [AmeliaBR]
q: Now, these agenda items all came from "/agenda" comments?
08:45:50 [AmeliaBR]
ada: yes, I can click through to that issue and show you where it is [demonstrates]
08:46:09 [gsnedders]
s/q:/Ralph:/
08:46:53 [AmeliaBR]
... 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]
rtoyg_m3 has joined #groupautomation
08:47:09 [AmeliaBR]
... This gives you a big JSON of results.
08:47:38 [AmeliaBR]
s/Another useful GitHub tool is there/Underlying all this is just the GitHub/
08:48:34 [AmeliaBR]
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 [AmeliaBR]
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 [AmeliaBR]
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 [AmeliaBR]
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 [AmeliaBR]
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]
AmeliaBR: GitHub now has something like "fixed by pending PR". But it's very subtle, doesn't show up everywhere.
08:54:36 [dbaron]
dbaron has joined #groupautomation
08:54:38 [AmeliaBR]
ada: Well, this is a big hammer.
08:55:11 [AmeliaBR]
... The other benefit of label bots is that they can add labels for users who don't have those permissions.
08:55:42 [AmeliaBR]
... Our probot has a GH account, which has the right permissions on our repo.
08:56:01 [jorydotcom]
link: https://glitch.com/~probot-hello-world
08:56:01 [jorydotcom]
link: https://glitch.com/~probot-label
08:56:13 [AmeliaBR]
... The bot itself runs as a Glitch app. You can remix it to adapt it for your repo.
08:56:41 [AmeliaBR]
... There's a YAML file that describes what types of GitHub events it needs to respond to.
08:57:33 [AmeliaBR]
... 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]
rtoyg_m2 has joined #groupautomation
08:57:37 [vivien]
vivien has joined #groupautomation
08:57:58 [AmeliaBR]
... It looked for the /agenda comment and added the correct labels.
08:58:35 [AmeliaBR]
... Something similar for how people can mark a PR as fixing issues.
09:00:05 [AmeliaBR]
... 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 [jorydotcom]
q+
09:00:44 [AmeliaBR]
... Any questions about these, or has anyone else built bots?
09:00:45 [ada]
Slide notes: https://docs.google.com/presentation/d/101Ox-tQ0LdNrulvkPrOidaGpUo3He98zKGQL8x2Rrds/edit#slide=id.g6348c6e6c6_0_7
09:00:49 [ada]
ack jorydotcom
09:00:50 [rtoyg_m2]
rtoyg_m2 has joined #groupautomation
09:01:07 [AmeliaBR]
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 [AmeliaBR]
jorydotcom: I second that. This is really cool, I can definitely use lots of this.
09:01:48 [astearns]
q+
09:01:57 [AmeliaBR]
... Could you say more about your newsletter?
09:02:35 [AmeliaBR]
ada: The newsletter goes out to the immersive web public list.
09:03:10 [AmeliaBR]
... [ shows the repo and an example of the markdown rendered on GitHub's viewer]
09:03:58 [AmeliaBR]
... 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]
hober has joined #groupautomation
09:06:17 [AmeliaBR]
... 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 [AmeliaBR]
jorydotcom: Is this also your probot?
09:06:41 [ada]
https://glitch.com/~iw-newsletter-generator
09:06:49 [AmeliaBR]
ada: No, it's another bot. Very similar to the agenda bot; it's also on glitch.
09:07:55 [AmeliaBR]
... It does a GitHub Fetch, authenticated with my GH user name and API key.
09:08:13 [AmeliaBR]
... Some of these parameters are just copied from GH docs.
09:08:49 [AmeliaBR]
... The fetch returns JSON & then I extract the markdown bits and put in a template.
09:09:22 [AmeliaBR]
... The query search looks for repos in our organization, labels, and so on.
09:09:49 [hober]
present+
09:09:49 [AmeliaBR]
... 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 [AmeliaBR]
... 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 [AmeliaBR]
... 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]
plh has joined #groupautomation
09:13:25 [AmeliaBR]
... 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 [AmeliaBR]
... Now I run my app — and it's not showing up.
09:14:12 [AmeliaBR]
AmeliaBR: Maybe a caching delay on the GH API?
09:15:57 [AmeliaBR]
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 [ada]
https://glitch.com/~iw-find-by-label
09:17:36 [AmeliaBR]
ada: I can also show you the final source code for my robot. It has three commands to automatically add labels.
09:17:56 [ada]
https://glitch.com/~probot-label
09:19:10 [AmeliaBR]
... 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 [jorydotcom]
q?
09:19:43 [AmeliaBR]
... 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 [AmeliaBR]
astearns: You mentioned that you put your meeting minutes in GitHub. Do you have that automated?
09:20:30 [jorydotcom]
ack astearns
09:20:54 [duerst]
duerst has joined #groupautomation
09:20:54 [AmeliaBR]
ada: No, a group member copies the minutes generated by RRSAgent into a PR and works from there.
09:21:02 [duerst]
present+
09:21:09 [duerst]
q+
09:21:49 [AmeliaBR]
s/minutes/minutes URL/
09:21:54 [AmeliaBR]
astearns: Are there auto links to the exact section for each issue?
09:22:11 [AmeliaBR]
ada: no, just one link to the full minutes
09:25:47 [AmeliaBR]
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 [ada]
ack next
09:26:12 [AmeliaBR]
plh: Is there an event that a bot can listen to for when those checks happen.
09:26:29 [AmeliaBR]
ada: Not that I know of, but I haven't needed it yet.
09:26:59 [AmeliaBR]
duerst: You mentioned about not wanting your bots to search all of w3c, but for internationalization that would be very useful.
09:27:24 [AmeliaBR]
plh: We do have some organization level bots at w3c, we could do that.
09:28:05 [AmeliaBR]
ada: You could use my bot for that type of thing, just need the permissions.
09:28:19 [AmeliaBR]
duerst: We have the labels already, just need a good way to keep track.
09:29:31 [AmeliaBR]
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 [AmeliaBR]
... The real magic is the labelling bot. It allows anyone to add these specific labels.
09:30:21 [plh]
https://github.com/dontcallmedom/github-notify-ml-config/blob/master/mls.json
09:31:35 [AmeliaBR]
... For something really simple, like searching for labels for an agenda, you don't even need an API key.
09:32:17 [AmeliaBR]
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 [plh]
https://github.com/w3c/validate-repos/blob/master/report.json
09:33:30 [ada]
q?
09:34:08 [AmeliaBR]
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]
yoshiaki has joined #groupautomation
09:36:33 [AmeliaBR]
RRSAgent: make minutes
09:36:33 [RRSAgent]
I have made the request to generate https://www.w3.org/2019/09/18-groupautomation-minutes.html AmeliaBR
09:36:44 [Ralph]
zakim, bye
09:36:44 [Zakim]
leaving. As of this point the attendees have been ada, AmeliaBR, jorydotcom, hober, duerst
09:36:44 [Zakim]
Zakim has left #groupautomation
09:37:56 [vivien]
https://github.com/stilliard/github-task-list-completed
09:38:08 [ada]
^^^ Probot example for list completion
09:38:55 [yoshiaki_]
yoshiaki_ has joined #groupautomation
09:49:38 [dbaron]
dbaron has left #groupautomation
10:15:46 [plh]
plh has joined #groupautomation
10:47:27 [plh]
plh has joined #groupautomation
12:46:48 [plh]
plh has joined #groupautomation
13:33:49 [vivien]
vivien has left #groupautomation
16:19:51 [plh]
plh has joined #groupautomation