{"id":26784409,"url":"https://github.com/berquerant/gcp-role-permissions-diff","last_synced_at":"2025-03-29T10:19:53.144Z","repository":{"id":282568327,"uuid":"949006378","full_name":"berquerant/gcp-role-permissions-diff","owner":"berquerant","description":"Compare the permissions of multiple roles in Google Cloud","archived":false,"fork":false,"pushed_at":"2025-03-24T15:15:26.000Z","size":49,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-24T16:25:58.030Z","etag":null,"topics":["google-cloud","python"],"latest_commit_sha":null,"homepage":"","language":"Python","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/berquerant.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":"2025-03-15T13:15:46.000Z","updated_at":"2025-03-24T15:11:46.000Z","dependencies_parsed_at":"2025-03-15T14:23:28.198Z","dependency_job_id":"fef7ceab-ad74-4acd-a9e2-88c79a582060","html_url":"https://github.com/berquerant/gcp-role-permissions-diff","commit_stats":null,"previous_names":["berquerant/gcp-role-permissions-diff"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berquerant%2Fgcp-role-permissions-diff","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berquerant%2Fgcp-role-permissions-diff/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berquerant%2Fgcp-role-permissions-diff/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berquerant%2Fgcp-role-permissions-diff/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/berquerant","download_url":"https://codeload.github.com/berquerant/gcp-role-permissions-diff/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246168367,"owners_count":20734443,"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":["google-cloud","python"],"created_at":"2025-03-29T10:19:52.600Z","updated_at":"2025-03-29T10:19:53.128Z","avatar_url":"https://github.com/berquerant.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gcp-role-permissions-diff\n\n``` shell\n❯ python -m gcp_role_permissions_diff.cli --help\nusage: gcp_role_permissions_diff [-h] [--tree] [--debug] [--out {json,yaml,text}] expr [expr ...]\n\nCompare the permissions of multiple roles in Google Cloud.\nThe gcloud command (https://cloud.google.com/sdk/docs/install) is required.\n\nTo perform the comparison, please write the expression according to the following grammar:\n\nexpr = product\n  | expr \"+\" product  // or\n  | expr \"-\" product  // diff\nproduct = atom\n  | product \"*\" atom  // and\n  | product \"^\" atom  // xor\natom = \"@\" NAME       // Read a role from NAME file\n  | NAME              // gcloud iam roles describe NAME\n  | \"(\" expr \")\"\nNAME: [a-zA-Z-0-9_/.]+\n\nExamples of expr:\n// Permissions of roles/browser\nroles/browser\n// Permissions included in roles/browser but not in roles/resourcemanager.folderViewer\nroles/browser - roles/resourcemanager.folderViewer\n// Permissions included in both roles/browser and roles/resourcemanager.folderViewer\nroles/browser * roles/resourcemanager.folderViewer\n\nExamples of role file:\n// yaml\nname: roles/secretmanager.secretAccessor\nincludedPermissions:\n- resourcemanager.projects.get\n- resourcemanager.projects.list\n- secretmanager.versions.access\n// json\n{\n  \"name\": \"roles/secretmanager.secretAccessor\",\n  \"includedPermissions\": [\n    \"resourcemanager.projects.get\",\n    \"resourcemanager.projects.list\",\n    \"secretmanager.versions.access\"\n  ]\n}\n// text\nresourcemanager.projects.get\nresourcemanager.projects.list\nsecretmanager.versions.access\n\npositional arguments:\n  expr                  Expressions\n\noptions:\n  -h, --help            show this help message and exit\n  --tree                Only parsing, generating Tree\n  --debug               Enable debug log\n  --out, -o {json,yaml,text}\n                        Output format, default: text\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberquerant%2Fgcp-role-permissions-diff","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fberquerant%2Fgcp-role-permissions-diff","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberquerant%2Fgcp-role-permissions-diff/lists"}