GitLab CI YAML API

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

GitLab에서는 GitLab CI/CD YAML을 작업할 수 있는 API 엔드포인트가 제공됩니다. GitLab에서 CI/CD 파이프라인 구성에 대한 자세한 내용은
CI/CD YAML 문법 참조를 참조하세요.

Guest 역할을 가진 사용자는 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"  
  },  
  {  
    "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"  
  }  
]  

단일 GitLab CI YAML 템플릿

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

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

예시 요청:

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

예시 응답:

{  
  "name": "Ruby",  
  "content": "# 이 파일은 템플릿이며, 프로젝트에서 작동하기 전에 수정이 필요할 수 있습니다.\n# CI/CD 템플릿에 개선 사항을 기여하려면 다음 개발 가이드를 따라주세요:\n# https://docs.gitlab.com/ee/development/cicd/templates.html\n# 이 특정 템플릿은 다음에 위치해 있습니다:\n# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Ruby.gitlab-ci.yml\n\n# 공식 언어 이미지. 태그가 붙은 다양한 릴리스를 찾으세요:\n# https://hub.docker.com/r/library/ruby/tags/\nimage: ruby:latest\n\n# 모든 빌드에서 사용될 수 있는 서비스 선택 (0개 이상).\n# 테스트를 실행하기 위해 Docker 컨테이너를 사용할 때만 필요합니다.\n# 참조: 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# 빌드 간 gem 캐시\ncache:\n  paths:\n    - vendor/ruby\n\n# 이것은 redis나 postgres와 같은 서비스를 사용하지 않는 gem 또는 스크립트의 기본 예입니다\nbefore_script:\n  - ruby -v  # 디버깅을 위한 ruby 버전 출력\n  # rails 앱에 JS 런타임이 필요한 경우 다음 줄의 주석을 제거하세요:\n  # - apt-get update -q \u0026\u0026 apt-get install nodejs -yqq\n  - bundle config set --local deployment true  # ./vendor/ruby에 종속성 설치\n  - bundle install -j $(nproc)\n\n# 선택 사항 - `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# 이 배포 작업은 Heroku에 간단한 배포 흐름을 사용하며, AWS Elastic Beanstalk와 같은 다른 제공업체도 지원합니다:\n# 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"  
}