{"id":17142936,"url":"https://github.com/dbaron/wgmeeting-github-ircbot","last_synced_at":"2025-04-13T09:32:25.553Z","repository":{"id":19909314,"uuid":"88060972","full_name":"dbaron/wgmeeting-github-ircbot","owner":"dbaron","description":"IRC bot to make github comments with relevant sections of Working Group Meeting IRC minutes.  Running as @css-meeting-bot.","archived":false,"fork":false,"pushed_at":"2025-04-03T19:06:54.000Z","size":783,"stargazers_count":14,"open_issues_count":13,"forks_count":17,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-03T20:22:56.961Z","etag":null,"topics":["github","irc-bot","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dbaron.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-04-12T14:26:33.000Z","updated_at":"2025-04-03T19:06:58.000Z","dependencies_parsed_at":"2024-07-24T19:24:17.405Z","dependency_job_id":"736bb2f5-a15d-478d-9468-5b3285e68db1","html_url":"https://github.com/dbaron/wgmeeting-github-ircbot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbaron%2Fwgmeeting-github-ircbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbaron%2Fwgmeeting-github-ircbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbaron%2Fwgmeeting-github-ircbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbaron%2Fwgmeeting-github-ircbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dbaron","download_url":"https://codeload.github.com/dbaron/wgmeeting-github-ircbot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248690892,"owners_count":21146227,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["github","irc-bot","rust"],"created_at":"2024-10-14T20:33:14.603Z","updated_at":"2025-04-13T09:32:25.215Z","avatar_url":"https://github.com/dbaron.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# The plan\n\nThis is an IRC bot to help solve a problem we have in [CSS Working\nGroup](https://wiki.csswg.org/) meetings, which is that we discuss a\ntopic for a while that has a GitHub issue, and then fail to make a note\nof that discussion in the GitHub issue.  Since minute taking in meetings\nhappens in IRC, an IRC bot is useful here.\n\nThe idea is that the bot will be in the channel, will split the IRC up\nbased on \"Topic:\" and start/end of meeting, and then if somebody writes\n\"Github: \u0026lt;github-url\u003e\" at some point within a topic\n(changeable/cancellable also with acknowledgment), it will acknowledge\nit and then when the topic concludes, make a comment in that GitHub\nissue at the end of the topic with the resolutions, and a \u0026lt;details\u003e\nwith the full IRC log, or something like that.  (Understanding \"Topic:\"\nitself being a github URL turned out badly because of multiple people\nentering the same topic leading to multiple short or empty comments.)\n\n(Ideally it will also understand ScribeNick: and the other\nscribe.perl conventions, but that's past minimum-viable-product, I\nthink.   Though ScribeNick should probably be doable quickly...)\n\n# How to use\n\nBegin a topic on IRC using `Topic:` or `Subtopic:`, and tell github-bot which issue to post to with `Github:`\n\n```\nTopic: [name of topic]\ngithub: [URL of a GitHub issue]\n```\n\nAlternatively, you can use `github-bot, topic [URL]` or `github-bot, subtopic [URL]` to ask github-bot to extract the topic from the issue summary and post a `Topic:` or `Subtopic:` line for you.\n\nThe bot responds to confirm the target issue:\n\n```\n* github-bot OK, I'll post this discussion to [URL of the GitHub issue]\n```\n\nDiscuss the topic on IRC.\n\nYou can declare resolutions, which are exerpted and highlighted:\n\n```\nRESOLVED: frob the snozwuzzle breadth-first\n```\n\nAs are summaries:\n\n```\nSUMMARY: Jack defeated the Giant.\n```\n\nTo end the transript, either begin a new topic:\n\n```\nTopic: Semantics of the gribble\n```\n\nor explictly end the topic:\n\n```\ngithub-bot, end topic\n```\n\nAt this point, the github-bot posts an IRC transcript to the issue and responds:\n\n```\n* github-bot Successfully commented on [URL of the GitHub issue]\n```\n\nThe comments that github-bot adds are everything since the last Topic was begun, even if that was before the `github: [URL]` was entered.\nIf multiple `github: [URL]` lines were entered during this topic, the last one wins.\n\n# Development notes\n\nIf you don't have Rust installed, start with [rustup](https://rustup.rs/).\n\nIf you want to use the bot to generate real GitHub comments, you'll need\nto [generate a GitHub personal access\ntoken](https://github.com/settings/tokens) while logged in to the GitHub\naccount that you want to make the comments, and put the personal access\ntoken in a file (say, `./github_access_token_file`).  Then you can\ncompile and run the bot with a single [`cargo`](http://doc.crates.io/)\ncommand, such as one of:\n\n    RUST_BACKTRACE=1 RUST_LOG=wgmeeting_github_ircbot cargo run ./src/config-dev.toml ./github_access_token_file\n    RUST_BACKTRACE=1 RUST_LOG=wgmeeting_github_ircbot cargo run --release ./src/config.toml ./github_access_token_file\n\nOr you could just run automated tests with a different single `cargo`\ncommand (which doesn't require an access token):\n\n    RUST_BACKTRACE=1 RUST_LOG=wgmeeting_github_ircbot,test_chats cargo test\n\nor for more verbosity:\n\n    RUST_BACKTRACE=1 RUST_LOG=wgmeeting_github_ircbot,test_chats,tokio_core,tokio_reactor cargo test\n\n# Do you want this bot for your working group?\n\nIf you want this bot for your working group that minutes its\nteleconferences on `irc.w3.org`, I'm happy to take pull requests to this\nrepository.  You need to add a new `channels` item in `src/config.toml`.\nThe channel name in the header gives the IRC channel, the `group` gives\nthe name of the working group used in comments on github issues, and the\n`github_repos_allowed` line lists github repositories that the bot is\nallowed to comment in.\n\n# Acknowledgments\n\nThanks to Xidorn Quan and Alan Stearns for feature suggestions, and to\nManish Goregaokar, Simon Sapin, Jack Moffitt, and Till Schneidereit for\nanswering my questions about Rust while I was trying to learn Rust while\nwriting this.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbaron%2Fwgmeeting-github-ircbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdbaron%2Fwgmeeting-github-ircbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbaron%2Fwgmeeting-github-ircbot/lists"}