Don't compress already-compressed files.

Fixes <https://github.com/NixOS/hydra/issues/102>.
Don't print to stdout
When a tab is selected, change the fragment id

And when a page is visited, active the tab identified by the fragment
id.  This allows linking to a specific tab.

Fixes #93.
After editing a project/jobset, redirect back to the config tab
Move common Javascript code into a separate file
Add common.js to the tarball
Eliminate duplicate getPreviousBuild functions

And move some stuff into CatalystUtils for use by other plugins.
Add a plugin for HipChat notification

This plugin sends notification of build failure or success to a
HipChat room, if the status differs from the last build.

The plugin can be configured by adding one or more of these stanzas to
hydra.conf:

  <hipchat>
    jobs = (patchelf|nixops):.*:.*
    room = 1234
    token = 39ab2198fe...
  </hipchat>

Here "jobs" is a regular expression against which the fully qualified
job name of the build is matched (so for instance
"nixops:master:tarball" will match the stanza above).
Merge pull request #103 from civodul/nar-uncompressed

Don't compress already-compressed files.
Doh
Revert "Doh"

This reverts commit f1f938512d4e3c478ea3c09db0536912657fb8ae.
Revert "Don't compress already-compressed files."

This reverts commit 190bffd846f044a13c239513f8ef1ea45ee8a1f2.
release.nix: Get rid of the "system" argument
Remove tabs
Include names of committers in HipChat notifications

HipChat notification messages now say which committers were
responsible, e.g.

  Job patchelf:trunk:tarball: Failed, probably due to 2 commits by Eelco Dolstra
Merge in the first bits of the API work

The catalyst-action-rest branch from shlevy/hydra was an exploration of
using Catalyst::Action::REST to create a JSON API for hydra. This commit
merges in the best bits from that experiment, with the goal that further
API endpoints can be added incrementally.

In addition to migrating more endpoints, there is potential for
improvement in what's already been done:
* The web interface can be updated to use the same non-GET endpoints as
  the JSON interface (using x-tunneled-method) instead of having a
  separate endpoint
* The web rendering should use the $c->stash->{resource} data structure
  where applicable rather than putting the same data in two places in
  the stash
* Which columns to render for each endpoint is a completely debatable
  question
* Hydra::Component::ToJSON should turn has_many relations that have
  strings as their primary keys into objects instead of arrays

Fixes NixOS/hydra#98

Signed-off-by: Shea Levy <shea@shealevy.com>
32-bit qemu can only do 2047 MB

Signed-off-by: Shea Levy <shea@shealevy.com>
Check if we want to send email for a build before iterating through its users

Signed-off-by: Shea Levy <shea@shealevy.com>
Fix jobset update

Signed-off-by: Shea Levy <shea@shealevy.com>
Emable overriding the email template.

The HYDRA_EMAIL_TEMPLATE env var can be set to any value understood by
https://metacpan.org/module/Template#process-template-vars-output-options
as the $template argument.

Signed-off-by: Shea Levy <shea@shealevy.com>