{"id":19510015,"url":"https://github.com/permify/permify-coverage-action","last_synced_at":"2025-04-26T03:32:08.224Z","repository":{"id":174990349,"uuid":"653319762","full_name":"Permify/permify-coverage-action","owner":"Permify","description":"GitHub Action for coverage analyses your Permify schema (Authorization Model) with their assertions","archived":false,"fork":false,"pushed_at":"2023-06-13T20:59:38.000Z","size":8,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-04-14T21:31:15.137Z","etag":null,"topics":["access-control","fga","github-actions","permify","zanzibar"],"latest_commit_sha":null,"homepage":"https://docs.permify.co/","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Permify.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2023-06-13T20:39:00.000Z","updated_at":"2023-06-14T06:32:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"d4606ec9-a308-4785-a7ae-320c47b5bb0b","html_url":"https://github.com/Permify/permify-coverage-action","commit_stats":null,"previous_names":["permify/permify-coverage-action"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Permify%2Fpermify-coverage-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Permify%2Fpermify-coverage-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Permify%2Fpermify-coverage-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Permify%2Fpermify-coverage-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Permify","download_url":"https://codeload.github.com/Permify/permify-coverage-action/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250926859,"owners_count":21509050,"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":["access-control","fga","github-actions","permify","zanzibar"],"created_at":"2024-11-10T23:14:10.967Z","updated_at":"2025-04-26T03:32:08.211Z","avatar_url":"https://github.com/Permify.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/Permify/permify/master/assets/permify-logo.svg\" alt=\"Permify logo\" width=\"336px\" /\u003e\u003cbr /\u003e\n    Permify Schema Coverage GitHub Action\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/Permify/permify\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/github/license/Permify/permify?style=for-the-badge\" alt=\"Permify Licence\" /\u003e\u003c/a\u003e\u0026nbsp;\n    \u003ca href=\"https://discord.gg/MJbUjwskdH\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/discord/950799928047833088?style=for-the-badge\u0026logo=discord\u0026label=DISCORD\" alt=\"Permify Discord Channel\" /\u003e\u003c/a\u003e\u0026nbsp;\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n     \u003cimg width=\"610\" alt=\"Screenshot 2023-06-13 at 11 30 03 PM\" src=\"https://github.com/Permify/permify-validate-action/assets/39353278/b13c609f-4487-4656-bb01-7c82531d04f7\"\u003e\n\u003c/p\u003e\n\nThis repository executes the permify coverage command on the provided schema (authorization model), relationships (sample authorization data), and assertions (sample check queries and results). The analysis includes coverage assessments for both assertions and relationships.\n\nYou can find detailed information on this repository in\nthe [Testing \u0026 Validation](https://docs.permify.co/docs/getting-started/testing) part of our documentation.\n\n#### Example Schema Validation YAML File\n\n```yaml\nschema: \u003e-\n  entity user {}\n\n  entity organization {\n\n      relation admin @user\n      relation member @user\n\n      permission create_repository = (admin or member)\n      permission delete = admin\n  }\n\n  entity repository {\n\n      relation owner @user\n      relation parent @organization\n\n      permission push = owner\n      permission read = (owner and (parent.admin and parent.member))\n      permission delete = (parent.member and (parent.admin or owner))\n  }\n\nrelationships:\n  - \"organization:1#admin@user:1\"\n  - \"organization:1#member@user:1\"\n  - \"repository:1#owner@user:1\"\n\nscenarios:\n  - name: \"scenario 1\"\n    description: \"test description\"\n    checks:\n      - entity: \"repository:1\"\n        subject: \"user:1\"\n        assertions:\n          push : true\n      - entity: \"repository:2\"\n        subject: \"user:1\"\n        assertions:\n          push : false\n      - entity: \"repository:3\"\n        subject: \"user:1\"\n        assertions:\n          push : false\n```\n\n### Usage\n\nAdd the action following your workflow:\n\n- With local file\n\n```yaml\nsteps:\n  - uses: \"permify/permify-coverage-action@v1\"\n    with:\n      validationFile: \"test.yaml\"\n      coverageRelationships: 80\n      coverageAssertions: 80\n```\n\n- With url\n\n```yaml\nsteps:\n  - uses: \"permify/permify-coverage-action@v1\"\n    with:\n      validationFile: \"https://gist.github.com/permify-bot/bb8f95acb64525d2a41688ae0a6f4274\"\n      coverageRelationships: 80\n      coverageAssertions: 80\n```\n\nPermify is an **open-source authorization service** for creating and maintaining fine-grained authorizations across your\nindividual applications and services.\n\n* [Permify website](https://permify.co)\n* [Permify documentation](https://docs.permify.co/docs/intro)\n* [Permify playground](https://play.permify.co)\n* [Permify GitHub Repository](https://github.com/Permify/permify)\n\n## Testing in Local\n\nYou can also test your new authorization model in your local (Permify clone) without using [permify-coverage-action] at\nall.\n\nFor that open up a new file and add a schema yaml file inside. Then build your project with, run `make run` command and\nrun `./permify coverage {path of your schema validation file}`.\n\nIf we use the above example schema validation file, after\nrunning `./permify coverage {path of your schema validation file}` it gives a result on the terminal as:\n\n[permify-coverage-action]: https://github.com/Permify/permify-coverage-action\n\n## Community \u0026 Support\n\nJoin our [Discord channel](https://discord.gg/MJbUjwskdH) for issues, feature requests, feedbacks or anything else. We\nlove to talk about authorization and access control :heart:\n\n\u003cp align=\"left\"\u003e\n\u003ca href=\"https://discord.gg/MJbUjwskdH\"\u003e\n \u003cimg height=\"70px\" width=\"70px\" alt=\"permify | Discord\" src=\"https://user-images.githubusercontent.com/39353278/187209316-3d01a799-c51b-4eaa-8f52-168047078a14.png\" /\u003e\n\u003c/a\u003e\n\u003ca href=\"https://twitter.com/GetPermify\"\u003e\n  \u003cimg height=\"70px\" width=\"70px\" alt=\"permify | Twitter\" src=\"https://user-images.githubusercontent.com/39353278/187209323-23f14261-d406-420d-80eb-1aa707a71043.png\"/\u003e\n\u003c/a\u003e\n\u003ca href=\"https://www.linkedin.com/company/permifyco\"\u003e\n  \u003cimg height=\"70px\" width=\"70px\" alt=\"permify | Linkedin\" src=\"https://user-images.githubusercontent.com/39353278/187209321-03293a24-6f63-4321-b362-b0fc89fdd879.png\" /\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpermify%2Fpermify-coverage-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpermify%2Fpermify-coverage-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpermify%2Fpermify-coverage-action/lists"}