{"id":42057583,"url":"https://github.com/qqrm/twir-deploy-notify","last_synced_at":"2026-01-26T07:17:21.761Z","repository":{"id":301253989,"uuid":"1008655377","full_name":"qqrm/twir-deploy-notify","owner":"qqrm","description":null,"archived":false,"fork":false,"pushed_at":"2026-01-18T01:55:11.000Z","size":490,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-18T13:55:31.582Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/qqrm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE_QQRM_LAPOCHKA","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"DOCS/ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-06-25T22:19:37.000Z","updated_at":"2026-01-18T01:55:13.000Z","dependencies_parsed_at":"2025-07-11T13:10:56.616Z","dependency_job_id":"f3f0ea1e-b962-4d0b-9602-e88b30d8af5e","html_url":"https://github.com/qqrm/twir-deploy-notify","commit_stats":null,"previous_names":["qqrm/twir-deploy-notify"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/qqrm/twir-deploy-notify","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qqrm%2Ftwir-deploy-notify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qqrm%2Ftwir-deploy-notify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qqrm%2Ftwir-deploy-notify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qqrm%2Ftwir-deploy-notify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qqrm","download_url":"https://codeload.github.com/qqrm/twir-deploy-notify/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qqrm%2Ftwir-deploy-notify/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28769585,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T06:37:25.426Z","status":"ssl_error","status_checked_at":"2026-01-26T06:37:23.039Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2026-01-26T07:17:21.700Z","updated_at":"2026-01-26T07:17:21.747Z","avatar_url":"https://github.com/qqrm.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TWIR Deploy Notify\n\nTWIR Deploy Notify is a small Rust CLI that turns the latest This Week in Rust issue into a series of Telegram posts.\n\nWhat it does:\n\n1. Finds the newest TWIR Markdown issue file in `this-week-in-rust/content`.\n2. Parses the issue into sections.\n3. Generates Telegram friendly messages:\n   - one Telegram post per section\n   - automatically splits sections and overly long lines to fit Telegram limits\n   - appends the issue link (derived from issue number and date) to each post\n4. Sends the posts to the configured Telegram chat.\n5. Pins the first sent message and removes the service notification.\n6. Cleans up any previously generated `output_*.md` files before writing new ones.\n\n## Why it exists\n\n- TWIR issues are long, and Telegram has message size limits.\n- You want consistent formatting and splitting without manual editing.\n- You want a repeatable way to publish the latest issue to one or more chats.\n\n## Requirements\n\n- Rust toolchain (stable).\n- A local clone of `rust-lang/this-week-in-rust` with the `content` directory available.\n- Telegram bot token and chat id.\n\n## Setup for local use\n\nClone TWIR into a `twir` subdirectory (sparse checkout of `content`):\n\n```bash\ngit clone --depth 1 --filter=blob:none --sparse https://github.com/rust-lang/this-week-in-rust twir \u0026\u0026 cd twir \u0026\u0026 git sparse-checkout set content \u0026\u0026 cd ..\n```\n\n## Run\n\n```bash\ncargo run --bin twir-deploy-notify -- twir/content/\u003cfile-name\u003e.md\n```\n\nGenerate plain text instead of Telegram markup:\n\n```bash\ncargo run --bin twir-deploy-notify -- --plain twir/content/\u003cfile-name\u003e.md\n```\n\nEnable detailed logs:\n\n```bash\nRUST_LOG=info cargo run --bin twir-deploy-notify -- twir/content/\u003cfile-name\u003e.md\n```\n\n## Configuration\n\nEnvironment variables for sending to Telegram:\n\n- `DEV_BOT_TOKEN` and `DEV_CHAT_ID` dev chat credentials\n- `PROD_BOT_TOKEN` and `PROD_CHAT_ID` production chat credentials\n  - If `*_CHAT_ID` is numeric, it is automatically prefixed with `-100` when sending requests to Telegram\n- `TWIR_SKIP_DEVELOPER_SEND` optional boolean that skips the developer send\n- `TWIR_SKIP_PRODUCTION_SEND` optional boolean that skips the production send\n\nIf neither credential pair is fully configured, the CLI exits with an error. Partial configuration (only one variable from a pair) is also treated as an error.\n\n## License\n\nSee `LICENSE_QQRM_LAPOCHKA`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqqrm%2Ftwir-deploy-notify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqqrm%2Ftwir-deploy-notify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqqrm%2Ftwir-deploy-notify/lists"}