{"id":20540804,"url":"https://github.com/philip-gai/announcement-drafter","last_synced_at":"2026-02-12T20:09:37.024Z","repository":{"id":37042044,"uuid":"416156805","full_name":"philip-gai/announcement-drafter","owner":"philip-gai","description":"A bot for drafting and publishing GitHub discussions using pull requests.","archived":false,"fork":false,"pushed_at":"2026-01-22T07:09:33.000Z","size":32358,"stargazers_count":13,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-22T11:42:36.026Z","etag":null,"topics":["announcements","automation","bot","discussions","drafts","github","github-app","probot-app","pull-requests"],"latest_commit_sha":null,"homepage":"https://github.com/apps/announcement-drafter","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/philip-gai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["philip-gai"]}},"created_at":"2021-10-12T02:37:08.000Z","updated_at":"2026-01-22T07:17:23.000Z","dependencies_parsed_at":"2025-04-14T08:38:57.622Z","dependency_job_id":"4cd42a39-ebda-49a8-97d6-0200845da913","html_url":"https://github.com/philip-gai/announcement-drafter","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/philip-gai/announcement-drafter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philip-gai%2Fannouncement-drafter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philip-gai%2Fannouncement-drafter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philip-gai%2Fannouncement-drafter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philip-gai%2Fannouncement-drafter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/philip-gai","download_url":"https://codeload.github.com/philip-gai/announcement-drafter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philip-gai%2Fannouncement-drafter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29379997,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T19:05:20.189Z","status":"ssl_error","status_checked_at":"2026-02-12T19:01:44.216Z","response_time":55,"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":["announcements","automation","bot","discussions","drafts","github","github-app","probot-app","pull-requests"],"created_at":"2024-11-16T01:17:42.573Z","updated_at":"2026-02-12T20:09:37.018Z","avatar_url":"https://github.com/philip-gai.png","language":"TypeScript","funding_links":["https://github.com/sponsors/philip-gai"],"categories":[],"sub_categories":[],"readme":"# Announcement Drafter\n\n[![Web App CI / CD](https://github.com/philip-gai/announcement-drafter/actions/workflows/web-app-ci-cd.yml/badge.svg)](https://github.com/philip-gai/announcement-drafter/actions/workflows/web-app-ci-cd.yml)\n[![App Service CI / CD](https://github.com/philip-gai/announcement-drafter/actions/workflows/infrastructure-ci-cd.yml/badge.svg)](https://github.com/philip-gai/announcement-drafter/actions/workflows/infrastructure-ci-cd.yml)\n![Language Count](https://img.shields.io/github/languages/count/philip-gai/announcement-drafter?label=Languages)\n![Top Language](https://img.shields.io/github/languages/top/philip-gai/announcement-drafter)\n![GitHub Repo stars](https://img.shields.io/github/stars/philip-gai/announcement-drafter?style=social)\n\nA 🤖 \u0026nbsp;for drafting and publishing new GitHub discussions using pull requests.\n\nDo you use GitHub discussions? Do you create announcements for your open-source projects or team posts? How do you get feedback or peer reviews on your post before creating it?\n\nNow you can:\n\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;1️⃣ \u0026nbsp;Create a pull request to get feedback from your teammates on your announcement\\\n\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;2️⃣ \u0026nbsp;Merge the pull request to have your announcement posted!\n\nYou can even use private repos to draft announcements and get feedback privately, and on merge have the announcement created in your public repo.\n\nNo more copy/pasting your post content into Google Docs. No more rewriting the markdown. Write the markdown once, get feedback and merge 🚀 This works on repository discussions, organization discussions, and legacy team posts.\n\n## Getting Started\n\n1. Install the [GitHub App](https://github.com/apps/announcement-drafter) and authorize it for any repositories or orgs you would like it to watch or post to.\n2. Add a `.github/announcement-drafter.yml` (not `.yaml`) configuration file to any repositories you want the bot to watch.\n\n   1. Provide what folders you want the `announcement-drafter` bot to watch and (optionally) what folders you would like it to ignore when new pull requests are open.\n\n   ```yml\n   watch_folders:\n     - docs/discussions/\n   ```\n\n3. Create a markdown (`*.md`) file with some metadata at the top - see [Draft an Org or Repository Discussion](#draft-an-org-or-repository-discussion) or [Draft a team post](#draft-a-team-post)\n4. Write your discussion in the body of the markdown file\n5. Create a pull request\n6. `announcement-drafter` will pick it up\n7. When the pull request is merged, it will create the discussion for you\n\n### Draft an Org or Repository Discussion\n\nA note on org discussions: Org discussions are backed by repository discussions, so just point to the repository used by your org discussions and 🪄 it will work!\n\n```markdown\n\u003c!--\nrepo: https://github.com/philip-gai/announcement-drafter-demo\ncategory: announcements\nlabels: enhancement, documentation\n--\u003e\n\n\u003c!-- This is the discussion title --\u003e\n# Hello World! 👋\n\n\u003c!-- This is the discussion body --\u003e\nHello beautiful world! 🌎\n\n```\n\n### Draft a Team Post\n\n```markdown\n\u003c!--\nteam: https://github.com/orgs/elastico-group/teams/everyone\n--\u003e\n\n\u003c!-- This is the post title --\u003e\n# Hello World! 👋\n\n\u003c!-- This is the post body --\u003e\nHello beautiful world! 🌎\n\n```\n\n## Demos\n\nDemo repo: [announcement-drafter demo]\n\n## Markdown Metadata\n\n| Name             | Description                                                                                                                                                                      | Required                                                 | Example                                                   |\n| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------- | --------------------------------------------------------- |\n| `repository` or `repo`     | The full url to the repository to create the discussion in\u003cbr/\u003e**Prerequisites:**\u003cbr/\u003e\u0026nbsp;\u0026nbsp;1. Discussions are enabled\u003cbr/\u003e\u0026nbsp;\u0026nbsp;2. The app is installed on the repo | **Conditional**: Required if no `team` is provided       | `https://github.com/philip-gai/announcement-drafter-demo` |\n| `team`           | The full url to the team to create the discussion in\u003cbr/\u003e**Prerequisites:**\u003cbr/\u003e\u0026nbsp;\u0026nbsp;1. The app is installed on the team organization                                     | **Conditional**: Required if no `repository` is provided | `https://github.com/orgs/elastico-group/teams/everyone`   |\n| `category`       | The name of the discussion category                                                                                                                                              | **Conditional**: Required if `repository` is provided    | `announcements`                                           |\n| `labels`         | Labels to add to the discussion. Can be comma-separated or YAML list format\u003cbr/\u003e**Note:** Labels must already exist in the target repository                                      | No                                                       | `enhancement, documentation` or YAML list                 |\n| Discussion Title | The title of your discussion should be the first top-level header (i.e. `# Discussion Title`)                                                                                    | Yes                                                      | See [Example](#draft-an-org-or-repository-discussion)                                  |\n| Discussion Body  | The body of your discussion is everything after the top-level header                                                                                                             | Yes                                                      | See [Example](#draft-an-org-or-repository-discussion)                                  |\n\n## App Configuration Options\n\nThese options should go in your repository's `.github/announcement-drafter.yml` file.\n\n| Name             | Description                                                                                                                                                                                                                                                                                              | Required | Example                                             |\n| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | --------------------------------------------------- |\n| `watch_folders`  | A list of what folders (relative paths) `announcement-drafter` should watch when new pull requests are open\u003cbr/\u003e\u0026nbsp;\u0026nbsp;1. It is recommened to include the final `/` in the path\u003cbr/\u003e\u0026nbsp;\u0026nbsp;2. `announcement-drafter` will also watch all subfolders unless you ignore them in `ignore_folders` | Yes      | [See demo config][announcement-drafter demo config] |\n| `ignore_folders` | A list of what folders (relative paths) `announcement-drafter` should _ignore_ when new pull requests are open                                                                                                                                                                                           | No       | [See demo config][announcement-drafter demo config] |\n\nExample announcement-drafter.yml:\n\n```yml\nwatch_folders:\n  - docs/discussions/\nignore_folders:\n  - docs/discussions/ignore/\n```\n\n## FAQ\n\n### I opened a pull request, but I never received a comment on the pull request from Announcement Drafter. What did I do wrong?\n\nMake sure that you:\n\n1. Installed the app on the repository you created the pull request from\n2. Added a `.github/announcement-drafter.yml` file to the repository with `watch_folders`\n3. Created a new `*.md` file inside one of the `watch_folders` from a branch\n   1. Announcement Drafter will *only* process files that were added. It will not process files that were removed, modified, renamed, copied, changed or unchanged.\n4. Opened a pull request targeting the repository's default branch (i.e. `main`)\n   1. Announcement Drafter will ignore draft pull requests\n\nAlso, try closing and re-opening your PR after making any changes to the announcement drafter configuration to trigger the flow again.\n\nIf you followed all of the above steps and are still experiencing issues, please [open an issue](https://github.com/philip-gai/announcement-drafter/issues/new?assignees=\u0026labels=bug\u0026template=bug_report.md\u0026title=) :slightly_smiling_face:\n\n## Contributing\n\nIf you have suggestions for how announcement-drafter could be improved, or want to report a bug, open an issue! We'd love all and any contributions.\n\nFor more, check out the [Contributing Guide](CONTRIBUTING.md).\n\n[announcement-drafter demo]: https://github.com/philip-gai/announcement-drafter-demo\n[announcement-drafter demo config]: https://github.com/philip-gai/announcement-drafter-demo/blob/main/.github/announcement-drafter.yml\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphilip-gai%2Fannouncement-drafter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphilip-gai%2Fannouncement-drafter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphilip-gai%2Fannouncement-drafter/lists"}