Gerrit features and Docker based testing

bbuhlig at codeaurora.org bbuhlig at codeaurora.org
Fri Oct 20 01:07:30 CEST 2017


Hi, Cgit is frequently paired with Gerrit installations, so I have a
some Gerrit integration features I'd like to contribute. One is a Lua
authentication filter for Gerrit. Background is that Gerrit allows 
different
users to have access to different repos, so in essence this auth filter
leverages the user's Gerrit login HTTP cookie to access the Gerrit REST 
API,
which it uses to figure out whether the logged in user should have 
access to
the particular repo.

Anyway, to help ensure it keeps working along with the Lua code itself, 
I'd
ideally like to contribute some tests for it. But the environment those
tests would need to run in would be a bit complicated, in particular 
needing:

   (1) the auth filter's Lua package dependencies installed-
         - specifically: crypto, ssl.https and ltn12
   and,
   (2) a test Gerrit instance configured that the filter could talk to,
         - or a simple python/node.js based webserver that looks 
sufficiently
           like the part of the Gerrit REST API that the filter cares 
about

An obvious way to define this environment would be a Dockerfile that the
"make test" command invokes Docker against. To enable people who don't 
care
about the Gerrit auth-filter, the makefile could be setup to skip the 
test
if Docker isn't installed on the build machine. But unless the cgit
maintainers were to trigger the tests in a build environment with Docker
available, the auth filter code would eventually get stale and break.

Assuming the above sounds reasonable and I provided said feature and 
tests,
would it be possible for the cgit maintainers to generally have Docker
available when regularly running "make test"?

Or another option might be to leverage Travis CI to regularly kick off
cgit builds in a Docker environment that way, but doing that would tie 
you
to Github in ways that you probably aren't now.

Appreciate comments. Thanks, -Blake


More information about the CGit mailing list