def cli(output_path): """API docs dummy generator.""" global OUTPUT_PATH if output_path is not None: OUTPUT_PATH = os.path.abspath(output_path) with SentryBox(): utils = MockUtils() report('org', 'Creating user and organization') user = utils.create_user('*****@*****.**') org = utils.create_org('The Interstellar Jurisdiction', owner=user) api_key = utils.create_api_key(org) report('org', 'Creating team') team = utils.create_team('Powerful Abolitionist', org=org) projects = [] for project_name in 'Pump Station', 'Prime Mover': report('project', 'Creating project "%s"' % project_name) project = utils.create_project(project_name, team=team, org=org) release = utils.create_release(project=project, user=user) report('event', 'Creating event for "%s"' % project_name) event1 = utils.create_event(project=project, release=release, platform='python') event2 = utils.create_event(project=project, release=release, platform='java') projects.append({ 'project': project, 'release': release, 'events': [event1, event2], }) vars = { 'org': org, 'api_key': api_key, 'me': user, 'api_key': api_key, 'teams': [{ 'team': team, 'projects': projects, }], } for scenario_ident, func in iter_scenarios(): run_scenario(vars, scenario_ident, func) section_mapping = {} report('docs', 'Exporting endpoint documentation') for endpoint in iter_endpoints(): report('endpoint', 'Exporting docs for "%s"' % endpoint['endpoint_name']) section_mapping.setdefault(endpoint['section'], []) \ .append((endpoint['endpoint_name'], endpoint['title'])) dump_json('endpoints/%s.json' % endpoint['endpoint_name'], endpoint) report('docs', 'Exporting sections') dump_json( 'sections.json', { 'sections': dict((section, { 'title': title, 'entries': dict(section_mapping.get(section, ())), }) for section, title in get_sections().iteritems()) })
def cli(output_path, output_format): """API docs dummy generator.""" global OUTPUT_PATH if output_path is not None: OUTPUT_PATH = os.path.abspath(output_path) with SentryBox(): utils = MockUtils() report('org', 'Creating user and organization') user = utils.create_user('*****@*****.**') org = utils.create_org('The Interstellar Jurisdiction', owner=user) api_key = utils.create_api_key(org) report('org', 'Creating team') team = utils.create_team('Powerful Abolitionist', org=org) projects = [] for project_name in 'Pump Station', 'Prime Mover': report('project', 'Creating project "%s"' % project_name) project = utils.create_project(project_name, teams=[team], org=org) release = utils.create_release(project=project, user=user) report('event', 'Creating event for "%s"' % project_name) event1 = utils.create_event(project=project, release=release, platform='python') event2 = utils.create_event(project=project, release=release, platform='java') projects.append({ 'project': project, 'release': release, 'events': [event1, event2], }) vars = { 'org': org, 'me': user, 'api_key': api_key, 'teams': [{ 'team': team, 'projects': projects, }], } scenario_map = {} report('docs', 'Collecting scenarios') for scenario_ident, func in iter_scenarios(): scenario = run_scenario(vars, scenario_ident, func) scenario_map[scenario_ident] = scenario section_mapping = {} report('docs', 'Collecting endpoint documentation') for endpoint in iter_endpoints(): report('endpoint', 'Collecting docs for "%s"' % endpoint['endpoint_name']) section_mapping \ .setdefault(endpoint['section'], []) \ .append(endpoint) sections = get_sections() if output_format in ('json', 'both'): output_json(sections, scenario_map, section_mapping) if output_format in ('markdown', 'both'): output_markdown(sections, scenario_map, section_mapping)
def cli(output_path): """API docs dummy generator.""" global OUTPUT_PATH if output_path is not None: OUTPUT_PATH = os.path.abspath(output_path) with SentryBox(): utils = MockUtils() report('org', 'Creating user and organization') user = utils.create_user('*****@*****.**') org = utils.create_org('The Interstellar Jurisdiction', owner=user) api_key = utils.create_api_key(org) report('org', 'Creating team') team = utils.create_team('Powerful Abolitionist', org=org) projects = [] for project_name in 'Pump Station', 'Prime Mover': report('project', 'Creating project "%s"' % project_name) project = utils.create_project(project_name, team=team, org=org) release = utils.create_release(project=project, user=user) report('event', 'Creating event for "%s"' % project_name) event1 = utils.create_event(project=project, release=release, platform='python') event2 = utils.create_event(project=project, release=release, platform='java') projects.append({ 'project': project, 'release': release, 'events': [event1, event2], }) vars = { 'org': org, 'api_key': api_key, 'me': user, 'api_key': api_key, 'teams': [{ 'team': team, 'projects': projects, }], } for scenario_ident, func in iter_scenarios(): run_scenario(vars, scenario_ident, func) section_mapping = {} report('docs', 'Exporting endpoint documentation') for endpoint in iter_endpoints(): report('endpoint', 'Exporting docs for "%s"' % endpoint['endpoint_name']) section_mapping.setdefault(endpoint['section'], []) \ .append((endpoint['endpoint_name'], endpoint['title'])) dump_json('endpoints/%s.json' % endpoint['endpoint_name'], endpoint) report('docs', 'Exporting sections') dump_json('sections.json', { 'sections': dict((section, { 'title': title, 'entries': dict(section_mapping.get(section, ())), }) for section, title in get_sections().iteritems()) })
def cli(output_path, output_format): """API docs dummy generator.""" global OUTPUT_PATH if output_path is not None: OUTPUT_PATH = os.path.abspath(output_path) with SentryBox(): utils = MockUtils() report("org", "Creating user and organization") user = utils.create_user("*****@*****.**") org = utils.create_org("The Interstellar Jurisdiction", owner=user) report("auth", "Creating api token") api_token = utils.create_api_token(user) report("org", "Creating team") team = utils.create_team("Powerful Abolitionist", org=org) utils.join_team(team, user) projects = [] for project_name in "Pump Station", "Prime Mover": report("project", 'Creating project "%s"' % project_name) project = utils.create_project(project_name, teams=[team], org=org) release = utils.create_release(project=project, user=user) report("event", 'Creating event for "%s"' % project_name) event1 = utils.create_event(project=project, release=release, platform="python") event2 = utils.create_event(project=project, release=release, platform="java") projects.append({ "project": project, "release": release, "events": [event1, event2] }) vars = { "org": org, "me": user, "api_token": api_token, "teams": [{ "team": team, "projects": projects }], } scenario_map = {} report("docs", "Collecting scenarios") for scenario_ident, func in iter_scenarios(): scenario = run_scenario(vars, scenario_ident, func) scenario_map[scenario_ident] = scenario section_mapping = {} report("docs", "Collecting endpoint documentation") for endpoint in iter_endpoints(): report("endpoint", 'Collecting docs for "%s"' % endpoint["endpoint_name"]) section_mapping.setdefault(endpoint["section"], []).append(endpoint) sections = get_sections() if output_format in ("json", "both"): output_json(sections, scenario_map, section_mapping) if output_format in ("markdown", "both"): output_markdown(sections, scenario_map, section_mapping)
def cli(output_path, output_format): """API docs dummy generator.""" global OUTPUT_PATH if output_path is not None: OUTPUT_PATH = os.path.abspath(output_path) with SentryBox(): utils = MockUtils() report('org', 'Creating user and organization') user = utils.create_user('*****@*****.**') org = utils.create_org('The Interstellar Jurisdiction', owner=user) report('auth', 'Creating api token') api_token = utils.create_api_token(user) report('org', 'Creating team') team = utils.create_team('Powerful Abolitionist', org=org) utils.join_team(team, user) projects = [] for project_name in 'Pump Station', 'Prime Mover': report('project', 'Creating project "%s"' % project_name) project = utils.create_project(project_name, teams=[team], org=org) release = utils.create_release(project=project, user=user) report('event', 'Creating event for "%s"' % project_name) event1 = utils.create_event(project=project, release=release, platform='python') event2 = utils.create_event(project=project, release=release, platform='java') projects.append({ 'project': project, 'release': release, 'events': [event1, event2], }) vars = { 'org': org, 'me': user, 'api_token': api_token, 'teams': [{ 'team': team, 'projects': projects, }], } scenario_map = {} report('docs', 'Collecting scenarios') for scenario_ident, func in iter_scenarios(): scenario = run_scenario(vars, scenario_ident, func) scenario_map[scenario_ident] = scenario section_mapping = {} report('docs', 'Collecting endpoint documentation') for endpoint in iter_endpoints(): report('endpoint', 'Collecting docs for "%s"' % endpoint['endpoint_name']) section_mapping \ .setdefault(endpoint['section'], []) \ .append(endpoint) sections = get_sections() if output_format in ('json', 'both'): output_json(sections, scenario_map, section_mapping) if output_format in ('markdown', 'both'): output_markdown(sections, scenario_map, section_mapping)
def cli(output_path, output_format): global OUTPUT_PATH if output_path is not None: OUTPUT_PATH = os.path.abspath(output_path) with apidoc_containers(): from sentry.runner import configure configure() sentry = Popen([ "sentry", "--config=" + SENTRY_CONFIG, "run", "web", "-w", "1", "--bind", "127.0.0.1:9000", ]) from django.core.management import call_command call_command( "migrate", interactive=False, traceback=True, verbosity=0, migrate=True, merge=True, ignore_ghost_migrations=True, ) utils = MockUtils() report("org", "Creating user and organization") user = utils.create_user("*****@*****.**") org = utils.create_org("The Interstellar Jurisdiction", owner=user) report("auth", "Creating api token") api_token = utils.create_api_token(user) report("org", "Creating team") team = utils.create_team("Powerful Abolitionist", org=org) utils.join_team(team, user) projects = [] for project_name in "Pump Station", "Prime Mover": report("project", 'Creating project "%s"' % project_name) project = utils.create_project(project_name, teams=[team], org=org) release = utils.create_release(project=project, user=user) report("event", 'Creating event for "%s"' % project_name) event1 = utils.create_event(project=project, release=release, platform="python") event2 = utils.create_event(project=project, release=release, platform="java") projects.append({ "project": project, "release": release, "events": [event1, event2] }) # HACK: the scenario in ProjectDetailsEndpoint#put requires our integration docs to be in place # so that we can validate the platform. We create the docker container that runs generator.py # with SENTRY_LIGHT_BUILD=1, which doesn't run `sync_docs` and `sync_docs` requires sentry # to be configured, which we do in this file. So, we need to do the sync_docs here. sync_docs(quiet=True) vars = { "org": org, "me": user, "api_token": api_token, "teams": [{ "team": team, "projects": projects }], } scenario_map = {} report("docs", "Collecting scenarios") for scenario_ident, func in iter_scenarios(): scenario = run_scenario(vars, scenario_ident, func) scenario_map[scenario_ident] = scenario section_mapping = {} report("docs", "Collecting endpoint documentation") for endpoint in iter_endpoints(): report("endpoint", 'Collecting docs for "%s"' % endpoint["endpoint_name"]) section_mapping.setdefault(endpoint["section"], []).append(endpoint) sections = get_sections() if output_format in ("json", "both"): output_json(sections, scenario_map, section_mapping) if output_format in ("markdown", "both"): output_markdown(sections, scenario_map, section_mapping) if sentry is not None: report("sentry", "Shutting down sentry server") sentry.kill() sentry.wait()