{"id":17858490,"url":"https://github.com/professionalwiki/pageapprovals","last_synced_at":"2026-03-10T05:02:36.157Z","repository":{"id":244469713,"uuid":"815254266","full_name":"ProfessionalWiki/PageApprovals","owner":"ProfessionalWiki","description":"Increase trust in your wiki knowledge base via approval workflows","archived":false,"fork":false,"pushed_at":"2025-12-29T12:14:36.000Z","size":374,"stargazers_count":2,"open_issues_count":12,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2026-01-01T12:30:58.848Z","etag":null,"topics":["content-moderation","mediawiki","mediawiki-extension","quality-assurance","quality-control"],"latest_commit_sha":null,"homepage":"https://professional.wiki/en/extension/page-approvals","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ProfessionalWiki.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-06-14T17:31:37.000Z","updated_at":"2025-12-29T12:14:39.000Z","dependencies_parsed_at":"2024-06-20T10:11:45.931Z","dependency_job_id":"5fc27d64-86eb-45c3-bfe4-74dc447c26dc","html_url":"https://github.com/ProfessionalWiki/PageApprovals","commit_stats":{"total_commits":168,"total_committers":6,"mean_commits":28.0,"dds":0.6369047619047619,"last_synced_commit":"27394457b1f9894239b6edd4c8691938cf2374cb"},"previous_names":["professionalwiki/pageapprovals"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/ProfessionalWiki/PageApprovals","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProfessionalWiki%2FPageApprovals","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProfessionalWiki%2FPageApprovals/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProfessionalWiki%2FPageApprovals/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProfessionalWiki%2FPageApprovals/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ProfessionalWiki","download_url":"https://codeload.github.com/ProfessionalWiki/PageApprovals/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ProfessionalWiki%2FPageApprovals/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30325598,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T01:36:58.598Z","status":"online","status_checked_at":"2026-03-10T02:00:06.579Z","response_time":106,"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":["content-moderation","mediawiki","mediawiki-extension","quality-assurance","quality-control"],"created_at":"2024-10-28T05:07:35.682Z","updated_at":"2026-03-10T05:02:36.142Z","avatar_url":"https://github.com/ProfessionalWiki.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Page Approvals\n\n[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/ProfessionalWiki/PageApprovals/ci.yml?branch=master)](https://github.com/ProfessionalWiki/PageApprovals/actions?query=workflow%3ACI)\n[![Type Coverage](https://shepherd.dev/github/ProfessionalWiki/PageApprovals/coverage.svg)](https://shepherd.dev/github/ProfessionalWiki/PageApprovals)\n[![Psalm level](https://shepherd.dev/github/ProfessionalWiki/PageApprovals/level.svg)](psalm.xml)\n[![Latest Stable Version](https://poser.pugx.org/professional-wiki/page-approvals/v/stable)](https://packagist.org/packages/professional-wiki/page-approvals)\n[![Download count](https://poser.pugx.org/professional-wiki/page-approvals/downloads)](https://packagist.org/packages/professional-wiki/page-approvals)\n\nQuality control for your wiki. Mark pages as approved or request review from approvers.\nRead more in the [Page Approvals documentation](https://professional.wiki/en/extension/page-approvals).\n\n**Table of Contents**\n\n- [Usage](#usage-documentation)\n- [Installation](#installation)\n- [PHP Configuration](#php-configuration)\n- [Development](#development)\n- [Release notes](#release-notes)\n\n\n[Professional Wiki] created this extension and provides\n[MediaWiki Development], [MediaWiki Hosting], and [MediaWiki Consulting] services.\n\n## Usage Documentation\n\nSee the [Page Approvals usage documentation](https://professional.wiki/en/extension/page-approvals#Usage).\n\n[![Image](https://github.com/user-attachments/assets/7aaf8615-8eaa-4f53-a125-ef02423f4625)](https://professional.wiki/en/extension/page-approvals)\n\n## Installation\n\nPlatform requirements:\n\n* [PHP] 8.1 or later (tested up to 8.3)\n* [MediaWiki] 1.39 or later (tested up to 1.43)\n\nThe recommended way to install the Page Approvals extension is with [Composer] and\n[MediaWiki's built-in support for Composer][Composer install].\n\nOn the command line, go to your wiki's root directory. Then run these two commands:\n\n```shell script\nCOMPOSER=composer.local.json composer require --no-update professional-wiki/page-approvals:~1.0\n```\n\n```shell script\ncomposer update professional-wiki/page-approvals --no-dev -o\n```\n\nThen enable the extension by adding the following to the bottom of your wikis [LocalSettings.php] file:\n\n```php\nwfLoadExtension( 'PageApprovals' );\n```\n\nRun the [update script](https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Update.php), which will automatically create the necessary database tables that this extension needs.\n\nYou can verify the extension was enabled successfully by opening your wiki's Special:Version page.\n\n## PHP Configuration\n\nConfiguration can be changed via [LocalSettings.php].\n\nSee the [Page Approvals configuration reference](https://professional.wiki/en/extension/page-approvals#Configuration).\n\n## Development\n\nRun `composer install` in `extensions/PageApprovals/` to make the code quality tools available.\n\n### Running Tests and CI Checks\n\nYou can use the `Makefile` by running make commands in the `PageApprovals` directory.\n\n* `make ci`: Run everything\n* `make test`: Run all tests\n* `make phpunit --filter FooBar`: run only PHPUnit tests with FooBar in their name\n* `make phpcs`: Run all style checks\n* `make cs`: Run all style checks and static analysis\n* `make lint-docker`: Run all JavaScript and CSS linting\n\n### Updating Baseline Files\n\nSometimes Psalm and PHPStan generate errors or warnings we do not wish to fix.\nThese can be ignored by adding them to the respective baseline file. You can update\nthese files with `make stan-baseline` and `make psalm-baseline`.\n\n### Inserting Test Data\n\n```sql\nINSERT INTO approver_config (ac_user_id, ac_categories)\nVALUES (1, 'TestCat|TestCat2');\n```\n\n## Release Notes\n\n### Version 2.1.1 - 2025-08-28\n\n* Fixed an issue that caused the incorrect automatic unapproval of pages when using extensions like DisplayTitle \n\n### Version 2.1.0 - 2025-08-06\n\n* Added [Admin Links](https://www.mediawiki.org/wiki/Extension:Admin_Links) integration\n* Added ability to add intro text to the `Special:ManageApprovers` page via `MediaWiki:Ext-pageapprovals-manage-intro`\n\n### Version 2.0.0 - 2025-08-01\n\n* Raided the minimum MediaWiki version from 1.39 to 1.43\n* Added support for MediaWiki 1.44\n* Improved approval UI\n    * More integrated look-and-feel for the approval badge and dropdown (by using Codex components)\n    * Timestamp moved into the tooltip for cleaner presentation\n    * Always show a fully up-to-date timestamp (by generating it via JavaScript)\n* Improved handling for the Vector 2022 skin\n\n### Version 1.0.0 - 2024-10-28\n\n* Approval UI on regular wiki pages that shows the approval status and allows approvers to change said status\n* API endpoints to approve and unapprove pages\n* Automatic unapproval of pages when their displayed content changes\n* Detection of changes to displayed content via embedded constructs such as templates or SMW queries\n* Approver management page and associated MediaWiki right (Special:ManageApprovers)\n* Personalized list of pending approvals (Special:PendingApprovals)\n* Compatibility with MediaWiki 1.39 up to 1.43-dev\n* Compatibility with PHP 8.1 up to 8.3\n\n[Professional Wiki]: https://professional.wiki\n[MediaWiki Hosting]: https://pro.wiki\n[MediaWiki Development]: https://professional.wiki/en/mediawiki-development\n[MediaWiki Consulting]: https://professional.wiki/en/mediawiki-consulting-services\n[MediaWiki]: https://www.mediawiki.org\n[PHP]: https://www.php.net\n[Composer]: https://getcomposer.org\n[Composer install]: https://professional.wiki/en/articles/installing-mediawiki-extensions-with-composer\n[LocalSettings.php]: https://www.pro.wiki/help/mediawiki-localsettings-php-guide\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprofessionalwiki%2Fpageapprovals","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprofessionalwiki%2Fpageapprovals","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprofessionalwiki%2Fpageapprovals/lists"}