Enable Gitlab-Pages for subgroups

GitLab Pages supports projects hosted under a subgroup, but not subgroup
websites. That means that only the highest-level group supports

i.e.:
You created a group for your engineering department called
`engineering`, a subgroup for all your documentation websites called
`docs`,and a project within this subgroup is called `workflows`.
Your project URL is `https://gitlab.com/engineering/docs/workflows/`.
Once you enable GitLab Pages for this project, the site will live under
`https://engineering.gitlab.io/docs/workflows`.
This commit is contained in:
Alessio Caiazza 2018-12-03 12:05:38 +01:00
parent 94d05e3c5c
commit 5e5419db3c
8 changed files with 25 additions and 12 deletions

View file

@ -1 +1 @@
1.3.1
1.4.0

View file

@ -1531,7 +1531,7 @@ class Project < ActiveRecord::Base
end
def pages_available?
Gitlab.config.pages.enabled && !namespace.subgroup?
Gitlab.config.pages.enabled
end
def remove_private_deploy_keys

View file

@ -0,0 +1,5 @@
---
title: Pages for subgroups
merge_request: 23505
author:
type: added

View file

@ -164,9 +164,11 @@ and you can choose the group of people to be notified.
Here's a list of what you can't do with subgroups:
- [GitLab Pages](../../project/pages/index.md) are not currently working for
projects hosted under a subgroup. That means that only projects hosted under
the first parent group will work.
- [GitLab Pages](../../project/pages/index.md) supports projects hosted under
a subgroup, but not subgroup websites.
That means that only the highest-level group supports
[group websites](../../project/pages/introduction.html#user-or-group-pages),
although you can have project websites under a subgroup.
- It is not possible to share a project with a group that's an ancestor of
the group the project is in. That means you can only share as you walk down
the hierarchy. For example, `group/subgroup01/project` **cannot** be shared

View file

@ -85,6 +85,12 @@ and a project within this group is called `blog`. Your project
URL is `https://gitlab.com/websites/blog/`. Once you enable
GitLab Pages for this project, the site will live under
`https://websites.gitlab.io/blog/`.
- You created a group for your engineering department called `engineering`,
a subgroup for all your documentation websites called `docs`,
and a project within this subgroup is called `workflows`. Your project
URL is `https://gitlab.com/engineering/docs/workflows/`. Once you enable
GitLab Pages for this project, the site will live under
`https://engineering.gitlab.io/docs/workflows`.
#### User and Group Websites
@ -98,8 +104,7 @@ Once you enable GitLab Pages for your project,
your website will be published under `https://websites.gitlab.io`.
>**Note:**
GitLab Pages [does **not** support subgroups](../../group/subgroups/index.md#limitations).
You can only create the highest level group website.
Support for subgroup project's websites was introduced in GitLab 11.8.
**General example:**

View file

@ -38,6 +38,7 @@ be served on.
| Group pages | `groupname.example.io` | `http(s)://groupname.example.io` |
| Project pages owned by a user | `projectname` | `http(s)://username.example.io/projectname` |
| Project pages owned by a group | `projectname` | `http(s)://groupname.example.io/projectname`|
| Project pages owned by a subgroup | `subgroup/projectname` | `http(s)://groupname.example.io/subgroup/projectname`|
> **Warning:**
> There are some known [limitations](#limitations) regarding namespaces served
@ -494,8 +495,8 @@ don't redirect HTTP to HTTPS.
[rfc]: https://tools.ietf.org/html/rfc2818#section-3.1 "HTTP Over TLS RFC"
GitLab Pages [does **not** support subgroups](../../group/subgroups/index.md#limitations).
You can only create the highest level group website.
GitLab Pages [does **not** support group websites for subgroups](../../group/subgroups/index.md#limitations).
You can only create the highest-level group website.
## Redirects in GitLab Pages

View file

@ -28,10 +28,10 @@ describe Projects::PagesController do
let(:group) { create(:group, :nested) }
let(:project) { create(:project, namespace: group) }
it 'returns a 404 status code' do
it 'returns a 200 status code' do
get :show, params: request_params
expect(response).to have_gitlab_http_status(404)
expect(response).to have_gitlab_http_status(200)
end
end
end

View file

@ -3087,7 +3087,7 @@ describe Project do
context 'when the project is in a subgroup' do
let(:group) { create(:group, :nested) }
it { is_expected.to be(false) }
it { is_expected.to be(true) }
end
end