diff options
author | John L. Villalovos <john@sodarock.com> | 2022-01-22 10:47:43 -0800 |
---|---|---|
committer | John L. Villalovos <john@sodarock.com> | 2022-01-22 10:47:43 -0800 |
commit | 1905548ec251c88bb6a2b6677940dac9c1ab7167 (patch) | |
tree | 749471d43b6a8297727c8209330c95a7d3ae0d6a /gitlab/v4/objects/projects.py | |
parent | 8dfed0c362af2c5e936011fd0b488b8b05e8a8a0 (diff) | |
download | gitlab-jlvillal/arrays.tar.gz |
fix: use the [] after key names for array variablesjlvillal/arrays
1. Create a new CommaSeparatedListAttribute class. This is to indicate
types which are sent to the GitLab server as
comma-separated-strings (CSV) but we have been allowing users to
use a list-of-strings. These values are NOT array values, so
adding [] to the key name breaks them.
2. Rename ListAttribute to ArrayAttribute.
3. If a value is of type ArrayAttribute then append '[]' to the name
of the value.
4. Move processing of most GitlabAttributes into the
client.py:http_request() method. Now we convert our params into a
list of tuples so that we can have multiple identical keys but with
different values.
Fixes: #1698
Diffstat (limited to 'gitlab/v4/objects/projects.py')
-rw-r--r-- | gitlab/v4/objects/projects.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gitlab/v4/objects/projects.py b/gitlab/v4/objects/projects.py index f9988db..23f3d3c 100644 --- a/gitlab/v4/objects/projects.py +++ b/gitlab/v4/objects/projects.py @@ -125,7 +125,7 @@ class ProjectGroupManager(ListMixin, RESTManager): "shared_min_access_level", "shared_visible_only", ) - _types = {"skip_groups": types.ListAttribute} + _types = {"skip_groups": types.ArrayAttribute} class Project(RefreshMixin, SaveMixin, ObjectDeleteMixin, RepositoryMixin, RESTObject): @@ -807,7 +807,10 @@ class ProjectManager(CRUDMixin, RESTManager): "with_merge_requests_enabled", "with_programming_language", ) - _types = {"avatar": types.ImageAttribute, "topic": types.ListAttribute} + _types = { + "avatar": types.ImageAttribute, + "topic": types.CommaSeparatedListAttribute, + } def get(self, id: Union[str, int], lazy: bool = False, **kwargs: Any) -> Project: return cast(Project, super().get(id=id, lazy=lazy, **kwargs)) |