# GitLab CI YMLs API

> 原文：[https://docs.gitlab.com/ee/api/templates/gitlab_ci_ymls.html](https://docs.gitlab.com/ee/api/templates/gitlab_ci_ymls.html)

*   [List GitLab CI YML templates](#list-gitlab-ci-yml-templates)
*   [Single GitLab CI YML template](#single-gitlab-ci-yml-template)

# GitLab CI YMLs API[](#gitlab-ci-ymls-api "Permalink")

在 GitLab 中，有一个 API 端点可用于 GitLab CI / CD YML. 有关 GitLab 中 CI / CD 管道配置的更多信息，请参阅[配置参考文档](../../ci/yaml/README.html) .

## List GitLab CI YML templates[](#list-gitlab-ci-yml-templates "Permalink")

获取所有的 GitLab CI / CD YML 模板.

```
GET /templates/gitlab_ci_ymls 
```

请求示例：

```
curl https://gitlab.example.com/api/v4/templates/gitlab_ci_ymls 
```

响应示例：

```
[  {  "key":  "Android",  "name":  "Android"  },  {  "key":  "Android-Fastlane",  "name":  "Android-Fastlane"  },  {  "key":  "Auto-DevOps",  "name":  "Auto-DevOps"  },  {  "key":  "Bash",  "name":  "Bash"  },  {  "key":  "C++",  "name":  "C++"  },  {  "key":  "Chef",  "name":  "Chef"  },  {  "key":  "Clojure",  "name":  "Clojure"  },  {  "key":  "Code-Quality",  "name":  "Code-Quality"  },  {  "key":  "Crystal",  "name":  "Crystal"  },  {  "key":  "Django",  "name":  "Django"  },  {  "key":  "Docker",  "name":  "Docker"  },  {  "key":  "Elixir",  "name":  "Elixir"  },  {  "key":  "Go",  "name":  "Go"  },  {  "key":  "Gradle",  "name":  "Gradle"  },  {  "key":  "Grails",  "name":  "Grails"  },  {  "key":  "Julia",  "name":  "Julia"  },  {  "key":  "LaTeX",  "name":  "LaTeX"  },  {  "key":  "Laravel",  "name":  "Laravel"  },  {  "key":  "Maven",  "name":  "Maven"  },  {  "key":  "Mono",  "name":  "Mono"  }  ] 
```

## Single GitLab CI YML template[](#single-gitlab-ci-yml-template "Permalink")

获取单个 GitLab CI / CD YML 模板.

```
GET /templates/gitlab_ci_ymls/:key 
```

| Attribute | Type | Required | Description |
| --- | --- | --- | --- |
| `key` | string | yes | GitLab CI / CD YML 模板的密钥 |

请求示例：

```
curl https://gitlab.example.com/api/v4/templates/gitlab_ci_ymls/Ruby 
```

响应示例：

```
{  "name":  "Ruby",  "content":  "# This file is a template, and might need editing before it works on your project.\n# Official language image. Look for the different tagged releases at:\n# https://hub.docker.com/r/library/ruby/tags/\nimage: \"ruby:2.5\"\n\n# Pick zero or more services to be used on all builds.\n# Only needed when using a docker container to run your tests in.\n# Check out: http://docs.gitlab.com/ce/ci/docker/using_docker_images.html#what-is-a-service\nservices:\n - mysql:latest\n - redis:latest\n - postgres:latest\n\nvariables:\n POSTGRES_DB: database_name\n\n# Cache gems in between builds\ncache:\n paths:\n - vendor/ruby\n\n# This is a basic example for a gem or script which doesn't use\n# services such as redis or postgres\nbefore_script:\n - ruby -v  # Print out ruby version for debugging\n # Uncomment next line if your rails app needs a JS runtime:\n # - apt-get update -q && apt-get install nodejs -yqq\n - bundle install -j $(nproc) --path vendor  # Install dependencies into ./vendor/ruby\n\n# Optional - Delete if not using `rubocop`\nrubocop:\n script:\n - rubocop\n\nrspec:\n script:\n - rspec spec\n\nrails:\n variables:\n DATABASE_URL: \"postgresql://postgres:postgres@postgres:5432/$POSTGRES_DB\"\n script:\n - rails db:migrate\n - rails db:seed\n - rails test\n\n# This deploy job uses a simple deploy flow to Heroku, other providers, e.g. AWS Elastic Beanstalk\n# are supported too: https://github.com/travis-ci/dpl\ndeploy:\n type: deploy\n environment: production\n script:\n - gem install dpl\n - dpl --provider=heroku --app=$HEROKU_APP_NAME --api-key=$HEROKU_PRODUCTION_KEY\n"  } 
```