= Live branches = '''Show branch content within the main web application, rather than sequestered on bazaar.l.n''' This is intended to mesh with [[ArchitectureGuide/ServicesRoadmap]]. Moving parts: * loggerhead serves machine-readable branch content (files, diffs, revision metadata, etc) * same-origin proxy that republishes this through code.launchpad.net (probably in Apache) * javascript updates to show content within the page * branch page redesign to make it work well New things to show on the branch page: * per-revision lists of changed file * per-revision diffs * files in the tip of the branch * more than the 10 most recent revisions Operational changes: * add rewrite/proxy rules on nutmeg/banana front-end apaches * possible firewall changes to allow that proxying to occur * robots.txt should block access to the proxied urls Issues: * republished information must be safe against xss-type attacks from user content Specific work items: * return JSON from loggerhead (currently returns HTML snippets) * `lp:~spiv/loggerhead/jsonify` * Done by including `+json`, eg `branch/+json/+revlog/$REVID` * URLs handled: `/+revlog`, `/+filediff`, `/files`, `/revision` * URLs already returning raw content: `/diff`, `/download` * URLs being skipped: `DirEntry`, `/changes`, `/view`, `/atom`, `/search` * URLs needing significant changes: `/annotate` * proxy data from loggerhead through on https://code.launchpad.net/ (lp:~jelmer/launchpad/apache-config-loggerhead) * in Launchpad add javascript (i.e. client-side) templating/rendering of that JSON content. Use hidden HTML node in page, copy and populate with values from JSON, add new node to page. * `lp:~jtv/launchpad/expand-diffs` to render the existing /diff (not using JSON yet)