summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/api-objects.rst2
-rw-r--r--docs/gl_objects/licenses.py8
-rw-r--r--docs/gl_objects/licenses.rst21
-rw-r--r--docs/gl_objects/templates.py26
-rw-r--r--docs/gl_objects/templates.rst72
-rw-r--r--gitlab/__init__.py2
-rw-r--r--gitlab/objects.py24
7 files changed, 125 insertions, 30 deletions
diff --git a/docs/api-objects.rst b/docs/api-objects.rst
index 5270246..129667c 100644
--- a/docs/api-objects.rst
+++ b/docs/api-objects.rst
@@ -16,7 +16,6 @@ API objects manipulation
gl_objects/groups
gl_objects/issues
gl_objects/labels
- gl_objects/licenses
gl_objects/notifications
gl_objects/mrs
gl_objects/namespaces
@@ -25,6 +24,7 @@ API objects manipulation
gl_objects/runners
gl_objects/settings
gl_objects/system_hooks
+ gl_objects/templates
gl_objects/todos
gl_objects/users
gl_objects/sidekiq
diff --git a/docs/gl_objects/licenses.py b/docs/gl_objects/licenses.py
deleted file mode 100644
index 425a9a4..0000000
--- a/docs/gl_objects/licenses.py
+++ /dev/null
@@ -1,8 +0,0 @@
-# list
-licenses = gl.licenses.list()
-# end list
-
-# get
-license = gl.licenses.get('apache-2.0', project='foobar', fullname='John Doe')
-print(license.content)
-# end get
diff --git a/docs/gl_objects/licenses.rst b/docs/gl_objects/licenses.rst
deleted file mode 100644
index 2b82379..0000000
--- a/docs/gl_objects/licenses.rst
+++ /dev/null
@@ -1,21 +0,0 @@
-########
-Licenses
-########
-
-Use :class:`~gitlab.objects.License` objects to manipulate licenses. The
-:attr:`gitlab.Gitlab.licenses` manager object provides helper functions.
-
-Examples
---------
-
-List known licenses:
-
-.. literalinclude:: licenses.py
- :start-after: # list
- :end-before: # end list
-
-Generate a license content for a project:
-
-.. literalinclude:: licenses.py
- :start-after: # get
- :end-before: # end get
diff --git a/docs/gl_objects/templates.py b/docs/gl_objects/templates.py
new file mode 100644
index 0000000..1bc97bb
--- /dev/null
+++ b/docs/gl_objects/templates.py
@@ -0,0 +1,26 @@
+# license list
+licenses = gl.licenses.list()
+# end license list
+
+# license get
+license = gl.licenses.get('apache-2.0', project='foobar', fullname='John Doe')
+print(license.content)
+# end license get
+
+# gitignore list
+gitignores = gl.gitignores.list()
+# end gitignore list
+
+# gitignore get
+gitignore = gl.gitignores.get('Python')
+print(gitignore.content)
+# end gitignore get
+
+# gitlabciyml list
+gitlabciymls = gl.gitlabciymls.list()
+# end gitlabciyml list
+
+# gitlabciyml get
+gitlabciyml = gl.gitlabciymls.get('Pelican')
+print(gitlabciyml.content)
+# end gitlabciyml get
diff --git a/docs/gl_objects/templates.rst b/docs/gl_objects/templates.rst
new file mode 100644
index 0000000..1ce429d
--- /dev/null
+++ b/docs/gl_objects/templates.rst
@@ -0,0 +1,72 @@
+#########
+Templates
+#########
+
+You can request templates for different type of files:
+
+* License files
+* .gitignore files
+* GitLab CI configuration files
+
+License templates
+=================
+
+* Object class: :class:`~gitlab.objects.License`
+* Manager object: :attr:`gitlab.Gitlab.licenses`
+
+Examples
+--------
+
+List known license templates:
+
+.. literalinclude:: templates.py
+ :start-after: # license list
+ :end-before: # end license list
+
+Generate a license content for a project:
+
+.. literalinclude:: templates.py
+ :start-after: # license get
+ :end-before: # end license get
+
+.gitignore templates
+====================
+
+* Object class: :class:`~gitlab.objects.Gitignore`
+* Manager object: :attr:`gitlab.Gitlab.gitognores`
+
+Examples
+--------
+
+List known gitignore templates:
+
+.. literalinclude:: templates.py
+ :start-after: # gitignore list
+ :end-before: # end gitignore list
+
+Get a gitignore template:
+
+.. literalinclude:: templates.py
+ :start-after: # gitignore get
+ :end-before: # end gitignore get
+
+GitLab CI templates
+===================
+
+* Object class: :class:`~gitlab.objects.Gitlabciyml`
+* Manager object: :attr:`gitlab.Gitlab.gitlabciymls`
+
+Examples
+--------
+
+List known GitLab CI templates:
+
+.. literalinclude:: templates.py
+ :start-after: # gitlabciyml list
+ :end-before: # end gitlabciyml list
+
+Get a GitLab CI template:
+
+.. literalinclude:: templates.py
+ :start-after: # gitlabciyml get
+ :end-before: # end gitlabciyml get
diff --git a/gitlab/__init__.py b/gitlab/__init__.py
index f91fdf2..3a12629 100644
--- a/gitlab/__init__.py
+++ b/gitlab/__init__.py
@@ -91,6 +91,8 @@ class Gitlab(object):
self.broadcastmessages = BroadcastMessageManager(self)
self.keys = KeyManager(self)
+ self.gitlabciymls = GitlabciymlManager(self)
+ self.gitignores = GitignoreManager(self)
self.groups = GroupManager(self)
self.hooks = HookManager(self)
self.issues = IssueManager(self)
diff --git a/gitlab/objects.py b/gitlab/objects.py
index c47ed47..5166b08 100644
--- a/gitlab/objects.py
+++ b/gitlab/objects.py
@@ -811,6 +811,30 @@ class NotificationSettingsManager(BaseManager):
obj_cls = NotificationSettings
+class Gitignore(GitlabObject):
+ _url = '/templates/gitignores'
+ canDelete = False
+ canUpdate = False
+ canCreate = False
+ idAttr = 'name'
+
+
+class GitignoreManager(BaseManager):
+ obj_cls = Gitignore
+
+
+class Gitlabciyml(GitlabObject):
+ _url = '/templates/gitlab_ci_ymls'
+ canDelete = False
+ canUpdate = False
+ canCreate = False
+ idAttr = 'name'
+
+
+class GitlabciymlManager(BaseManager):
+ obj_cls = Gitlabciyml
+
+
class GroupIssue(GitlabObject):
_url = '/groups/%(group_id)s/issues'
canGet = 'from_list'