{"id":18508492,"url":"https://github.com/ossf/github-org-access-scraper","last_synced_at":"2025-10-27T18:04:21.263Z","repository":{"id":170811768,"uuid":"626756768","full_name":"ossf/github-org-access-scraper","owner":"ossf","description":"GitHub lacks an API for listing an org's repos' access for non-team-based individuals, so, scrape it.","archived":false,"fork":false,"pushed_at":"2023-05-30T16:45:29.000Z","size":17,"stargazers_count":5,"open_issues_count":1,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-07-11T09:49:28.954Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"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/ossf.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,"zenodo":null}},"created_at":"2023-04-12T05:20:56.000Z","updated_at":"2023-09-25T02:22:42.000Z","dependencies_parsed_at":"2023-07-23T13:20:18.479Z","dependency_job_id":null,"html_url":"https://github.com/ossf/github-org-access-scraper","commit_stats":null,"previous_names":["ossf/github-org-access-scraper"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ossf/github-org-access-scraper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ossf%2Fgithub-org-access-scraper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ossf%2Fgithub-org-access-scraper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ossf%2Fgithub-org-access-scraper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ossf%2Fgithub-org-access-scraper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ossf","download_url":"https://codeload.github.com/ossf/github-org-access-scraper/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ossf%2Fgithub-org-access-scraper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278548018,"owners_count":26004818,"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","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"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":[],"created_at":"2024-11-06T15:14:33.251Z","updated_at":"2025-10-06T02:22:54.301Z","avatar_url":"https://github.com/ossf.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# github-org-access-scraper\nGitHub lacks an API for listing an org's repos' access for non-team-based individuals, so, scrape it.\n\n# Prerequisites\n1. A Mac with Safari and the Script Editor\n1. [JSON Helper](https://apps.apple.com/us/app/json-helper-for-applescript/id453114608?mt=12) from the Mac App Store\n1. `jq` (`brew install jq`)\n\n# Instructions\n\n1. Clone this repo.\n1. Log into github.com in Safari, with an account that has Maintain or Admin access on every repo in the given org (@ossf in this case), or, is an Owner\n1. Visit any repo’s \"Collaborator and Teams\" page ([example](https://github.com/ossf/tac/settings/access)), and authenticate if needed - this ensures you’re in an \"elevated privileges\" window so the script can work unimpeded.\n1. Open `org-scrape.scpt` in the Script Editor, and click the “play” button. You can use your computer while this is working, but please do not use Safari or you risk interrupting the flow.\n1. This will produce a `ossf.json` file in this repo’s working directory.\n\nTo filter the data to repos that have individual-based access:\n```sh\njq 'to_entries[] | select(.value.users | length \u003e 0) | .value' ossf.json\n```\n\nTo display only repo names that have individual-based access:\n```sh\njq -r 'to_entries[] | select(.value.users | length \u003e 0) | .value.repo' ossf.json\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fossf%2Fgithub-org-access-scraper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fossf%2Fgithub-org-access-scraper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fossf%2Fgithub-org-access-scraper/lists"}