diff options
author | Gauvain Pocentek <gauvain@pocentek.net> | 2016-11-20 10:01:04 +0100 |
---|---|---|
committer | Gauvain Pocentek <gauvain@pocentek.net> | 2016-11-20 10:01:04 +0100 |
commit | de05daea0aa30e73c3a6f073bd173f23489c8339 (patch) | |
tree | 2a3f7d5b2250ff8a68fed3be2cdaee23103ef780 /gitlab/objects.py | |
parent | f5f734e3a714693c9596a9f57bcb94deb8c9813e (diff) | |
download | gitlab-de05daea0aa30e73c3a6f073bd173f23489c8339.tar.gz |
Add support for triggering a new build
Fixes #184
Diffstat (limited to 'gitlab/objects.py')
-rw-r--r-- | gitlab/objects.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/gitlab/objects.py b/gitlab/objects.py index b88934e..a9ca565 100644 --- a/gitlab/objects.py +++ b/gitlab/objects.py @@ -2386,6 +2386,27 @@ class Project(GitlabObject): r = self.gitlab._raw_post(url, data=data, **kwargs) raise_error_from_response(r, GitlabCreateError, 201) + def trigger_build(self, ref, token, variables={}, **kwargs): + """Trigger a CI build. + + See https://gitlab.com/help/ci/triggers/README.md#trigger-a-build + + Args: + ref (str): Commit to build; can be a commit SHA, a branch name, ... + token (str): The trigger token + variables (dict): Variables passed to the build script + + Raises: + GitlabConnectionError: If the server cannot be reached. + GitlabCreateError: If the server fails to perform the request. + """ + url = "/projects/%s/trigger/builds" % self.id + form = {r'variables[%s]' % k: v for k, v in six.iteritems(variables)} + data = {'ref': ref, 'token': token} + data.update(form) + r = self.gitlab._raw_post(url, data=data, **kwargs) + raise_error_from_response(r, GitlabCreateError, 201) + class Runner(GitlabObject): _url = '/runners' |