GitLab CI YAML API

Tier: Free, Premium, Ultimate Offering: GitLab.com, 자체 관리, GitLab Dedicated

GitLab에서는 GitLab CI/CD YAML을 사용할 수 있는 API 엔드포인트가 있습니다. GitLab에서 CI/CD 파이프라인 구성에 대한 자세한 정보는 CI/CD YAML 구문 참조를 참조하세요.

게스트 역할을 가진 사용자는 GitLab CI YAML 템플릿에 액세스할 수 없습니다. 자세한 내용은 프로젝트 및 그룹 가시성을 참조하십시오.

GitLab CI YAML 템플릿 목록

모든 GitLab CI/CD YAML 템플릿을 가져옵니다.

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"
  },
  ...
]

단일 GitLab CI YAML 템플릿

단일 GitLab CI/CD YAML 템플릿을 가져옵니다.

GET /templates/gitlab_ci_ymls/:key
속성 유형 필수 설명
key string Yes GitLab CI/CD YAML 템플릿의 키

예시 요청:

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# To contribute improvements to CI/CD templates, please follow the Development guide at:\n# https://docs.gitlab.com/ee/development/cicd/templates.html\n# This specific template is located at:\n# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Ruby.gitlab-ci.yml\n\n# Official language image. Look for the different tagged releases at:\n# https://hub.docker.com/r/library/ruby/tags/\nimage: ruby:latest\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: https://docs.gitlab.com/ee/ci/services/index.html\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 \u0026\u0026 apt-get install nodejs -yqq\n  - bundle config set --local deployment true  # Install dependencies into ./vendor/ruby\n  - bundle install -j $(nproc)\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, for example, AWS Elastic Beanstalk\n# are supported too: https://github.com/travis-ci/dpl\ndeploy:\n  stage: deploy\n  environment: production\n  script:\n    - gem install dpl\n    - dpl --provider=heroku --app=$HEROKU_APP_NAME --api-key=$HEROKU_PRODUCTION_KEY\n"
}