infra/services/hound/update-hound.py

55 lines
1.4 KiB
Python
Executable file

#!/usr/bin/env nix-shell
#!nix-shell -i python3 -p python3Packages.python -p python3Packages.requests
import requests
import json
from pprint import pprint
blacklist = [
'https://github.com/NixOS/nixos.git',
'https://github.com/NixOS/systemd.git',
'https://github.com/NixOS/docker.git',
'https://github.com/NixOS/nixpkgs-channels.git',
'https://github.com/NixOS/nixops-dashboard.git',
'https://github.com/NixOS/nixos-foundation.git',
];
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'],
'vcs-config': {
'ref': repo['default_branch']
}
}
for repo in repos
if repo['clone_url'] not in blacklist
})
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
},
indent=4,
sort_keys=True
))