diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2019-10-16 00:06:16 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2019-10-16 00:06:16 +0000 |
commit | c920712fab6abdc37de9444e6bbcd170c295b21a (patch) | |
tree | 0334235524cfd5d98080cf0b5a289eed6c1fae55 /doc | |
parent | 0ff031c7f4e2c7fe1b671b30fef569eb3fbea942 (diff) | |
download | gitlab-ce-c920712fab6abdc37de9444e6bbcd170c295b21a.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'doc')
-rw-r--r-- | doc/ci/multi_project_pipelines.md | 3 | ||||
-rw-r--r-- | doc/ci/yaml/README.md | 40 | ||||
-rw-r--r-- | doc/development/api_graphql_styleguide.md | 5 | ||||
-rw-r--r-- | doc/development/issuable-like-models.md | 4 | ||||
-rw-r--r-- | doc/development/rake_tasks.md | 23 |
5 files changed, 71 insertions, 4 deletions
diff --git a/doc/ci/multi_project_pipelines.md b/doc/ci/multi_project_pipelines.md index 762980a977c..d153e74ba37 100644 --- a/doc/ci/multi_project_pipelines.md +++ b/doc/ci/multi_project_pipelines.md @@ -119,7 +119,8 @@ Use: - The `project` keyword to specify the full path to a downstream project. - The `branch` keyword to specify the name of a branch in the project specified by `project`. - Variable expansion is supported. + [From GitLab 12.4](https://gitlab.com/gitlab-org/gitlab/issues/10126), variable expansion is + supported. GitLab will use a commit that is currently on the HEAD of the branch when creating a downstream pipeline. diff --git a/doc/ci/yaml/README.md b/doc/ci/yaml/README.md index 1a7c358eb91..114581e1e5d 100644 --- a/doc/ci/yaml/README.md +++ b/doc/ci/yaml/README.md @@ -1086,13 +1086,51 @@ Manual actions are considered to be write actions, so permissions for [protected branches](../../user/project/protected_branches.md) are used when a user wants to trigger an action. In other words, in order to trigger a manual action assigned to a branch that the pipeline is running for, the user needs to -have the ability to merge to this branch. +have the ability to merge to this branch. It is possible to use protected environments +to more strictly [protect manual deployments](#protecting-manual-jobs) from being +run by unauthorized users. NOTE: **Note:** Using `when:manual` and `trigger` together results in the error `jobs:#{job-name} when should be on_success, on_failure or always`, because `when:manual` prevents triggers being used. +##### Protecting manual jobs + +It's possible to use [protected environments](../environments/protected_environments.md) +to define a precise list of users authorized to run a manual job. By allowing only +users associated with a protected environment to trigger manual jobs, it is possible +to implement some special use cases, such as: + +- more precisely limiting who can deploy to an environment. +- enabling a pipeline to be blocked until an approved user "approves" it. + +To do this, you must add an environment to the job. For example: + +```yaml +deploy_prod: + stage: deploy + script: + - echo "Deploy to production server" + environment: + name: production + url: https://example.com + when: manual + only: + - master +``` + +Then, in the [protected environments settings](../environments/protected_environments.md#protecting-environments), +select the environment (`production` in the example above) and add the users, roles or groups +that are authorized to trigger the manual job to the **Allowed to Deploy** list. Only those in +this list will be able to trigger this manual job, as well as GitLab admins who are always able +to use protected environments. + +Additionally, if a manual job is defined as blocking by adding `allow_failure: false`, +the next stages of the pipeline will not run until the manual job is triggered. This +can be used as a way to have a defined list of users allowed to "approve" later pipeline +stages by triggering the blocking manual job. + #### `when:delayed` > [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/21767) in GitLab 11.4. diff --git a/doc/development/api_graphql_styleguide.md b/doc/development/api_graphql_styleguide.md index 793b1fbb2f5..cdd0e9b2a7b 100644 --- a/doc/development/api_graphql_styleguide.md +++ b/doc/development/api_graphql_styleguide.md @@ -539,3 +539,8 @@ it 'returns a successful response' do expect(graphql_mutation_response(:merge_request_set_wip)['errors']).to be_empty end ``` + +## Documentation + +For information on generating GraphQL documentation, see +[Rake tasks related to GraphQL](rake_tasks.md#update-graphql-documentation). diff --git a/doc/development/issuable-like-models.md b/doc/development/issuable-like-models.md index 27cac825b7f..ce19fd77496 100644 --- a/doc/development/issuable-like-models.md +++ b/doc/development/issuable-like-models.md @@ -11,8 +11,8 @@ There are max length constraints for the most important text fields for `Issuabl - `title`: 255 chars - `title_html`: 800 chars -- `description`: 16000 chars -- `description_html`: 48000 chars +- `description`: 1 megabyte +- `description_html`: 5 megabytes [Issue]: https://docs.gitlab.com/ee/user/project/issues [Merge Requests]: https://docs.gitlab.com/ee/user/project/merge_requests diff --git a/doc/development/rake_tasks.md b/doc/development/rake_tasks.md index 20604cce9c6..ea4acf7083a 100644 --- a/doc/development/rake_tasks.md +++ b/doc/development/rake_tasks.md @@ -220,3 +220,26 @@ bundle exec rake db:obsolete_ignored_columns ``` Feel free to remove their definitions from their `ignored_columns` definitions. + +## Update GraphQL Documentation + +To generate GraphQL documentation based on the GitLab schema, run: + +```shell +bundle exec rake gitlab:graphql:compile_docs +``` + +In its current state, the rake task: + +- Generates output for GraphQL objects. +- Places the output at `docs/api/graphql/reference/index.md`. + +This uses some features from `graphql-docs` gem like its schema parser and helper methods. +The docs generator code comes from our side giving us more flexibility, like using Haml templates and generating Markdown files. + +To edit the template used, please take a look at `lib/gitlab/graphql/docs/templates/default.md.haml`. +The actual renderer is at `Gitlab::Graphql::Docs::Renderer`. + +`@parsed_schema` is an instance variable that the `graphql-docs` gem expects to have available. +`Gitlab::Graphql::Docs::Helper` defines the `object` method we currently use. This is also where you should implement any +new methods for new types you'd like to display. |