summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-03-11 09:09:48 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-03-11 09:09:48 +0000
commit3f3e4bcc50a3280d03299c2c263eafd9c8e3bd7b (patch)
treeeccfc6b87b404f2871cc795bf2f7223a7e391939 /doc
parent65a1175e466105fca1f40cb5a995fdb100ff334e (diff)
downloadgitlab-ce-3f3e4bcc50a3280d03299c2c263eafd9c8e3bd7b.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'doc')
-rw-r--r--doc/api/graphql/reference/gitlab_schema.graphql58
-rw-r--r--doc/api/graphql/reference/gitlab_schema.json187
-rw-r--r--doc/api/graphql/reference/index.md11
-rw-r--r--doc/ci/jenkins/index.md28
4 files changed, 282 insertions, 2 deletions
diff --git a/doc/api/graphql/reference/gitlab_schema.graphql b/doc/api/graphql/reference/gitlab_schema.graphql
index fc26af40c69..f47f07953d7 100644
--- a/doc/api/graphql/reference/gitlab_schema.graphql
+++ b/doc/api/graphql/reference/gitlab_schema.graphql
@@ -2220,6 +2220,61 @@ type Epic implements Noteable {
}
"""
+Autogenerated input type of EpicAddIssue
+"""
+input EpicAddIssueInput {
+ """
+ A unique identifier for the client performing the mutation.
+ """
+ clientMutationId: String
+
+ """
+ The group the epic to mutate belongs to
+ """
+ groupPath: ID!
+
+ """
+ The iid of the epic to mutate
+ """
+ iid: ID!
+
+ """
+ The iid of the issue to be added
+ """
+ issueIid: String!
+
+ """
+ The project the issue belongs to
+ """
+ projectPath: ID!
+}
+
+"""
+Autogenerated return type of EpicAddIssue
+"""
+type EpicAddIssuePayload {
+ """
+ A unique identifier for the client performing the mutation.
+ """
+ clientMutationId: String
+
+ """
+ The epic after mutation
+ """
+ epic: Epic
+
+ """
+ The epic-issue relation
+ """
+ epicIssue: EpicIssue
+
+ """
+ Reasons why the mutation failed.
+ """
+ errors: [String!]!
+}
+
+"""
The connection type for Epic.
"""
type EpicConnection {
@@ -2689,7 +2744,7 @@ input EpicSetSubscriptionInput {
clientMutationId: String
"""
- The group the epic to mutate is in
+ The group the epic to mutate belongs to
"""
groupPath: ID!
@@ -4872,6 +4927,7 @@ type Mutation {
designManagementUpload(input: DesignManagementUploadInput!): DesignManagementUploadPayload
destroyNote(input: DestroyNoteInput!): DestroyNotePayload
destroySnippet(input: DestroySnippetInput!): DestroySnippetPayload
+ epicAddIssue(input: EpicAddIssueInput!): EpicAddIssuePayload
epicSetSubscription(input: EpicSetSubscriptionInput!): EpicSetSubscriptionPayload
epicTreeReorder(input: EpicTreeReorderInput!): EpicTreeReorderPayload
issueSetConfidential(input: IssueSetConfidentialInput!): IssueSetConfidentialPayload
diff --git a/doc/api/graphql/reference/gitlab_schema.json b/doc/api/graphql/reference/gitlab_schema.json
index 4d52f45d3e4..3472a8bf742 100644
--- a/doc/api/graphql/reference/gitlab_schema.json
+++ b/doc/api/graphql/reference/gitlab_schema.json
@@ -19403,6 +19403,33 @@
"deprecationReason": null
},
{
+ "name": "epicAddIssue",
+ "description": null,
+ "args": [
+ {
+ "name": "input",
+ "description": null,
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "INPUT_OBJECT",
+ "name": "EpicAddIssueInput",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ }
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "EpicAddIssuePayload",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
"name": "epicSetSubscription",
"description": null,
"args": [
@@ -25120,7 +25147,7 @@
},
{
"name": "groupPath",
- "description": "The group the epic to mutate is in",
+ "description": "The group the epic to mutate belongs to",
"type": {
"kind": "NON_NULL",
"name": null,
@@ -25163,6 +25190,164 @@
},
{
"kind": "OBJECT",
+ "name": "EpicAddIssuePayload",
+ "description": "Autogenerated return type of EpicAddIssue",
+ "fields": [
+ {
+ "name": "clientMutationId",
+ "description": "A unique identifier for the client performing the mutation.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "epic",
+ "description": "The epic after mutation",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "Epic",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "epicIssue",
+ "description": "The epic-issue relation",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "OBJECT",
+ "name": "EpicIssue",
+ "ofType": null
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ },
+ {
+ "name": "errors",
+ "description": "Reasons why the mutation failed.",
+ "args": [
+
+ ],
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "LIST",
+ "name": null,
+ "ofType": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ }
+ }
+ }
+ },
+ "isDeprecated": false,
+ "deprecationReason": null
+ }
+ ],
+ "inputFields": null,
+ "interfaces": [
+
+ ],
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "INPUT_OBJECT",
+ "name": "EpicAddIssueInput",
+ "description": "Autogenerated input type of EpicAddIssue",
+ "fields": null,
+ "inputFields": [
+ {
+ "name": "iid",
+ "description": "The iid of the epic to mutate",
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "ID",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "groupPath",
+ "description": "The group the epic to mutate belongs to",
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "ID",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "projectPath",
+ "description": "The project the issue belongs to",
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "ID",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "issueIid",
+ "description": "The iid of the issue to be added",
+ "type": {
+ "kind": "NON_NULL",
+ "name": null,
+ "ofType": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ }
+ },
+ "defaultValue": null
+ },
+ {
+ "name": "clientMutationId",
+ "description": "A unique identifier for the client performing the mutation.",
+ "type": {
+ "kind": "SCALAR",
+ "name": "String",
+ "ofType": null
+ },
+ "defaultValue": null
+ }
+ ],
+ "interfaces": null,
+ "enumValues": null,
+ "possibleTypes": null
+ },
+ {
+ "kind": "OBJECT",
"name": "__Schema",
"description": "A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations.",
"fields": [
diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md
index 7230be484e6..df85e13d194 100644
--- a/doc/api/graphql/reference/index.md
+++ b/doc/api/graphql/reference/index.md
@@ -346,6 +346,17 @@ Represents an epic.
| `webPath` | String! | Web path of the epic |
| `webUrl` | String! | Web URL of the epic |
+## EpicAddIssuePayload
+
+Autogenerated return type of EpicAddIssue
+
+| Name | Type | Description |
+| --- | ---- | ---------- |
+| `clientMutationId` | String | A unique identifier for the client performing the mutation. |
+| `epic` | Epic | The epic after mutation |
+| `epicIssue` | EpicIssue | The epic-issue relation |
+| `errors` | String! => Array | Reasons why the mutation failed. |
+
## EpicDescendantCount
Counts of descendent epics.
diff --git a/doc/ci/jenkins/index.md b/doc/ci/jenkins/index.md
index 4b5f93fa1a2..3caea124351 100644
--- a/doc/ci/jenkins/index.md
+++ b/doc/ci/jenkins/index.md
@@ -24,12 +24,40 @@ can be a great resource.
There are some high level differences between the products worth mentioning:
- With GitLab you don't need a root `pipeline` keyword to wrap everything.
+- The way pipelines are triggered and [trigger other pipelines](../yaml/README.md#trigger)
+ is different than Jenkins. GitLab pipelines can be triggered:
+
+ - on push
+ - on [schedule](../pipelines/schedules.md)
+ - from the [GitLab UI](../pipelines.md#manually-executing-pipelines)
+ - by [API call](../triggers/README.md)
+ - by [webhook](../triggers/README.md#triggering-a-pipeline-from-a-webhook)
+ - by [ChatOps](../chatops/README.md)
+
+ You can control which jobs run in which cases, depending on how they are triggered,
+ with the [`rules` syntax](../yaml/README.md#rules).
+- GitLab [pipeline scheduling concepts](../pipelines/schedules.md) are also different than with Jenkins.
- All jobs within a single stage always run in parallel, and all stages run in sequence. We are planning
to allow certain jobs to break this sequencing as needed with our [directed acyclic graph](https://gitlab.com/gitlab-org/gitlab-foss/issues/47063)
feature.
+- The [`parallel`](../yaml/README.md#parallel) keyword can automatically parallelize tasks,
+ like tests that support parallelization.
+- Normally all jobs within a single stage run in parallel, and all stages run in sequence.
+ There are different [pipeline architectures](../pipelines/pipeline_architectures.md)
+ that allow you to change this behavior.
+- The new [`rules` syntax](../yaml/README.md#rules) is the recommended method of
+ controlling when different jobs run. It is more powerful than the `only/except` syntax.
+- One important difference is that jobs run independently of each other and have a
+ fresh environment in each job. Passing artifacts between jobs is controlled using the
+ [`artifacts`](../yaml/README.md#artifacts) and [`dependencies`](../yaml/README.md#dependencies)
+ keywords. When finished, the planned [Workspaces](https://gitlab.com/gitlab-org/gitlab/issues/29265)
+ feature will allow you to more easily persist a common workspace between serial jobs.
- The `.gitlab-ci.yml` file is checked in to the root of your repository, much like a Jenkinsfile, but
is in the YAML format (see [complete reference](../yaml/README.md)) instead of a Groovy DSL. It's most
analogous to the declarative Jenkinsfile format.
+- Manual approvals or gates can be set up as [`when:manual` jobs](../yaml/README.md#whenmanual). These can
+ also leverage [`protected environments`](../yaml/README.md#protecting-manual-jobs-premium)
+ to control who is able to approve them.
- GitLab comes with a [container registry](../../user/packages/container_registry/index.md), and we recommend using
container images to set up your build environment.
- Totally stuck and not sure where to turn for advice? The [GitLab community forum](https://forum.gitlab.com/) can be a great resource.