@@ -178,6 +178,7 @@ class GitlabObject(object):
178
178
# plural
179
179
_urlPlural = None
180
180
_id_in_delete_url = True
181
+ _id_in_update_url = True
181
182
_returnClass = None
182
183
_constructorTypes = None
183
184
@@ -936,6 +937,7 @@ class ProjectMilestoneManager(BaseManager):
936
937
class ProjectLabel (GitlabObject ):
937
938
_url = '/projects/%(project_id)s/labels'
938
939
_id_in_delete_url = False
940
+ _id_in_update_url = False
939
941
canGet = 'from_list'
940
942
requiredUrlAttrs = ['project_id' ]
941
943
idAttr = 'name'
@@ -1031,6 +1033,17 @@ class ProjectTriggerManager(BaseManager):
1031
1033
obj_cls = ProjectTrigger
1032
1034
1033
1035
1036
+ class ProjectVariable (GitlabObject ):
1037
+ _url = '/projects/%(project_id)s/variables'
1038
+ idAttr = 'key'
1039
+ requiredUrlAttrs = ['project_id' ]
1040
+ requiredCreateAttrs = ['key' , 'value' ]
1041
+
1042
+
1043
+ class ProjectVariableManager (BaseManager ):
1044
+ obj_cls = ProjectVariable
1045
+
1046
+
1034
1047
class Project (GitlabObject ):
1035
1048
_url = '/projects'
1036
1049
_constructorTypes = {'owner' : 'User' , 'namespace' : 'Group' }
@@ -1059,6 +1072,7 @@ class Project(GitlabObject):
1059
1072
('snippets' , ProjectSnippetManager , [('project_id' , 'id' )]),
1060
1073
('tags' , ProjectTagManager , [('project_id' , 'id' )]),
1061
1074
('triggers' , ProjectTriggerManager , [('project_id' , 'id' )]),
1075
+ ('variables' , ProjectVariableManager , [('project_id' , 'id' )]),
1062
1076
]
1063
1077
1064
1078
def Branch (self , id = None , ** kwargs ):
0 commit comments