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"
}