Composer API
이 문서는 Composer Packages에 대한 API 문서입니다.
경고: 이 API는 Composer package manager client에서 사용되며 일반적으로 수동으로 사용하도록 설계되지 않았습니다.
GitLab 패키지 레지스트리에서 Composer 패키지를 업로드하고 설치하는 방법에 대한 지침은 Composer package registry documentation을 참조하세요.
참고: 이 엔드포인트는 표준 API 인증 방법을 준수하지 않습니다. 사용 가능한 헤더 및 토큰 유형에 대한 자세한 내용은 Composer Package Registry documentation을 참조하세요. 문서화되지 않은 인증 방법은 앞으로 제거될 수 있습니다.
기본 저장소 요청
개별 패키지를 요청하는 데 사용되는 저장소 URL 템플릿을 반환합니다.
GET group/:id/-/packages/composer/packages
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| string | yes | 그룹의 ID 또는 전체 경로. |
curl --user <username>:<personal_access_token> "https://gitlab.example.com/api/v4/group/1/-/packages/composer/packages"
예시 응답:
{
"packages": [],
"metadata-url": "/api/v4/group/1/-/packages/composer/p2/%package%.json",
"provider-includes": {
"p/%hash%.json": {
"sha256": "082df4a5035f8725a12i4a3d2da5e6aaa966d06843d0a5c6d499313810427bd6"
}
},
"providers-url": "/api/v4/group/1/-/packages/composer/%package%$%hash%.json"
}
이 엔드포인트는 Composer V1 및 V2에서 사용됩니다. V2 특정 응답을 보려면 Composer User-Agent
헤더를 포함하세요. V2 사용을 권장합니다.
curl --user <username>:<personal_access_token> \
--header "User-Agent: Composer/2" \
"https://gitlab.example.com/api/v4/group/1/-/packages/composer/packages"
예시 응답:
{
"packages": [],
"metadata-url": "/api/v4/group/1/-/packages/composer/p2/%package%.json"
}
V1 패키지 목록
V1 제공자 SHA가 제공된 경우, 저장소의 패키지 목록을 반환합니다. Composer V2 사용을 권장합니다.
GET group/:id/-/packages/composer/p/:sha
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| string | yes | 그룹의 ID 또는 전체 경로. |
sha
| string | yes | Composer 기본 요청에서 제공된 제공자 SHA. |
curl --user <username>:<personal_access_token> "https://gitlab.example.com/api/v4/group/1/-/packages/composer/p/082df4a5035f8725a12i4a3d2da5e6aaa966d06843d0a5c6d499313810427bd6"
예시 응답:
{
"providers": {
"my-org/my-composer-package": {
"sha256": "5c873497cdaa82eda35af5de24b789be92dfb6510baf117c42f03899c166b6e7"
}
}
}
V1 패키지 메타데이터
특정 패키지의 버전 및 메타데이터 목록을 반환합니다. Composer V2 사용을 권장합니다.
GET group/:id/-/packages/composer/:package_name$:sha
URL에 있는 $
기호에 주목하세요. 요청할 때는 기호의 URL 인코딩된 버전 %24
가 필요할 수 있습니다. 표 다음의 예시를 참조하세요.
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| string | yes | 그룹의 ID 또는 전체 경로. |
package_name
| string | yes | 패키지의 이름. |
sha
| string | yes | V1 패키지 목록에서 제공된 패키지 SHA. |
curl --user <username>:<personal_access_token> "https://gitlab.example.com/api/v4/group/1/-/packages/composer/my-org/my-composer-package%245c873497cdaa82eda35af5de24b789be92dfb6510baf117c42f03899c166b6e7"
예시 응답:
{
"packages": {
"my-org/my-composer-package": {
"1.0.0": {
"name": "my-org/my-composer-package",
"type": "library",
"license": "GPL-3.0-only",
"version": "1.0.0",
"dist": {
"type": "zip",
"url": "https://gitlab.example.com/api/v4/projects/1/packages/composer/archives/my-org/my-composer-package.zip?sha=673594f85a55fe3c0eb45df7bd2fa9d95a1601ab",
"reference": "673594f85a55fe3c0eb45df7bd2fa9d95a1601ab",
"shasum": ""
},
"source": {
"type": "git",
"url": "https://gitlab.example.com/my-org/my-composer-package.git",
"reference": "673594f85a55fe3c0eb45df7bd2fa9d95a1601ab"
},
"uid": 1234567
},
"2.0.0": {
"name": "my-org/my-composer-package",
"type": "library",
"license": "GPL-3.0-only",
"version": "2.0.0",
"dist": {
"type": "zip",
"url": "https://gitlab.example.com/api/v4/projects/1/packages/composer/archives/my-org/my-composer-package.zip?sha=445394f85a55fe3c0eb45df7bd2fa9d95a1601ab",
"reference": "445394f85a55fe3c0eb45df7bd2fa9d95a1601ab",
"shasum": ""
},
"source": {
"type": "git",
"url": "https://gitlab.example.com/my-org/my-composer-package.git",
"reference": "445394f85a55fe3c0eb45df7bd2fa9d95a1601ab"
},
"uid": 1234567
}
}
}
}
V2 패키지 메타데이터
지정된 패키지의 버전 및 메타데이터 목록을 반환합니다:
GET group/:id/-/packages/composer/p2/:package_name
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| string | yes | 그룹의 ID 또는 전체 경로입니다. |
package_name
| string | yes | 패키지의 이름입니다. |
curl --user <username>:<personal_access_token> "https://gitlab.example.com/api/v4/group/1/-/packages/composer/p2/my-org/my-composer-package"
예시 응답:
{
"packages": {
"my-org/my-composer-package": {
"1.0.0": {
"name": "my-org/my-composer-package",
"type": "library",
"license": "GPL-3.0-only",
"version": "1.0.0",
"dist": {
"type": "zip",
"url": "https://gitlab.example.com/api/v4/projects/1/packages/composer/archives/my-org/my-composer-package.zip?sha=673594f85a55fe3c0eb45df7bd2fa9d95a1601ab",
"reference": "673594f85a55fe3c0eb45df7bd2fa9d95a1601ab",
"shasum": ""
},
"source": {
"type": "git",
"url": "https://gitlab.example.com/my-org/my-composer-package.git",
"reference": "673594f85a55fe3c0eb45df7bd2fa9d95a1601ab"
},
"uid": 1234567
},
"2.0.0": {
"name": "my-org/my-composer-package",
"type": "library",
"license": "GPL-3.0-only",
"version": "2.0.0",
"dist": {
"type": "zip",
"url": "https://gitlab.example.com/api/v4/projects/1/packages/composer/archives/my-org/my-composer-package.zip?sha=445394f85a55fe3c0eb45df7bd2fa9d95a1601ab",
"reference": "445394f85a55fe3c0eb45df7bd2fa9d95a1601ab",
"shasum": ""
},
"source": {
"type": "git",
"url": "https://gitlab.example.com/my-org/my-composer-package.git",
"reference": "445394f85a55fe3c0eb45df7bd2fa9d95a1601ab"
},
"uid": 1234567
}
}
}
}
패키지 생성
Git 태그 또는 브랜치에서 Composer 패키지를 생성합니다:
POST projects/:id/packages/composer
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| string | yes | 그룹의 ID 또는 전체 경로입니다. |
tag
| string | no | 패키지를 위해 대상으로 지정할 태그의 이름입니다. |
branch
| string | no | 패키지를 위해 대상으로 지정할 브랜치의 이름입니다. |
curl --request POST --user <username>:<personal_access_token> \
--data tag=v1.0.0 "https://gitlab.example.com/api/v4/projects/1/packages/composer"
예시 응답:
{
"message": "201 Created"
}
패키지 아카이브 다운로드
Composer 패키지를 다운로드합니다. 이 URL은 v1
또는 v2 package metadata
응답에서 제공됩니다. 요청에는 .zip
파일 확장자가 있어야 합니다.
GET projects/:id/packages/composer/archives/:package_name
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| string | yes | 그룹의 ID 또는 전체 경로입니다. |
package_name
| string | yes | 패키지의 이름입니다. |
sha
| string | yes | 요청된 패키지 버전의 대상 SHA입니다. |
curl --user <username>:<personal_access_token> "https://gitlab.example.com/api/v4/projects/1/packages/composer/archives/my-org/my-composer-package.zip?sha=673594f85a55fe3c0eb45df7bd2fa9d95a1601ab"
파일로 출력 작성:
curl --user <username>:<personal_access_token> "https://gitlab.example.com/api/v4/projects/1/packages/composer/archives/my-org/my-composer-package.zip?sha=673594f85a55fe3c0eb45df7bd2fa9d95a1601ab" >> package.tar.gz
이것은 현재 디렉터리에 다운로드한 파일을 package.tar.gz
로 작성합니다.