#!/usr/bin/env nix-shell #!nix-shell -i python3 -p python3Packages.python -p python3Packages.requests import json import requests disallowed_repos = [ "NixOS/nixops-dashboard", # empty repo causes an error ] allowed_forks = [ "nix-community/acpi_call", "nix-community/bundix", "nix-community/luarocks-nix", "nix-community/nix-doom-emacs", "nix-community/nix-straight.el", "nix-community/travis-build", "nix-community/vagrant-nixos-plugin", "NixOS/calamares-nixos-extensions", ] def all_for_org(org): resp = {} next_url = "https://api.github.com/orgs/{}/repos".format(org) while next_url is not None: repo_resp = requests.get(next_url) if "next" in repo_resp.links: next_url = repo_resp.links["next"]["url"] else: next_url = None repos = repo_resp.json() resp.update( { "{}-{}".format(org, repo["name"]): { "url": repo["clone_url"], } for repo in repos if repo["full_name"] not in disallowed_repos if repo["archived"] is False if repo["fork"] is False or repo["full_name"] in allowed_forks } ) return resp repos = {**all_for_org("NixOS"), **all_for_org("nix-community")} print( json.dumps( { "max-concurrent-indexers": 1, "dbpath": "/var/lib/hound/data", "repos": repos, "vcs-config": {"git": {"detect-ref": True}}, }, indent=4, sort_keys=True, ) )