taskcluster/taskcluster-queue — pull request #14 by jonasfj (2014-06-05 23:40:53+00:00)
Title: Use taskcluster base (and accept jlals improvements)

So, this turned out to be a major detour... It's possible that we could have done authentication without `taskcluster-base` and all of this refactoring. But it would have been a sad thing to do.

In the process of doing taskcluster-base we move completely away from global state. We have a lot testing of various utilities in `taskcluster-base`. For example, the queue only has JSON definitions for how to publish AMQP messages, making it pointless to write a test that checks that the `Publisher` constructed can publish messages.

Highlights:
* No global state
* Use of taskcluster-base with many reuseable components
* Mostly configured in JSON
* Very little code duplication (mostly JSON configuration)
* Reaper is now a background process (so we can scale queue to more nodes without getting problems from this)
* All of @lightsofapollo's changes from PR #13

With regards to authentication, all we need to do is to enable it is:
1. Update everybody who tasks to the queue with credentials
2. Add `scopes` to `v1.js`
3. Fix tests to authenticate
4. Add mock authentication server to `taskcluster-base` for testing.

I think we should start with updating the components that talk to the queue. This should be fairly easy. Once this is deployed, I'll update `taskcluster-client` with API references from the queue so we can get started.

**Note** there might still be a few things to fix when deploying this as we need to modify configuration keys on heroku. So please ping when you're ready to merge this.