summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Davies <iamed2@gmail.com>2021-07-27 13:51:04 -0500
committerJohn Villalovos <john@sodarock.com>2021-07-27 13:46:16 -0700
commit98cd03b7a3085356b5f0f4fcdb7dc729b682f481 (patch)
treee90e1fd4e85babc6f5ac3fa1eb87412e5d83d553
parenta9924f48800f57fa8036e3ebdf89d1e04b9bf1a1 (diff)
downloadgitlab-98cd03b7a3085356b5f0f4fcdb7dc729b682f481.tar.gz
fix(api): do not require Release name for creation
Stop requiring a `name` attribute for creating a Release, since a release name has not been required since GitLab 12.5.
-rw-r--r--gitlab/v4/objects/releases.py2
-rw-r--r--tests/functional/api/test_releases.py18
2 files changed, 19 insertions, 1 deletions
diff --git a/gitlab/v4/objects/releases.py b/gitlab/v4/objects/releases.py
index 6216e45..e27052d 100644
--- a/gitlab/v4/objects/releases.py
+++ b/gitlab/v4/objects/releases.py
@@ -19,7 +19,7 @@ class ProjectReleaseManager(CRUDMixin, RESTManager):
_obj_cls = ProjectRelease
_from_parent_attrs = {"project_id": "id"}
_create_attrs = RequiredOptional(
- required=("name", "tag_name", "description"), optional=("ref", "assets")
+ required=("tag_name", "description"), optional=("name", "ref", "assets")
)
_update_attrs = RequiredOptional(
optional=("name", "description", "milestones", "released_at")
diff --git a/tests/functional/api/test_releases.py b/tests/functional/api/test_releases.py
index 81ae7de..f409c23 100644
--- a/tests/functional/api/test_releases.py
+++ b/tests/functional/api/test_releases.py
@@ -23,6 +23,24 @@ def test_create_project_release(project, project_file):
assert release.description == release_description
+def test_create_project_release_no_name(project, project_file):
+ unnamed_release_tag_name = "v2.3.4"
+
+ project.refresh() # Gets us the current default branch
+ release = project.releases.create(
+ {
+ "tag_name": unnamed_release_tag_name,
+ "description": release_description,
+ "ref": project.default_branch,
+ }
+ )
+
+ assert len(project.releases.list()) >= 1
+ assert project.releases.get(unnamed_release_tag_name)
+ assert release.tag_name == unnamed_release_tag_name
+ assert release.description == release_description
+
+
def test_update_save_project_release(project, release):
updated_description = f"{release.description} updated"
release.description = updated_description