PHPackages                             contexis/wp-github-updater - 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. contexis/wp-github-updater

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

contexis/wp-github-updater
==========================

GitHub release based WordPress plugin updater

0.2.0(1mo ago)08GPL-2.0-or-laterPHPPHP &gt;=8.4

Since Apr 14Pushed 1mo agoCompare

[ Source](https://github.com/gollenia/wp-github-updater)[ Packagist](https://packagist.org/packages/contexis/wp-github-updater)[ RSS](/packages/contexis-wp-github-updater/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (2)DependenciesVersions (3)Used By (0)

wp-github-updater
=================

[](#wp-github-updater)

Small Composer package for WordPress plugin update checks based on GitHub releases.

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

[](#installation)

```
{
  "require": {
    "contexis/wp-github-updater": "^0.2"
  }
}
```

Quick Start
-----------

[](#quick-start)

```
use Contexis\WpGitHubUpdater\WordPressPluginUpdater;

WordPressPluginUpdater::fromPluginFile(
    pluginFile: __FILE__,
    owner: 'vendor',
    repositoryName: 'plugin-repo',
)->registerHooks();
```

This is the intended default API. In the common case you only need:

- the main plugin file path
- the GitHub owner
- the GitHub repository name

Release Conventions
-------------------

[](#release-conventions)

The updater checks the latest GitHub release by following the `/releases/latest`redirect.

If you are also looking for reusable GitHub Actions, see:

- `https://github.com/gollenia/github-actions`

Your repository should use release tags like:

- `v1.2.3`
- `1.2.3`

The download URL for updates is built as:

```
https://github.com///releases/download/v/.zip

```

So your release asset should usually be named `.zip`.

What `fallbackVersion` Means
----------------------------

[](#what-fallbackversion-means)

`fallbackVersion` is only a defensive fallback. It is used when GitHub cannot be reached or the latest release tag cannot be determined.

It is not a separate "target version" and usually should be the currently installed plugin version. That prevents the updater from reporting a fake update when GitHub is temporarily unavailable.

If you use the recommended `WordPressPluginUpdater::fromPluginFile(...)` entry point, you do not need to provide it manually. It is derived from the plugin header version automatically.

Lower-Level API
---------------

[](#lower-level-api)

If you want to wire the objects manually, you still can:

```
use Contexis\WpGitHubUpdater\GitHubReleaseProvider;
use Contexis\WpGitHubUpdater\GitHubRepository;
use Contexis\WpGitHubUpdater\PluginMetadata;
use Contexis\WpGitHubUpdater\WordPressPluginUpdater;

$plugin = PluginMetadata::fromPluginFile(__FILE__);
$repository = GitHubRepository::from('vendor', 'plugin-repo');
$releaseProvider = GitHubReleaseProvider::forPlugin($repository, $plugin);

$updater = new WordPressPluginUpdater(
    plugin: $plugin,
    repository: $repository,
    releaseProvider: $releaseProvider,
);

$updater->registerHooks();
```

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance90

Actively maintained with recent releases

Popularity5

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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 ~10 days

Total

2

Last Release

46d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/8413fc0d41be3708fe7929f43d812ecff69f4df516503eecbdafa665eb148ac6?d=identicon)[gollenia](/maintainers/gollenia)

---

Top Contributors

[![gollenia](https://avatars.githubusercontent.com/u/4728887?v=4)](https://github.com/gollenia "gollenia (11 commits)")

### Embed Badge

![Health badge](/badges/contexis-wp-github-updater/health.svg)

```
[![Health](https://phpackages.com/badges/contexis-wp-github-updater/health.svg)](https://phpackages.com/packages/contexis-wp-github-updater)
```

PHPackages © 2026

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