PHPackages                             github-release-posts/github-release-posts - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. github-release-posts/github-release-posts

ActiveWordpress-plugin[Utility &amp; Helpers](/categories/utility)

github-release-posts/github-release-posts
=========================================

Automatically generate WordPress blog posts from GitHub releases using AI.

1.0.2(1w ago)1812[1 issues](https://github.com/jakemgold/github-release-posts-wordpress/issues)GPL-2.0-or-laterPHPPHP &gt;=8.2CI failing

Since Apr 25Pushed 6d agoCompare

[ Source](https://github.com/jakemgold/github-release-posts-wordpress)[ Packagist](https://packagist.org/packages/github-release-posts/github-release-posts)[ Docs](https://github.com/jakemgold/github-release-posts-wordpress)[ RSS](/packages/github-release-posts-github-release-posts/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (10)Dependencies (14)Versions (12)Used By (0)

Auto Release Posts for GitHub — WordPress Plugin
================================================

[](#auto-release-posts-for-github--wordpress-plugin)

**A WordPress plugin that automatically generates blog posts from GitHub releases using AI.**

Monitors GitHub repositories for new releases and uses AI to research each release and generate a human-readable blog post about it. Posts can be automatically published or held as drafts for review, with email notifications when new posts are ready.

Built on the **[AI Client API and Connectors](https://make.wordpress.org/core/2026/05/14/wordpress-7-0-field-guide/#ai-connectors-screen)** introduced in WordPress 7.0 — configure your AI provider (Anthropic, OpenAI, Google, or any other connector) once under Settings → Connectors, and this plugin uses whatever you've set up. No AI API keys to manage in the plugin itself.

Built by [Jake Goldman](https://www.linkedin.com/in/jacobgoldman/), founder of [10up](https://10up.com), and now a Partner / Advisor at [Fueled](https://fueled.com) since the [merger with 10up](https://10up.com/blog/2025/new-fueled-brand-10up-becomes-wordpress-practice/).

How it works
------------

[](#how-it-works)

1. **Monitor** — Add any GitHub repository and the plugin checks for new releases daily via WP-Cron.
2. **Generate** — When a new release is detected, the AI researches the release and writes a blog post tailored to your audience.
3. **Publish** — Posts are created as drafts for review, or published automatically based on your per-repository settings.

You can also generate a post on demand at any time from the Repositories tab.

Screenshots
-----------

[](#screenshots)

### Repositories tab

[](#repositories-tab)

Monitor multiple GitHub repos with last post version, status, and one-click post generation.

[![Repositories tab](.wordpress-org/screenshot-1.png)](.wordpress-org/screenshot-1.png)

### Repository autocomplete

[](#repository-autocomplete)

With a GitHub Personal Access Token configured, the Add Repository field suggests from the repositories your token can access, grouped by owner. You can still type any public `owner/repo` to track a repository that isn't in the list.

[![Repository autocomplete](.wordpress-org/screenshot-2.png)](.wordpress-org/screenshot-2.png)

### Release picker

[](#release-picker)

Generating a post manually lets you pick any historical release, not just the latest. If a post already exists for the selected release, an inline warning surfaces — regenerating creates a new revision and preserves the existing post date so the archive stays in chronological order.

[![Release picker](.wordpress-org/screenshot-3.png)](.wordpress-org/screenshot-3.png)

### Settings tab

[](#settings-tab)

View your AI connector status and configure audience level, custom prompt instructions, and notifications.

[![Settings tab](.wordpress-org/screenshot-4.png)](.wordpress-org/screenshot-4.png)

### Inline editing

[](#inline-editing)

Per-repo settings including name, project link, post status, author, categories, tags, and featured image — following the familiar WordPress Quick Edit pattern.

[![Inline editing](.wordpress-org/screenshot-5.png)](.wordpress-org/screenshot-5.png)

### Generated post in the block editor

[](#generated-post-in-the-block-editor)

AI-written content with embedded images, plus the GitHub Release sidebar panel for source attribution and regeneration.

[![Block editor](.wordpress-org/screenshot-6.png)](.wordpress-org/screenshot-6.png)

Features
--------

[](#features)

- Monitor multiple GitHub repositories for new releases
- AI-powered post generation via WordPress Connectors — works with Anthropic, OpenAI, Google, and any other configured connector
- Significance-aware content — patch, minor, major, and security releases get tailored tone and structure
- Choose the research depth — Standard reviews release notes, linked issues and PRs, metadata, and the README; Deep adds commit messages and file changes since the last release
- SEO-friendly post slugs and excerpts generated automatically by AI
- Configurable publish/draft workflow with per-repository overrides
- Per-repository post defaults (categories, tags, post status, author, featured image)
- Choose your post title format — prefix with project name and version, version only, or no auto-prefix (let the AI write the full title in single-project sites)
- Generate posts on demand for any historical release — pick from a version dropdown when a repo has multiple releases; older releases are automatically backdated to keep the archive in chronological order
- Custom prompt instructions to guide AI writing style, tone, and voice
- Regenerate posts with feedback — refine AI output directly from the block editor sidebar
- Email notifications on draft creation, publication, or both
- Source attribution in the block editor — see which GitHub release generated each post
- Idempotency — the same release never creates duplicate posts
- Optional project link support — enter a URL or WordPress.org slug for download CTAs
- Optional pre-release tracking per repository (off by default)
- Optional AI disclosure note appended to generated posts

Requirements
------------

[](#requirements)

- WordPress 7.0 or later
- PHP 8.2 or later
- At least one AI connector configured under Settings → Connectors (Anthropic, OpenAI, or Google recommended)

Installation
------------

[](#installation)

### From a release zip

[](#from-a-release-zip)

1. Download the latest release zip from [Releases](../../releases).
2. In WordPress admin, go to **Plugins → Add New → Upload Plugin** and upload the zip.
3. Activate the plugin.
4. Go to **Tools → Release Posts** to configure your AI provider and add repositories.

### With Composer

[](#with-composer)

Composer-managed WordPress sites (Roots/Bedrock and similar) can install the plugin from [Packagist](https://packagist.org/packages/github-release-posts/github-release-posts):

```
composer require github-release-posts/github-release-posts
```

This assumes your project uses [composer/installers](https://github.com/composer/installers) and routes WordPress plugins to `wp-content/plugins/`. If it doesn't, add this to your project's `composer.json`:

```
{
    "require": {
        "composer/installers": "^2.0"
    },
    "extra": {
        "installer-paths": {
            "wp-content/plugins/{$name}/": ["type:wordpress-plugin"]
        }
    }
}
```

Activate the plugin in WordPress admin as usual, then go to **Tools → Release Posts**.

GitHub access
-------------

[](#github-access)

The plugin uses a GitHub Personal Access Token (PAT) to read release data. A PAT is optional for public repositories — without one, GitHub limits the plugin to 60 API requests per hour. Adding a PAT raises that to 5,000 per hour, replaces the "owner/repo" text field with a dropdown of repositories the token can access, and is required to access private repositories. The Settings page shows a green check once GitHub confirms the token.

**Create a fine-grained PAT and add it to WordPress**A fine-grained token can be scoped to a single user or organization and to specific repositories — ideal for a "service account" that monitors a known set of releases.

1. Go to [github.com/settings/personal-access-tokens/new](https://github.com/settings/personal-access-tokens/new).
2. **Token name** — something descriptive, e.g. `My Site — Auto Release Posts for GitHub`.
3. **Expiration** — pick a value that fits your security policy.
4. **Resource owner** — choose your user account or an organization you belong to.
5. **Repository access** — choose **Only select repositories** and pick the repos you want to monitor. (Or **All repositories** if you'd rather not maintain the list here.)
6. **Repository permissions** — set all four to **Read-only**:
    - **Contents** — required for releases and commit comparisons.
    - **Metadata** — required (auto-selected).
    - **Issues** — used during AI prompt enrichment.
    - **Pull requests** — used during AI prompt enrichment.
7. Click **Generate token** and copy the `github_pat_…` value immediately — GitHub won't show it again.
8. Provide the token to the plugin in one of two ways:
    - **Environment variable or constant (recommended)** — define `GHRP_PAT` as an environment variable or as a PHP constant in `wp-config.php`. The plugin reads the constant first, then the env var, then the database. When set this way, the value never lives in the WordPress database, and the Settings field becomes read-only.
    - **WordPress admin** — go to **Tools → Release Posts → Settings**, paste the token into the **Personal Access Token** field, and click **Save Settings**.

For developers
--------------

[](#for-developers)

### Filters

[](#filters)

The plugin is extensible via filter hooks at every stage of the pipeline:

FilterPurpose`ghrp_default_post_status`Default status when creating a repo (default: `draft`)`ghrp_default_categories`Default categories for new repos`ghrp_default_tags`Default tags for new repos`ghrp_post_status_options`Post status dropdown choices`ghrp_post_status`Override status per-release before it's applied`ghrp_post_title`Override the final post title (after format prefixing)`ghrp_post_terms`Override categories/tags per-release`ghrp_post_featured_image`Override featured image per-release`ghrp_ai_disclosure_text`Customize or suppress the AI disclosure note`ghrp_max_release_body_length`Truncation threshold for large release bodies`ghrp_sideload_allowed_domains`Domains allowed for image sideloading`ghrp_check_frequency`WP-Cron schedule (default: `daily`)`ghrp_register_ai_providers`Register custom AI provider connectors`ghrp_wp_ai_client_model_preferences`Ordered list of preferred model IDs for WordPress Connectors`ghrp_openai_reasoning_effort`Reasoning effort level for OpenAI models (default: `high`)`ghrp_generate_prompt`Full prompt customization`ghrp_release_body`Filter release body before prompt building### Development

[](#development)

```
npm start                # Dev build with watch
npm run build            # Production build
composer install          # Install PHP dependencies
composer test             # Run PHPUnit tests
vendor/bin/phpcs --standard=phpcs.xml.dist includes/  # WPCS lint
```

Contributors
------------

[](#contributors)

- [Ben Word](https://github.com/retlehs) ([Roots](https://roots.io)) — GitHub repository picker and external PAT configuration ([\#2](https://github.com/jakemgold/github-release-posts-wordpress/pull/2))
- [Thorsten Ott](https://github.com/tott) ([Fueled](https://fueled.com), formerly 10up) — Engineering review feedback

License
-------

[](#license)

GPL-2.0-or-later. See [LICENSE](https://www.gnu.org/licenses/gpl-2.0.html).

Trademarks
----------

[](#trademarks)

Auto Release Posts for GitHub is an independent project. It is not affiliated with, endorsed by, or sponsored by GitHub, Inc. or the WordPress Foundation. "GitHub" and "WordPress" are used here for descriptive purposes only.

Like what you see?
------------------

[](#like-what-you-see)

[![Work with the 10up WordPress Practice at Fueled](https://github.com/10up/.github/raw/trunk/profile/10up-github-banner.jpg)](http://10up.com/contact/)

###  Health Score

46

—

FairBetter than 92% of packages

Maintenance98

Actively maintained with recent releases

Popularity11

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 95.4% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~3 days

Total

11

Last Release

10d ago

Major Versions

v0.11.1 → 1.0.02026-05-23

### Community

Maintainers

![](https://www.gravatar.com/avatar/034171c3745b7e0b224d973c88d583345cbea37ad825550875c9008122e396bd?d=identicon)[jakemgold](/maintainers/jakemgold)

---

Top Contributors

[![jakemh](https://avatars.githubusercontent.com/u/5726055?v=4)](https://github.com/jakemh "jakemh (125 commits)")[![jakemgold](https://avatars.githubusercontent.com/u/1660744?v=4)](https://github.com/jakemgold "jakemgold (4 commits)")[![aaronjorbin](https://avatars.githubusercontent.com/u/622599?v=4)](https://github.com/aaronjorbin "aaronjorbin (1 commits)")[![retlehs](https://avatars.githubusercontent.com/u/115911?v=4)](https://github.com/retlehs "retlehs (1 commits)")

---

Tags

aiai-contentautomationblogchangeloggithubgithub-releasesgutenbergwordpresswordpress-pluginwordpressautomationaigithubblogwordpress pluginreleasesai-connectors

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/github-release-posts-github-release-posts/health.svg)

```
[![Health](https://phpackages.com/badges/github-release-posts-github-release-posts/health.svg)](https://phpackages.com/packages/github-release-posts-github-release-posts)
```

###  Alternatives

[roots/wordpress-no-content

WordPress is open source software you can use to create a beautiful website, blog, or app.

2013.3M61](/packages/roots-wordpress-no-content)[rilwis/meta-box

The most powerful &amp; comprehensive plugin to create, manage, show and connect dynamic data with forms and custom fields effortlessly on WordPress.

1.2k1.8k1](/packages/rilwis-meta-box)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
