Refactor the handle_tag function to become a method to enable WebhookMapping.trigger_build()

Signed-off-by: David Greaves <david.greaves@jolla.com>
Rename lsr to avoid confusion with the readonly dynamic attribute
Return a message from handle_tag() so it can be used by /trigger API call

Signed-off-by: David Greaves <david.greaves@jolla.com>
Add WebhookMapping.trigger_build()

Signed-off-by: David Greaves <david.greaves@jolla.com>
Add a /trigger ability via a PUT method

Signed-off-by: David Greaves <david.greaves@jolla.com>
Update packaging to support webhook service and add dependency on lxml and (for Suse) python-South; also add migrations

Signed-off-by: David Greaves <david.greaves@jolla.com>
Add a webhook creation script: wh <project> <package> <git repo> [<branch>]

Signed-off-by: David Greaves <david.greaves@jolla.com>
Verify Project restrictions when handling incoming payloads; not just at validation

Signed-off-by: David Greaves <david.greaves@jolla.com>
Add some explanatory text for Projects

Signed-off-by: David Greaves <david.greaves@jolla.com>
Add migration for uniqueness constraint
Add cibot management to wh
Update process to use log_channel and default to #mer-boss (as per BUILD process)

Signed-off-by: David Greaves <david.greaves@jolla.com>
Revert create_project to use non-DRY parse_bz_config until python-boss-common is updated in public

Signed-off-by: David Greaves <david.greaves@jolla.com>
Add missing VCSNameSpace import and a comment for placeholder mappings

Signed-off-by: David Greaves <david.greaves@jolla.com>