summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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