diff options
author | Gauvain Pocentek <gauvain@pocentek.net> | 2016-10-23 21:05:40 +0200 |
---|---|---|
committer | Gauvain Pocentek <gauvain@pocentek.net> | 2016-10-23 21:05:40 +0200 |
commit | 6d3450c4fe4a2e592b9000be309819278f519e11 (patch) | |
tree | 29bf69a2f3a417df5855ad576382f63d916ea5bf | |
parent | c185fe27eabb602b8e75528f168bd7724b0fa0e3 (diff) | |
download | gitlab-6d3450c4fe4a2e592b9000be309819278f519e11.tar.gz |
Add support for broadcast messages API
-rw-r--r-- | docs/api-objects.rst | 1 | ||||
-rw-r--r-- | docs/gl_objects/messages.py | 23 | ||||
-rw-r--r-- | docs/gl_objects/messages.rst | 46 | ||||
-rw-r--r-- | gitlab/__init__.py | 3 | ||||
-rw-r--r-- | gitlab/objects.py | 12 | ||||
-rw-r--r-- | tools/python_test.py | 11 |
6 files changed, 96 insertions, 0 deletions
diff --git a/docs/api-objects.rst b/docs/api-objects.rst index eabefc8..0328414 100644 --- a/docs/api-objects.rst +++ b/docs/api-objects.rst @@ -16,6 +16,7 @@ API objects manipulation gl_objects/issues gl_objects/labels gl_objects/licenses + gl_objects/messages gl_objects/mrs gl_objects/namespaces gl_objects/milestones diff --git a/docs/gl_objects/messages.py b/docs/gl_objects/messages.py new file mode 100644 index 0000000..74714e5 --- /dev/null +++ b/docs/gl_objects/messages.py @@ -0,0 +1,23 @@ +# list +msgs = gl.broadcastmessages.list() +# end list + +# get +msg = gl.broadcastmessages.get(msg_id) +# end get + +# create +msg = gl.broadcastmessages.create({'message': 'Important information'}) +# end create + +# update +msg.font = '#444444' +msg.color = '#999999' +msg.save() +# end update + +# delete +gl.broadcastmessages.delete(msg_id) +# or +msg.delete() +# end delete diff --git a/docs/gl_objects/messages.rst b/docs/gl_objects/messages.rst new file mode 100644 index 0000000..9f183ba --- /dev/null +++ b/docs/gl_objects/messages.rst @@ -0,0 +1,46 @@ +################## +Broadcast messages +################## + +You can use broadcast messages to display information on all pages of the +gitlab web UI. You must have administration permissions to manipulate broadcast +messages. + +* Object class: :class:`gitlab.objects.BroadcastMessage` +* Manager object: :attr:`gitlab.Gitlab.broadcastmessages` + +Examples +-------- + +List the messages: + +.. literalinclude:: messages.py + :start-after: # list + :end-before: # end list + +Get a single message: + +.. literalinclude:: messages.py + :start-after: # get + :end-before: # end get + +Create a message: + +.. literalinclude:: messages.py + :start-after: # create + :end-before: # end create + +The date format for ``starts_at`` and ``ends_at`` parameters is +``YYYY-MM-ddThh:mm:ssZ``. + +Update a message: + +.. literalinclude:: messages.py + :start-after: # update + :end-before: # end update + +Delete a message: + +.. literalinclude:: messages.py + :start-after: # delete + :end-before: # end delete diff --git a/gitlab/__init__.py b/gitlab/__init__.py index c74a26c..a022cb4 100644 --- a/gitlab/__init__.py +++ b/gitlab/__init__.py @@ -69,6 +69,8 @@ class Gitlab(object): user_emails (UserEmailManager): Manager for GitLab users' emails. user_keys (UserKeyManager): Manager for GitLab users' SSH keys. users (UserManager): Manager for GitLab users + broadcastmessages (BroadcastMessageManager): Manager for broadcast + messages keys (DeployKeyManager): Manager for deploy keys group_accessrequests (GroupAccessRequestManager): Manager for GitLab groups access requests @@ -168,6 +170,7 @@ class Gitlab(object): self.user_emails = UserEmailManager(self) self.user_keys = UserKeyManager(self) self.users = UserManager(self) + self.broadcastmessages = BroadcastMessageManager(self) self.keys = KeyManager(self) self.group_accessrequests = GroupAccessRequestManager(self) self.group_issues = GroupIssueManager(self) diff --git a/gitlab/objects.py b/gitlab/objects.py index ad57d2f..0897c68 100644 --- a/gitlab/objects.py +++ b/gitlab/objects.py @@ -728,6 +728,18 @@ class ApplicationSettingsManager(BaseManager): obj_cls = ApplicationSettings +class BroadcastMessage(GitlabObject): + _url = '/broadcast_messages' + requiredCreateAttrs = ['message'] + optionalCreateAttrs = ['starts_at', 'ends_at', 'color', 'font'] + requiredUpdateAttrs = [] + optionalUpdateAttrs = ['message', 'starts_at', 'ends_at', 'color', 'font'] + + +class BroadcastMessageManager(BaseManager): + obj_cls = BroadcastMessage + + class Key(GitlabObject): _url = '/deploy_keys' canGet = 'from_list' diff --git a/tools/python_test.py b/tools/python_test.py index 888d553..27ec4bd 100644 --- a/tools/python_test.py +++ b/tools/python_test.py @@ -271,3 +271,14 @@ ns = gl.namespaces.list() assert(len(ns) != 0) ns = gl.namespaces.list(search='root')[0] assert(ns.kind == 'user') + +# broadcast messages +msg = gl.broadcastmessages.create({'message': 'this is the message'}) +msg.color = '#444444' +msg.save() +msg = gl.broadcastmessages.list()[0] +assert(msg.color == '#444444') +msg = gl.broadcastmessages.get(1) +assert(msg.color == '#444444') +msg.delete() +assert(len(gl.broadcastmessages.list()) == 0) |