{"id":14976026,"url":"https://github.com/gatographql/gatographql","last_synced_at":"2026-02-13T12:37:05.028Z","repository":{"id":37381786,"uuid":"66721227","full_name":"GatoGraphQL/GatoGraphQL","owner":"GatoGraphQL","description":"Interact with all your data in WordPress using GraphQL","archived":false,"fork":false,"pushed_at":"2025-05-15T09:08:59.000Z","size":297894,"stargazers_count":371,"open_issues_count":15,"forks_count":41,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-05-16T06:07:46.761Z","etag":null,"topics":["content-sync","graphql","graphql-api","graphql-server","headless","migrations","php","rest-api","wordpress","wordpress-plugin"],"latest_commit_sha":null,"homepage":"https://gatographql.com","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GatoGraphQL.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"docs/supported-php-features.md","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"leoloso"}},"created_at":"2016-08-27T15:27:57.000Z","updated_at":"2025-05-13T06:27:04.000Z","dependencies_parsed_at":"2023-09-22T09:31:40.565Z","dependency_job_id":"89dd52a5-c2ac-4a40-9d5d-ac90cdf0b6b4","html_url":"https://github.com/GatoGraphQL/GatoGraphQL","commit_stats":{"total_commits":30355,"total_committers":5,"mean_commits":6071.0,"dds":"0.016669411958491143","last_synced_commit":"5c7a8c7e6fe5eb7a1b01537504160b48ac0a973c"},"previous_names":["gatographql/gatographql","leoloso/pop"],"tags_count":128,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GatoGraphQL%2FGatoGraphQL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GatoGraphQL%2FGatoGraphQL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GatoGraphQL%2FGatoGraphQL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GatoGraphQL%2FGatoGraphQL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GatoGraphQL","download_url":"https://codeload.github.com/GatoGraphQL/GatoGraphQL/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254478193,"owners_count":22077676,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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-sync","graphql","graphql-api","graphql-server","headless","migrations","php","rest-api","wordpress","wordpress-plugin"],"created_at":"2024-09-24T13:53:10.170Z","updated_at":"2026-02-13T12:37:05.018Z","avatar_url":"https://github.com/GatoGraphQL.png","language":"PHP","funding_links":["https://github.com/sponsors/leoloso"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/GatoGraphQL/GatoGraphQL/master/assets/GatoGraphQL-logo.webp\"/\u003e\u003c/p\u003e\n\n![Unit tests](https://github.com/GatoGraphQL/GatoGraphQL/actions/workflows/unit_tests.yml/badge.svg)\u003c!-- @todo Re-enable executing integration tests for PROD in CI --\u003e\u003c!-- @see https://github.com/GatoGraphQL/GatoGraphQL/issues/2253 --\u003e\u003c!-- ![Integration tests](https://github.com/GatoGraphQL/GatoGraphQL/actions/workflows/integration_tests.yml/badge.svg) --\u003e\n![Downgrade PHP tests](https://github.com/GatoGraphQL/GatoGraphQL/actions/workflows/downgrade_php_tests.yml/badge.svg)\n![Scoping tests](https://github.com/GatoGraphQL/GatoGraphQL/actions/workflows/scoping_tests.yml/badge.svg)\n![Generate plugins](https://github.com/GatoGraphQL/GatoGraphQL/actions/workflows/generate_plugins.yml/badge.svg)\n\u003c!-- ![PHPStan](https://github.com/GatoGraphQL/GatoGraphQL/actions/workflows/phpstan.yml/badge.svg) --\u003e\n\n# Gato GraphQL\n\nGato GraphQL is a **tool for interacting with data in your WordPress site**. You can think of it as a Swiss Army knife for dealing with data, as it allows to retrieve, manipulate and store again any piece of data, in any desired way, using the [GraphQL language](https://graphql.org/).\n\nWith Gato GraphQL, you can:\n\n- Query data to create headless sites\n- Expose public and private APIs\n- Map JS components to Gutenberg blocks\n- Synchronize content across sites\n- Automate tasks\n- Complement WP-CLI to execute admin tasks\n- Search/replace content for site migrations\n- Send notifications when something happens (new post published, new comment added, etc)\n- Interact with cloud services\n- Convert the data from a 3rd-party API into the required format\n- Translate content in the site\n- Update thousands of posts with a single action\n- Insert or remove Gutenberg blocks in bulk\n- Validate that a new post contains a mandatory block\n- And much more...\n\nCheck out the [Tutorial section in gatographql.com](https://gatographql.com/tutorial/intro) which demonstrates how to implement these use cases using the plugin.\n\n## Development\n\nPlease see [DEVELOPMENT](DEVELOPMENT.md).\n\n## Monorepo documentation\n\n`GatoGraphQL/GatoGraphQL` is a monorepo containing the several layers required for Gato GraphQL. Check [Monorepo_README](Monorepo_README.md) for documentation of the different projects.\n\n## Screenshots\n\nGraphiQL client to execute queries in the wp-admin:\n\n![GraphiQL client to execute queries in the wp-admin](layers/GatoGraphQLForWP/plugins/gatographql/.wordpress-org/screenshot-1.png)\n\nInteractively browse the GraphQL schema, exploring all connections among entities:\n\n![Interactively browse the GraphQL schema, exploring all connections among entities](layers/GatoGraphQLForWP/plugins/gatographql/.wordpress-org/screenshot-2.png)\n\nThe GraphiQL client for the single endpoint is exposed to the Internet:\n\n![The GraphiQL client for the single endpoint is exposed to the Internet](layers/GatoGraphQLForWP/plugins/gatographql/.wordpress-org/screenshot-3.png)\n\nInteractively browse the GraphQL schema exposed for the single endpoint:\n\n![Interactively browse the GraphQL schema exposed for the single endpoint](layers/GatoGraphQLForWP/plugins/gatographql/.wordpress-org/screenshot-4.png)\n\nPersisted queries are pre-defined and stored in the server:\n\n![Persisted queries are pre-defined and stored in the server](layers/GatoGraphQLForWP/plugins/gatographql/.wordpress-org/screenshot-5.png)\n\nRequesting a persisted query URL will retrieve its pre-defined GraphQL response:\n\n![Requesting a persisted query URL will retrieve its pre-defined GraphQL response](layers/GatoGraphQLForWP/plugins/gatographql/.wordpress-org/screenshot-6.png)\n\nWe can create multiple custom endpoints, each for a different target:\n\n![We can create multiple custom endpoints, each for a different target](layers/GatoGraphQLForWP/plugins/gatographql/.wordpress-org/screenshot-7.png)\n\nEndpoints are configured via Schema Configurations:\n\n![Endpoints are configured via Schema Configurations](layers/GatoGraphQLForWP/plugins/gatographql/.wordpress-org/screenshot-8.png)\n\nWe can create many Schema Configurations, customizing them for different users or applications:\n\n![We can create many Schema Configurations, customizing them for different users or applications](layers/GatoGraphQLForWP/plugins/gatographql/.wordpress-org/screenshot-9.png)\n\nCustom endpoints and Persisted queries can be public, private and password-protected:\n\n![Custom endpoints and Persisted queries can be public, private and password-protected](layers/GatoGraphQLForWP/plugins/gatographql/.wordpress-org/screenshot-10.png)\n\nManage custom endpoints and persisted queries by adding categories to them:\n\n![Manage custom endpoints and persisted queries by adding categories to them](layers/GatoGraphQLForWP/plugins/gatographql/.wordpress-org/screenshot-11.png)\n\nWe can configure exactly what custom post types, options and meta keys can be queried:\n\n![We can configure exactly what custom post types, options and meta keys can be queried](layers/GatoGraphQLForWP/plugins/gatographql/.wordpress-org/screenshot-12.png)\n\nConfigure every aspect from the plugin via the Settings page:\n\n![Configure every aspect from the plugin via the Settings page](layers/GatoGraphQLForWP/plugins/gatographql/.wordpress-org/screenshot-13.png)\n\nModules with different functionalities and schema extensions can be enabled and disabled:\n\n![Modules with different functionalities and schema extensions can be enabled and disabled](layers/GatoGraphQLForWP/plugins/gatographql/.wordpress-org/screenshot-14.png)\n\nAugment the plugin functionality and GraphQL schema via extensions:\n\n![Augment the plugin functionality and GraphQL schema via extensions](layers/GatoGraphQLForWP/plugins/gatographql/.wordpress-org/screenshot-15.png)\n\nThe Tutorial section explains how to achieve many objectives, exploring all the elements from the GraphQL schema:\n\n![The Tutorial section explains how to achieve many objectives, exploring all the elements from the GraphQL schema](layers/GatoGraphQLForWP/plugins/gatographql/.wordpress-org/screenshot-16.png)\n\n## Standards\n\n[PSR-1](https://www.php-fig.org/psr/psr-1), [PSR-4](https://www.php-fig.org/psr/psr-4) and [PSR-12](https://www.php-fig.org/psr/psr-12).\n\nTo check the coding standards via [PHP CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer), run:\n\n``` bash\ncomposer check-style\n```\n\nTo automatically fix issues, run:\n\n``` bash\ncomposer fix-style\n```\n\n## Release notes\n\n\u003cdetails\u003e\n\n\u003csummary\u003eClick to expand the Release notes\u003c/summary\u003e\n\n- **[16.1](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/16.1/en.md)** (current)\n- [16.0](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/16.0/en.md)\n- [15.3](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/15.3/en.md)\n- [15.2](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/15.2/en.md)\n- [15.1](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/15.1/en.md)\n- [15.0](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/14.0/en.md)\n- [14.0](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/14.0/en.md)\n- [13.2](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/13.2/en.md)\n- [13.1](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/13.1/en.md)\n- [13.0](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/13.0/en.md)\n- [12.2](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/12.2/en.md)\n- [12.1](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/12.1/en.md)\n- [12.0](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/12.0/en.md)\n- [11.3](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/11.3/en.md)\n- [11.2](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/11.2/en.md)\n- [11.1](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/11.1/en.md)\n- [11.0](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/11.0/en.md)\n- [10.5](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/10.5/en.md)\n- [10.4](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/10.4/en.md)\n- [10.3](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/10.3/en.md)\n- [10.2](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/10.2/en.md)\n- [10.1](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/10.1/en.md)\n- [10.0](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/10.0/en.md)\n- [9.0](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/9.0/en.md)\n- [8.0](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/8.0/en.md)\n- [7.0](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/7.0/en.md)\n- [6.0](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/6.0/en.md)\n- [5.0](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/5.0/en.md)\n- [4.2](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/4.2/en.md)\n- [4.1](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/4.1/en.md)\n- [4.0](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/4.0/en.md)\n- [3.0](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/3.0/en.md)\n- [2.6](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/2.6/en.md)\n- [2.5](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/2.5/en.md)\n- [2.4](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/2.4/en.md)\n- [2.3](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/2.3/en.md)\n- [2.2](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/2.2/en.md)\n- [2.1](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/2.1/en.md)\n- [2.0](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/2.0/en.md)\n- [1.5](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/1.5/en.md)\n- [1.4](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/1.4/en.md)\n- [1.3](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/1.3/en.md)\n- [1.2](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/1.2/en.md)\n- [1.1](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/1.1/en.md)\n- [1.0](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/1.0/en.md)\n- [0.10](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/0.10/en.md)\n- [0.9](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/0.9/en.md)\n- [0.8](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/0.8/en.md)\n- [0.7](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/0.7/en.md)\n- [0.6](layers/GatoGraphQLForWP/plugins/gatographql/docs/release-notes/0.6/en.md)\n\n\u003c/details\u003e\n\n## Change log\n\nPlease see [CHANGELOG](layers/GatoGraphQLForWP/plugins/gatographql/CHANGELOG.md) for more information on what has changed recently.\n\n## Testing\n\nTo execute [PHPUnit](https://phpunit.de/), run:\n\n``` bash\ncomposer test\n```\n\n## Static Analysis\n\nTo execute [PHPStan](https://github.com/phpstan/phpstan), run:\n\n``` bash\ncomposer analyse\n```\n\n\u003c!-- ## Downgrading code\n\nTo visualize how [Rector](https://github.com/rectorphp/rector) will downgrade the code to PHP 7.4:\n\n```bash\ncomposer preview-code-downgrade\n``` --\u003e\n\n## Report issues\n\nTo report a bug or request a new feature please do it on the [GatoGraphQL monorepo issue tracker](https://github.com/GatoGraphQL/GatoGraphQL/issues).\n\n## Security issues\n\nYou can report security bugs through the Patchstack Vulnerability Disclosure Program. The Patchstack team help validate, triage and handle any security vulnerabilities. [Report a security vulnerability](https://patchstack.com/database/vdp/9e5fbfdf-3f7c-4ab9-bcee-87a59e98564b).\n\n## Contributing\n\nWe welcome contributions for this package on the [GatoGraphQL monorepo](https://github.com/GatoGraphQL/GatoGraphQL) (where the source code for this package is hosted).\n\nPlease see [CONTRIBUTING](CONTRIBUTING.md) and [CODE_OF_CONDUCT](CODE_OF_CONDUCT.md) for details.\n\n## Security\n\nIf you discover any security related issues, please email leo@getpop.org instead of using the issue tracker.\n\n## Credits\n\n- [Leonardo Losoviz][link-author]\n\n## License\n\nGPLv2 or later. Please see [License File](LICENSE.md) for more information.\n\n[ico-license]: https://img.shields.io/badge/license-GPL%20(%3E%3D%202)-brightgreen.svg?style=flat-square\n[ico-release]: https://img.shields.io/github/release/GatoGraphQL/GatoGraphQL.svg\n[ico-downloads]: https://img.shields.io/github/downloads/GatoGraphQL/GatoGraphQL/total.svg\n\n[link-author]: https://github.com/leoloso\n[latest-release-url]: https://gatographql.com/releases/latest\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgatographql%2Fgatographql","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgatographql%2Fgatographql","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgatographql%2Fgatographql/lists"}