=== Releasery – Self-Updating Changelog Page ===
Contributors: shahrear17
Tags: changelog, release notes, version history, github, updates
Requires at least: 6.1
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Your changelog page updates itself on every release. Reads GitHub Releases (even private repos) or WordPress.org, with instant webhook updates.

== Description ==

**Release your plugin, and your changelog page updates itself.** Releasery turns the changelog you already write into a clean, always-current page on your site: newest first, no copy-paste.

= What makes Releasery different =

* **GitHub Releases as the source of truth.** Releasery reads `readme.txt` at your latest GitHub Release. Each version gets its exact release date, and unreleased work in your repository never shows early. Private repositories work too, with a read-only token stored encrypted.
* **Updates the moment you ship.** Add a GitHub webhook and the page refreshes as soon as a release is published. Or push each release from your own GitHub Action, so the changelog is only published after your WordPress.org deploy succeeds.
* **Review before it goes live.** Keep new versions as drafts, lock any entry you edit by hand ("Keep my edits"), and trust that trashed entries never come back and that Releasery never publishes or un-publishes an entry you have already handled.
* **Knows where your changelog is shown.** Each source lists the pages displaying it (block, shortcode or Elementor), and "Create page" builds one for you in a single click.
* **Reads real-world changelogs.** It understands `* Fixed - …`, `Added: …`, sub-headings like "Bugfixes", "Release date:" lines and dates in most formats. That covers changelogs written in the styles of popular plugins such as WooCommerce and Yoast SEO.

Connect where your releases live, add the Releasery block (or shortcode) to a page, and every new version appears there by itself.

**Sources**

* **WordPress.org plugin**: reads the public changelog of any plugin on WordPress.org. No account or token needed.
* **GitHub repository**: reads `readme.txt` at your latest GitHub Release, with exact release dates. Works with public repositories and, with a read-only token, private ones.
* **GitHub Actions (optional)**: accept entries pushed by a workflow, signed with a secret.

**Why Releasery**

* **Lightweight**: no build tools, no external scripts, one small stylesheet that follows your theme.
* **Newest first, always**: ordered by release date, then by version number.
* **Understands real changelogs**: `* Fixed - …`, `Added: …`, sub-headings like "Bugfixes", release-date lines, and dates in most formats.
* **You stay in control**: publish right away or keep new versions as drafts; edit any entry and tick "Keep my edits" so a sync never overwrites it.
* **Safe**: tokens are stored encrypted, webhooks and pushes are signature-checked, and nothing is sent anywhere except the requests described below.
* **Works everywhere**: block for the block editor, `[releasery]` shortcode for the classic editor, Elementor and other builders.

**Show it on a page**

Add the **Releasery Changelog** block, or the shortcode:

`[releasery]` (all products)
`[releasery product="my-plugin"]` (one product)
`[releasery product="my-plugin,my-plugin-pro" per_page="15"]`

== Installation ==

1. Install and activate Releasery.
2. Go to **Releasery → Sources → Add source** and choose a WordPress.org plugin or a GitHub repository.
3. Add the **Releasery Changelog** block, or the shortcode shown next to your source, to any page.

== Frequently Asked Questions ==

= How often does it check for new releases? =

Every hour by default. You can change this under Releasery → Settings, or click "Check now" at any time. For GitHub, you can also add a webhook for instant updates (shown on the source's edit screen).

= Why do some WordPress.org versions have no date? =

WordPress.org does not publish per-version dates. Releasery dates the current version with its "last updated" date and every new version with the day it appears. Older versions keep no date unless your changelog writes one (for example `= 1.2.0 - 14/09/2026 =`). You can also set a date by editing the entry.

= Does it work with private GitHub repositories? =

Yes. Create a fine-grained personal access token limited to that repository with read-only "Contents" access and paste it into the source. It is stored encrypted and never shown again.

= Will a sync overwrite my edits? =

Not if you tick "Keep my edits" in the entry's Release box. Trashed entries are never re-created, and a published entry is never switched back to draft.

= Does it slow down my site? =

No. Checks run in the background on a schedule; visitors only see the stored entries. The stylesheet is loaded only on pages that show a changelog.

== External services ==

Releasery connects to these services only for sources you add, and only from your server (never from visitors' browsers).

**WordPress.org Plugin API** (`api.wordpress.org`)
Used for "WordPress.org plugin" sources to read the plugin's public name, version, last-updated date and changelog. Sent: the plugin slug you entered. When: on each scheduled check and when you click "Check now".
[Terms of service](https://wordpress.org/about/domains/) · [Privacy policy](https://wordpress.org/about/privacy/)

**GitHub REST API** (`api.github.com`)
Used for "GitHub repository" sources to list published releases and read the readme file at the latest release. Sent: the repository name, the readme path and, if you added one, your access token. When: on each scheduled check, when you click "Check now", and after a GitHub webhook tells your site a release was published.
[Terms of service](https://docs.github.com/en/site-policy/github-terms/github-terms-of-service) · [Privacy statement](https://docs.github.com/en/site-policy/privacy-policies/github-general-privacy-statement)

No data about your site's visitors is sent to either service.

== Screenshots ==

1. Sources: each product, its source, status and the shortcode to show it.
2. Adding a source: WordPress.org plugin or GitHub repository.
3. The changelog on a page, newest first.

== Changelog ==

= 1.0.0 =
* Added - WordPress.org plugin and GitHub repository sources, with scheduled and on-demand checks.
* Added - Releasery Changelog block and `[releasery]` shortcode.
* Added - Optional GitHub webhook for instant updates and signed GitHub Actions push.
* Added - Drafts for review, "Keep my edits" lock, and per-entry release dates.

== Upgrade Notice ==

= 1.0.0 =
First release.
