{"id":24582652,"url":"https://github.com/pluginpal/strapi-plugin-boilerplate","last_synced_at":"2025-03-17T16:23:49.333Z","repository":{"id":270819163,"uuid":"911547138","full_name":"pluginpal/strapi-plugin-boilerplate","owner":"pluginpal","description":"A test-driven template for building reliable Strapi v5 plugins","archived":false,"fork":false,"pushed_at":"2025-01-20T21:10:27.000Z","size":883,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-24T03:25:51.919Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pluginpal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","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}},"created_at":"2025-01-03T09:20:23.000Z","updated_at":"2025-01-20T21:10:31.000Z","dependencies_parsed_at":"2025-01-24T03:25:36.080Z","dependency_job_id":"0eaa3386-540a-4271-b726-8b5264a31762","html_url":"https://github.com/pluginpal/strapi-plugin-boilerplate","commit_stats":null,"previous_names":["pluginpal/strapi-plugin-boilerplate"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pluginpal%2Fstrapi-plugin-boilerplate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pluginpal%2Fstrapi-plugin-boilerplate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pluginpal%2Fstrapi-plugin-boilerplate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pluginpal%2Fstrapi-plugin-boilerplate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pluginpal","download_url":"https://codeload.github.com/pluginpal/strapi-plugin-boilerplate/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244066401,"owners_count":20392441,"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":[],"created_at":"2025-01-24T03:25:27.673Z","updated_at":"2025-03-17T16:23:49.313Z","avatar_url":"https://github.com/pluginpal.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003eStrapi v5 Plugin Boilerplate\u003c/h1\u003e\n  \u003ch5\u003eA test-driven template for building reliable Strapi v5 Plugins\u003c/h5\u003e\n\n  \u003ca href=\"https://codecov.io/gh/pluginpal/strapi-plugin-boilerplate\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/pluginpal/strapi-plugin-boilerplate/tests.yml?branch=main\" alt=\"CI build status\" /\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n## ✨ Features\n\n- [x] Setup using [@strapi/sdk-plugin](https://github.com/strapi/sdk-plugin) with commands for `build` and `watch`.\n- [x] An isolated Strapi instance for testing and development, the Playground.\n- [x] Github Actions workflow for linting and testing.\n- [x] Clear community files like [CONTRIBUTING.md](https://github.com/pluginpal/strapi-plugin-boilerplate/blob/main/CONTRIBUTING.md) and [CODE-OF-CONDUCT.md](https://github.com/pluginpal/strapi-plugin-boilerplate/blob/main/CODE_OF_CONDUCT.md).\n- [x] Jest \u0026 Supertest for testing your plugin API's.\n- [x] Cypress for GUI e2e tests\n\n## ⏳ How to use\n\nThis repository is meant to be a template for new plugins. It can be used as a starting point, giving you the resources to built a test-driven Strapi v5 plugin.\n\nAfter creating your copy of the template, do a find-replace through the code and change the following:\n\n1. Change `boilerplate` (lowercase) to be the identifier of your plugin.\n2. Change `Boilerplate` (uppercase) to be the human readable name of your plugin.\n\nYou're all set! Go make your plugin and write some tests!\n\n## 📓 Tutorials\n\nThis repository has been made alongside an article series called **\"Automated Testing for Strapi v5 Plugins\"**.\nTo better understand how and why this repository has been setup, please read the following articles:\n\n1. [Using a Playground Instance](https://www.pluginpal.io/automated-testing-for-strapi-plugins-using-a-playground-instance)\n2. [Testing the API's](https://www.pluginpal.io/automated-testing-for-strapi-v-5-plugins-testing-the-apis)\n3. E2E tests (In Progress)\n\n## 🔌 Commands\n\n### Strapi Plugin SDK commands\n\n1. `yarn build`\n  - The native build command of `@strapi/sdk-plugin`.\n  - [Documentation can be found here](https://docs.strapi.io/dev-docs/plugins/development/plugin-sdk).\n2. `yarn watch`\n  - The native watch command of `@strapi/sdk-plugin`.\n  - [Documentation can be found here](https://docs.strapi.io/dev-docs/plugins/development/plugin-sdk).\n3. `yarn watch:link`\n  - The native watch:link command of `@strapi/sdk-plugin`.\n  - [Documentation can be found here](https://docs.strapi.io/dev-docs/plugins/development/plugin-sdk).\n4. `yarn verify`\n  - The native verify command of `@strapi/sdk-plugin`.\n  - [Documentation can be found here](https://docs.strapi.io/dev-docs/plugins/development/plugin-sdk).\n  - Used in the lint step of the pipeline.\n\n### Testing commands\n\n5. `yarn test:ts:front`\n  - A check for Typescript errors on the front-end side.\n  - Used in the lint step of the pipeline.\n6. `yarn test:ts:back`\n  - A check for Typescript errors on the back-end side.\n  - Used in the lint step of the pipeline.\n7. `yarn test:jest`\n  - Runs the jest tests. Can contain unit \u0026 integration tests.\n  - Used in the test step of the pipeline.\n8. `yarn test:cypress`\n  - Runs the cypress tests. Contains e2e tests.\n  - Used in the test step of the pipeline.\n9. `yarn test:cypress:open`\n  - Opens the cypress GUI.\n\n### Playground commands\n\n10. `yarn playground:install`\n  - Installs the plugin into the playground using `yalc-add-link`.\n  - Installs all other dependencies of the playground.\n11. `yarn playground:yalc-add`\n  - Installs a production-like version of the plugin, into the playground.\n12. `yarn playground:yalc-add-link`\n  - Installs a development build of the plugin, into the playground.\n13. `yarn playground:build`\n  - The native Strapi build command, ran in the playground.\n  - [Documentation can be found here](https://docs.strapi.io/dev-docs/cli).\n14. `yarn playground:develop`\n  - The native Strapi develop command, ran in the playground.\n  - [Documentation can be found here](https://docs.strapi.io/dev-docs/cli).\n15. `yarn playground:start`\n  - The native Strapi start command, ran in the playground.\n  - [Documentation can be found here](https://docs.strapi.io/dev-docs/cli).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpluginpal%2Fstrapi-plugin-boilerplate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpluginpal%2Fstrapi-plugin-boilerplate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpluginpal%2Fstrapi-plugin-boilerplate/lists"}