#!/usr/bin/env python3 # -*- coding: utf-8 -*- """Create configuration for code search.""" import json import urllib.request import sys ONAP_GERRIT = "https://gerrit.onap.org/r" ONAP_CGIT = "https://git.onap.org" API_PROJECTS = "/projects/" MAGIC_PREFIX = ")]}'" def get_projects_list(): """Request list of all available projects from ONAP Gerrit.""" resp = urllib.request.urlopen(ONAP_GERRIT + API_PROJECTS) resp_body = resp.read() no_magic = resp_body[len(MAGIC_PREFIX):] decoded = no_magic.decode("utf-8") projects = json.loads(decoded) return projects.keys() def create_repos_list(projects): """Create a map of all projects to their repositories' URLs.""" return {p: {"url": "{}/{}".format(ONAP_CGIT, p), "url-pattern": {"base-url": "{url}/tree/{path}{anchor}", "anchor": "#n{line}"}} for p in projects} def main(): """Main entry point for the script.""" repos = create_repos_list(get_projects_list()) config = { "max-concurrent-indexers": 2, "dbpath": "data", "health-check-uri": "/healthz", "repos": repos } print(json.dumps(config, sort_keys=True, indent=4, separators=(',', ': '))) if __name__ == '__main__': sys.exit(main())