{"id":19877247,"url":"https://github.com/timursevimli/important-alerts","last_synced_at":"2026-06-10T11:31:49.201Z","repository":{"id":255660382,"uuid":"783058636","full_name":"timursevimli/important-alerts","owner":"timursevimli","description":"Important alerts from US Embassy","archived":false,"fork":false,"pushed_at":"2026-02-26T22:27:07.000Z","size":33,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-27T00:26:39.921Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/timursevimli.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":"2024-04-06T20:31:55.000Z","updated_at":"2026-02-26T22:27:11.000Z","dependencies_parsed_at":"2024-09-06T16:02:30.135Z","dependency_job_id":null,"html_url":"https://github.com/timursevimli/important-alerts","commit_stats":null,"previous_names":["timursevimli/important-alerts"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/timursevimli/important-alerts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timursevimli%2Fimportant-alerts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timursevimli%2Fimportant-alerts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timursevimli%2Fimportant-alerts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timursevimli%2Fimportant-alerts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/timursevimli","download_url":"https://codeload.github.com/timursevimli/important-alerts/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timursevimli%2Fimportant-alerts/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34151274,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-10T02:00:07.152Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":"2024-11-12T16:36:56.108Z","updated_at":"2026-06-10T11:31:49.193Z","avatar_url":"https://github.com/timursevimli.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# important-notifications\n\nA Go service that monitors US Embassy websites for new security alerts and forwards them to Telegram channels.\n\n## How It Works\n\nEvery hour the service scrapes the alerts page of each configured US Embassy website. If a new alert is detected (by comparing the title against the last stored one), it fetches the full alert content and sends it to the corresponding Telegram channel. Long messages are automatically split to respect Telegram's 4096-character limit.\n\n## Monitored Countries\n\n| Country | Embassy URL      | Telegram Channel   |\n| ------- | ---------------- | ------------------ |\n| Ukraine | ua.usembassy.gov | `CHANNEL_ID_UA`    |\n| Turkey  | tr.usembassy.gov | `CHANNEL_ID_TR`    |\n| Israel  | il.usembassy.gov | `CHANNEL_ID_IL`    |\n| Russia  | ru.usembassy.gov | `CHANNEL_ID_RU`    |\n\n## Requirements\n\n- Go 1.22+\n- A Telegram bot token\n\n## Configuration\n\nCreate a `.env` file (used only in `development` mode):\n\n```env\nBOT_TOKEN=your_telegram_bot_token\nAPP_ENV=development\nCHANNEL_ID_UA=-100123456789\nCHANNEL_ID_TR=-100123456789\nCHANNEL_ID_IL=-100123456789\nCHANNEL_ID_RU=-100123456789\n```\n\nIn production, set environment variables directly (e.g. via Docker Compose).\n\n| Variable        | Description                                      |\n| --------------- | ------------------------------------------------ |\n| `BOT_TOKEN`     | Telegram bot token                               |\n| `APP_ENV`       | Set to `development` to load `.env` file locally |\n| `CHANNEL_ID_UA` | Telegram channel ID for Ukraine alerts           |\n| `CHANNEL_ID_TR` | Telegram channel ID for Turkey alerts            |\n| `CHANNEL_ID_IL` | Telegram channel ID for Israel alerts            |\n| `CHANNEL_ID_RU` | Telegram channel ID for Russia alerts            |\n\n## Running Locally\n\n```bash\ngo run main.go\n```\n\n## Docker\n\nBuild and run with Docker Compose:\n\n```bash\ndocker-compose up -d\n```\n\nThe `titles/` directory is mounted as a volume so alert state persists across container restarts.\n\n## Project Structure\n\n```\n.\n├── main.go            # Application entry point\n├── useragent          # User-agent string used for HTTP requests\n├── titles/            # Stores the last seen alert title per country\n│   ├── il\n│   ├── ru\n│   ├── tr\n│   └── ua\n├── Dockerfile\n├── docker-compose.yml\n└── .env               # Local environment variables (not committed)\n```\n\n## License\n\nSee [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimursevimli%2Fimportant-alerts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftimursevimli%2Fimportant-alerts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimursevimli%2Fimportant-alerts/lists"}