Skip to content

Commit 14fcc91

Browse files
committed
docs(api): add documentation for project feature flags
This adds the documentation for Project Feature Flags and Feature Flag User Lists. It includes: - New documentation pages for Feature Flags and User Lists. - Updates to the Project documentation to reference the new managers.
1 parent 3792917 commit 14fcc91

File tree

4 files changed

+154
-0
lines changed

4 files changed

+154
-0
lines changed

docs/api-objects.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ API examples
4949
gl_objects/pipelines_and_jobs
5050
gl_objects/projects
5151
gl_objects/project_access_tokens
52+
gl_objects/project_feature_flags
53+
gl_objects/project_feature_flag_user_lists
5254
gl_objects/protected_branches
5355
gl_objects/protected_container_repositories
5456
gl_objects/protected_environments
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
#######################
2+
Project Feature Flag User Lists
3+
#######################
4+
5+
Reference
6+
---------
7+
8+
* v4 API:
9+
10+
+ :class:`gitlab.v4.objects.ProjectFeatureFlagUserList`
11+
+ :class:`gitlab.v4.objects.ProjectFeatureFlagUserListManager`
12+
+ :attr:`gitlab.v4.objects.Project.feature_flags_user_lists`
13+
14+
* GitLab API: https://docs.gitlab.com/ee/api/feature_flag_user_lists.html
15+
16+
Examples
17+
--------
18+
19+
List user lists::
20+
21+
user_lists = project.feature_flags_user_lists.list()
22+
23+
Get a user list::
24+
25+
user_list = project.feature_flags_user_lists.get(list_iid)
26+
27+
Create a user list::
28+
29+
user_list = project.feature_flags_user_lists.create({
30+
'name': 'my_user_list',
31+
'user_xids': 'user1,user2,user3'
32+
})
33+
34+
Update a user list::
35+
36+
user_list.name = 'updated_list_name'
37+
user_list.user_xids = 'user1,user2'
38+
user_list.save()
39+
40+
Delete a user list::
41+
42+
user_list.delete()
43+
44+
Search for a user list::
45+
46+
user_lists = project.feature_flags_user_lists.list(search='my_list')
47+
48+
See also
49+
--------
50+
51+
* :doc:`project_feature_flags`
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
#####################
2+
Project Feature Flags
3+
#####################
4+
5+
Reference
6+
---------
7+
8+
* v4 API:
9+
10+
+ :class:`gitlab.v4.objects.ProjectFeatureFlag`
11+
+ :class:`gitlab.v4.objects.ProjectFeatureFlagManager`
12+
+ :attr:`gitlab.v4.objects.Project.feature_flags`
13+
14+
* GitLab API: https://docs.gitlab.com/ee/api/feature_flags.html
15+
16+
Examples
17+
--------
18+
19+
List feature flags::
20+
21+
flags = project.feature_flags.list()
22+
23+
Get a feature flag::
24+
25+
flag = project.feature_flags.get('my_feature_flag')
26+
27+
Create a feature flag::
28+
29+
flag = project.feature_flags.create({'name': 'my_feature_flag', 'version': 'new_version_flag'})
30+
31+
Create a feature flag with strategies::
32+
33+
flag = project.feature_flags.create({
34+
'name': 'my_complex_flag',
35+
'version': 'new_version_flag',
36+
'strategies': [{
37+
'name': 'userWithId',
38+
'parameters': {'userIds': 'user1,user2'}
39+
}]
40+
})
41+
42+
Update a feature flag::
43+
44+
flag.description = 'Updated description'
45+
flag.save()
46+
47+
Rename a feature flag::
48+
49+
# You can rename a flag by changing its name attribute and calling save()
50+
flag.name = 'new_flag_name'
51+
flag.save()
52+
53+
# Alternatively, you can use the manager's update method
54+
project.feature_flags.update('old_flag_name', {'name': 'new_flag_name'})
55+
56+
Delete a feature flag::
57+
58+
flag.delete()
59+
60+
See also
61+
--------
62+
63+
* :doc:`project_feature_flag_user_lists`

docs/gl_objects/projects.rst

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -409,6 +409,44 @@ Search projects by custom attribute::
409409
project.customattributes.set('type', 'internal')
410410
gl.projects.list(custom_attributes={'type': 'internal'}, get_all=True)
411411

412+
Project feature flags
413+
=====================
414+
415+
Reference
416+
---------
417+
418+
* v4 API:
419+
420+
+ :class:`gitlab.v4.objects.ProjectFeatureFlag`
421+
+ :class:`gitlab.v4.objects.ProjectFeatureFlagManager`
422+
+ :attr:`gitlab.v4.objects.Project.feature_flags`
423+
424+
* GitLab API: https://docs.gitlab.com/ee/api/feature_flags.html
425+
426+
Examples
427+
--------
428+
429+
See :doc:`project_feature_flags`.
430+
431+
Project feature flag user lists
432+
===============================
433+
434+
Reference
435+
---------
436+
437+
* v4 API:
438+
439+
+ :class:`gitlab.v4.objects.ProjectFeatureFlagUserList`
440+
+ :class:`gitlab.v4.objects.ProjectFeatureFlagUserListManager`
441+
+ :attr:`gitlab.v4.objects.Project.feature_flags_user_lists`
442+
443+
* GitLab API: https://docs.gitlab.com/ee/api/feature_flag_user_lists.html
444+
445+
Examples
446+
--------
447+
448+
See :doc:`project_feature_flag_user_lists`.
449+
412450
Project files
413451
=============
414452

0 commit comments

Comments
 (0)