Skip to content

Commit 7f192b4

Browse files
committed
feat: add capability to control GitLab features per project or group
1 parent 8287a0d commit 7f192b4

File tree

2 files changed

+21
-2
lines changed

2 files changed

+21
-2
lines changed

docs/gl_objects/features.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ Create or set a feature::
2424

2525
feature = gl.features.set(feature_name, True)
2626
feature = gl.features.set(feature_name, 30)
27+
feature = gl.features.set(feature_name, True, user=filipowm)
28+
feature = gl.features.set(feature_name, 40, group=mygroup)
2729

2830
Delete a feature::
2931

gitlab/v4/objects.py

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -724,14 +724,25 @@ class FeatureManager(ListMixin, DeleteMixin, RESTManager):
724724
_obj_cls = Feature
725725

726726
@exc.on_http_error(exc.GitlabSetError)
727-
def set(self, name, value, feature_group=None, user=None, **kwargs):
727+
def set(
728+
self,
729+
name,
730+
value,
731+
feature_group=None,
732+
user=None,
733+
group=None,
734+
project=None,
735+
**kwargs
736+
):
728737
"""Create or update the object.
729738
730739
Args:
731740
name (str): The value to set for the object
732741
value (bool/int): The value to set for the object
733742
feature_group (str): A feature group name
734743
user (str): A GitLab username
744+
group (str): A GitLab group
745+
project (str): A GitLab project in form group/project
735746
**kwargs: Extra options to send to the server (e.g. sudo)
736747
737748
Raises:
@@ -742,7 +753,13 @@ def set(self, name, value, feature_group=None, user=None, **kwargs):
742753
obj: The created/updated attribute
743754
"""
744755
path = "%s/%s" % (self.path, name.replace("/", "%2F"))
745-
data = {"value": value, "feature_group": feature_group, "user": user}
756+
data = {
757+
"value": value,
758+
"feature_group": feature_group,
759+
"user": user,
760+
"group": group,
761+
"project": project,
762+
}
746763
server_data = self.gitlab.http_post(path, post_data=data, **kwargs)
747764
return self._obj_cls(self, server_data)
748765

0 commit comments

Comments
 (0)