diff --git a/doc/api/namespaces.md b/doc/api/namespaces.md index 794da9d8f96a9a8797a83302d9fab4880bc3a0bc..b4b8a26e1baebd4d9cfb1051b81d822d970d4de0 100644 --- a/doc/api/namespaces.md +++ b/doc/api/namespaces.md @@ -53,6 +53,7 @@ Example response: "web_url": "https://gitlab.example.com/user1", "billable_members_count": 1, "plan": "default", + "end_date": null, "trial_ends_on": null, "trial": false, "root_repository_size": 100, @@ -70,6 +71,7 @@ Example response: "members_count_with_descendants": 2, "billable_members_count": 2, "plan": "default", + "end_date": null, "trial_ends_on": null, "trial": false, "root_repository_size": 100, @@ -87,6 +89,7 @@ Example response: "members_count_with_descendants": 5, "billable_members_count": 5, "plan": "default", + "end_date": null, "trial_ends_on": null, "trial": false, "root_repository_size": 100, @@ -168,6 +171,7 @@ Example response: "max_seats_used": 0, "seats_in_use": 0, "plan": "default", + "end_date": null, "trial_ends_on": null, "trial": false, "root_repository_size": 100, @@ -198,6 +202,7 @@ Example response: "max_seats_used": 0, "seats_in_use": 0, "plan": "default", + "end_date": null, "trial_ends_on": null, "trial": false, "root_repository_size": 100 diff --git a/ee/lib/ee/api/entities/namespace.rb b/ee/lib/ee/api/entities/namespace.rb index 962ac780d5a81d61ee16898a2216b0097ea8677e..eb72b366a389fb7920266e5a02a5aa36388a347c 100644 --- a/ee/lib/ee/api/entities/namespace.rb +++ b/ee/lib/ee/api/entities/namespace.rb @@ -27,6 +27,9 @@ module Namespace expose :max_seats_used_changed_at, documentation: { type: 'date', example: '2022-06-18' }, if: has_gitlab_subscription do |namespace, _| namespace.gitlab_subscription.max_seats_used_changed_at end + expose :end_date, documentation: { type: 'date', example: '2022-06-18' }, if: has_gitlab_subscription do |namespace, _| + namespace.gitlab_subscription.end_date + end expose :plan, documentation: { type: 'string', example: 'default' }, if: can_admin_namespace do |namespace, _| namespace.actual_plan_name end diff --git a/ee/spec/requests/api/namespaces_spec.rb b/ee/spec/requests/api/namespaces_spec.rb index 59447df91758326f609899f3b33b157a51df63a5..b72f3bc586ff5940ad3ab402d714541245043ddf 100644 --- a/ee/spec/requests/api/namespaces_spec.rb +++ b/ee/spec/requests/api/namespaces_spec.rb @@ -127,7 +127,8 @@ before do group1.add_guest(user) - create(:gitlab_subscription, namespace: group1, max_seats_used: 1, max_seats_used_changed_at: 1.week.ago, seats_in_use: 1) + create(:gitlab_subscription, namespace: group1, max_seats_used: 1, + max_seats_used_changed_at: 1.week.ago, seats_in_use: 1, end_date: Date.current + 2.days) end # We seem to have some N+1 queries. @@ -167,6 +168,12 @@ expect(json_response.first['seats_in_use']).to eq(1) end + + it 'includes end_date' do + get api("/namespaces", user) + + expect(Date.parse(json_response.first['end_date'])).to eq(Date.current + 2.days) + end end context 'without gitlab subscription' do @@ -193,6 +200,14 @@ expect(resp.keys).not_to include('seats_in_use') end end + + it 'does not include end_date' do + get api("/namespaces", user) + + json_response.each do |resp| + expect(resp.keys).not_to include('end_date') + end + end end end