{"id":16931120,"url":"https://github.com/issif/github-package-pulls-scraper","last_synced_at":"2026-05-17T18:33:34.480Z","repository":{"id":157047433,"uuid":"605650957","full_name":"Issif/github-package-pulls-scraper","owner":"Issif","description":"Scrape Github packages to extract their pull counts","archived":false,"fork":false,"pushed_at":"2024-04-13T06:14:16.000Z","size":10659,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-04-14T02:54:31.669Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Issif.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2023-02-23T15:59:25.000Z","updated_at":"2024-04-16T07:31:02.410Z","dependencies_parsed_at":"2023-12-21T09:18:20.843Z","dependency_job_id":"8d4e88a7-9900-4a7c-9b75-211b81b08dfd","html_url":"https://github.com/Issif/github-package-pulls-scraper","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Issif%2Fgithub-package-pulls-scraper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Issif%2Fgithub-package-pulls-scraper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Issif%2Fgithub-package-pulls-scraper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Issif%2Fgithub-package-pulls-scraper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Issif","download_url":"https://codeload.github.com/Issif/github-package-pulls-scraper/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244730075,"owners_count":20500361,"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":"2024-10-13T20:43:15.846Z","updated_at":"2026-05-17T18:33:29.449Z","avatar_url":"https://github.com/Issif.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Github packages pulls scraper\n\nGithub doesn't provide an API endpoint to track the number of pulls of the OCI packages it hosts. This script offers an hacky solution by scraping the packages page to extract the list then iterating to get the count of pulls per version.\n\nIt generates one comma separated `.csv` file per package, with the columns: `Date, Package, Version, Count`. Up to you to run the script every X times to add a new line in the files.\n\n## Build\n\n```shell\ngo build\n```\n\n### Usage\n\n```shell\nUsage of github-package-pulls-scraper:\n  -o string\n        Destination folder for .csv (default \"./outputs\")\n  -p string\n        Your profile or organization name\n```\n\n### Results\n\nLog:\n```\n❯ go run . -p falcosecurity\n2023/02/23 16:54:27 Start scrapping of 'https://github.com/orgs/falcosecurity/packages?visibility=public'\n2023/02/23 16:54:27 Scrape pulls count for package 'rules/falco-rules'\n2023/02/23 16:54:28 Scrape pulls count for package 'plugins/ruleset/k8saudit'\n2023/02/23 16:54:30 Scrape pulls count for package 'plugins/plugin/k8saudit-eks'\n2023/02/23 16:54:32 Scrape pulls count for package 'plugins/plugin/json'\n2023/02/23 16:54:33 Scrape pulls count for package 'plugins/plugin/cloudtrail'\n2023/02/23 16:54:34 Scrape pulls count for package 'plugins/plugin/k8saudit'\n2023/02/23 16:54:35 Scrape pulls count for package 'plugins/ruleset/cloudtrail'\n2023/02/23 16:54:37 Scrape pulls count for package 'plugins/plugin/dummy'\n2023/02/23 16:54:38 Scrape pulls count for package 'plugins/plugin/okta'\n2023/02/23 16:54:39 Scrape pulls count for package 'plugins/ruleset/okta'\n2023/02/23 16:54:40 Scrape pulls count for package 'plugins/plugin/github'\n2023/02/23 16:54:42 Scrape pulls count for package 'plugins/ruleset/github'\n2023/02/23 16:54:43 Scrape pulls count for package 'rules/application-rules'\n2023/02/23 16:54:44 Scrape pulls count for package 'event-generator/run-on-arch-falcosecurity-event-generator-ci-build-aarch64-alpine-latest'\n2023/02/23 16:54:45 Scrape pulls count for package 'plugins/plugin/dummy_c'\n2023/02/23 16:54:47 15 package(s) found\n2023/02/23 16:54:47 Writing of the .csv in './outputs'\n```\n\nExample of a `.csv` file:\n```csv\n2023-02-22T16:52:54+01:00,ruleset/k8saudit,0.5.0,19390\n2023-02-22T16:54:30+01:00,ruleset/k8saudit,0.5.0,19392\n2023-02-22T17:27:12+01:00,ruleset/k8saudit,0.5.0,19417\n```\n\n## Author\n\nThomas Labarussias (https://github.com/Issif)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fissif%2Fgithub-package-pulls-scraper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fissif%2Fgithub-package-pulls-scraper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fissif%2Fgithub-package-pulls-scraper/lists"}