Hello,
Now that Google itself doesn't use SSH interface to Gerrit (https://android-review.googlesource.com/ssh_info), does it mean that SSH interface is deprecated, i.e. should other parties consider moving away from it? That apparently would make maintenance schedule less flexible: previously, there were separate "Gerrit admin" role which didn't require "sysadmin" (filesystem-level) access for things like DB maintenance.
Another question, is there a replacement for "SSH API" like "gerrit review", "gerrit stream-events", etc.? Well, what we'd need right now is analog of "gerrit ls-projects", i.e. a stable, machine-readable way to get a list of projects in AOSP Gerrit. Any hints?
Thanks, Paul
Linaro.org | Open source software for ARM SoCs Follow Linaro: http://www.facebook.com/pages/Linaro http://twitter.com/#%21/linaroorg - http://www.linaro.org/linaro-blog
On Tue, Mar 13, 2012 at 04:41, Paul Sokolovsky paul.sokolovsky@linaro.org wrote:
Now that Google itself doesn't use SSH interface to Gerrit (https://android-review.googlesource.com/ssh_info), does it mean that SSH interface is deprecated,
No, it isn't deprecated. The SSH interface is too useful for end-users, administrators, etc.
Google doesn't support SSH because of our networking infrastructure limitations. Gerrit Code Review at {android-review,gerrit-review}.googlesource.com runs in multiple Google data centers, similar to ones that run Google Web Search and GMail. The network devices between your ISPs peering connection with Google and the server running Gerrit Code Review only forward HTTP. Everything else gets blocked and dropped on the floor. Asking for something else to be tunneled through like GMail does for SMTP, IMAP or POP3 is a major engineering effort that my small team doesn't have the staffing to implement, and is very expensive for the company to perform relative to the small gain we might get in usability. :-(
So what this does mean is actions that are available over SSH will become more available over HTTP, because otherwise we lose them in this particular hosting environment.
i.e. should other parties consider moving away from it?
Only if you want to stop using SSH. :-)
That apparently would make maintenance schedule less flexible: previously, there were separate "Gerrit admin" role which didn't require "sysadmin" (filesystem-level) access for things like DB maintenance.
This "Gerrit admin" role still exists, and always will exist. Managing the configuration of the server through the web UI is a step above having direct file system access.
Another question, is there a replacement for "SSH API" like "gerrit review", "gerrit stream-events", etc.?
No. We are working on it. Specifically Conley Owens is being loaned to the project by Android for a short time to build a version of "gerrit review" on HTTP by refactoring the common code out of the SSH server and making ti available over both HTTP and SSH. This will also add a JSON input format for "gerrit review" so automated tools could add line-level comments on changes. For example, an automated lint analysis tool could place warnings directly on the line.
Well, what we'd need right now is analog of "gerrit ls-projects", i.e. a stable, machine-readable way to get a list of projects in AOSP Gerrit. Any hints?
AOSP maintains an additional manifest file that lists every project... because ls-projects isn't (yet) available over HTTP. ls-projects has to be one of the simpler SSH commands... and patches are always be appreciated. :-)
Hello Shawn,
On Tue, 13 Mar 2012 07:12:24 -0700 Shawn Pearce sop@google.com wrote:
On Tue, Mar 13, 2012 at 04:41, Paul Sokolovsky paul.sokolovsky@linaro.org wrote:
Now that Google itself doesn't use SSH interface to Gerrit (https://android-review.googlesource.com/ssh_info), does it mean that SSH interface is deprecated,
No, it isn't deprecated. The SSH interface is too useful for end-users, administrators, etc.
[]
Thanks for the detailed explanation, Shawn, much appreciated.
[]
Well, what we'd need right now is analog of "gerrit ls-projects", i.e. a stable, machine-readable way to get a list of projects in AOSP Gerrit. Any hints?
AOSP maintains an additional manifest file that lists every project... because ls-projects isn't (yet) available over HTTP. ls-projects has to be one of the simpler SSH commands... and patches are always be appreciated. :-)
We need this to automatically pull new AOSP projects to our mirror at http://android.git.linaro.org , and just had some old code using ls-projects which worked at kernel.org times. It probably makes sense to just rewrite it to use a manifest instead, especially if there's one maintained to list all projects, so it won't take parsing multiple manifests in multiple branches.
On Tuesday, March 13, 2012 3:12:24 PM UTC+1, Shawn Pearce wrote:
AOSP maintains an additional manifest file that lists every project... because ls-projects isn't (yet) available over HTTP.
Isn't Admin → Projects in the Web UI the same as gerrit ls-projects?
If so, a GET to https://gerrit-review.googlesource.com/gerrit/rpc/ProjectAdminService?jsonrp... should give you the result (or something like that; I couldn't make it work without an xsrfToken; it works from the Web UI if you go to https://gerrit-review.googlesource.com/#/admin/projects/ without being authenticated –the page is not accessible through the Web UI via links–)
Hello Thomas,
On Tue, 13 Mar 2012 09:27:05 -0700 (PDT) Thomas Broyer t.broyer@gmail.com wrote:
On Tuesday, March 13, 2012 3:12:24 PM UTC+1, Shawn Pearce wrote:
AOSP maintains an additional manifest file that lists every project... because ls-projects isn't (yet) available over HTTP.
Isn't Admin → Projects in the Web UI the same as gerrit ls-projects?
If so, a GET to https://gerrit-review.googlesource.com/gerrit/rpc/ProjectAdminService?jsonrp... should give you the result (or something like that; I couldn't make it work without an xsrfToken; it works from the Web UI if you go to https://gerrit-review.googlesource.com/#/admin/projects/ without being authenticated –the page is not accessible through the Web UI via links–)
Yeah, I figured that there might be a way to plug into internal AJAX interface (or just scrape web pages), but I was looking for officially supported external API, anything else might break any time. As it's about mirroring, using a manifest seems like a good solution.
linaro-android@lists.linaro.org