InfoGrab Docs

Composer API

요약

이 API를 사용하여 Composer 패키지 관리자 클라이언트와 상호작용합니다. 이 API는 Composer 패키지 관리자 클라이언트에서 사용하며 일반적으로 수동으로 사용하기 위한 것이 아닙니다. 이 엔드포인트는 표준 API 인증 방법을 따르지 않습니다.

이 API를 사용하여 Composer 패키지 관리자 클라이언트와 상호작용합니다.

Warning

이 API는 Composer 패키지 관리자 클라이언트에서 사용하며 일반적으로 수동으로 사용하기 위한 것이 아닙니다.

이 엔드포인트는 표준 API 인증 방법을 따르지 않습니다. 지원되는 헤더 및 토큰 유형에 대한 자세한 내용은 Composer 패키지 레지스트리 설명서를 참조하세요. 문서화되지 않은 인증 방법은 향후 제거될 수 있습니다.

저장소 URL 템플릿 검색#

그룹의 개별 패키지를 요청하기 위한 저장소 URL 템플릿을 검색합니다.

GET group/:id/-/packages/composer/packages
속성 유형 필수 설명
id string 그룹의 ID 또는 전체 경로.
curl --user <username>:<personal_access_token> \
  --url "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": "082df4a5035f8725a12a4a3d2da5e6aaa966d06843d0a5c6d499313810427bd6"
    }
  },
  "providers-url": "/api/v4/group/1/-/packages/composer/%package%$%hash%.json"
}

이 엔드포인트는 Composer V1과 V2에서 사용됩니다. V2 전용 응답을 보려면 Composer User-Agent 헤더를 포함하세요. V1보다 Composer V2를 사용하는 것이 권장됩니다.

curl --user <username>:<personal_access_token> \
     --header "User-Agent: Composer/2" \
     --url "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가 주어진 그룹의 저장소에서 패키지 목록을 검색합니다. V1보다 Composer V2를 사용하는 것이 권장됩니다.

GET group/:id/-/packages/composer/p/:sha
속성 유형 필수 설명
id string 그룹의 ID 또는 전체 경로.
sha string Composer 기본 요청이 제공하는 공급자 SHA.
curl --user <username>:<personal_access_token> \
  --url "https://gitlab.example.com/api/v4/group/1/-/packages/composer/p/082df4a5035f8725a12a4a3d2da5e6aaa966d06843d0a5c6d499313810427bd6"

응답 예시:

{
  "providers": {
    "my-org/my-composer-package": {
      "sha256": "5c873497cdaa82eda35af5de24b789be92dfb6510baf117c42f03899c166b6e7"
    }
  }
}

V1 패키지 메타데이터 검색#

그룹의 지정된 패키지에 대한 버전 및 메타데이터 목록을 검색합니다. V1보다 Composer V2를 사용하는 것이 권장됩니다.

GET group/:id/-/packages/composer/:package_name$:sha

URL에 $ 기호가 있습니다. 요청할 때 URL 인코딩된 버전 %24를 사용해야 할 수 있습니다. 표 다음에 있는 예시를 참조하세요:

속성 유형 필수 설명
id string 그룹의 ID 또는 전체 경로.
package_name string 패키지 이름.
sha string V1 패키지 목록이 제공하는 패키지의 SHA 다이제스트.
curl --user <username>:<personal_access_token> \
  --url "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 그룹의 ID 또는 전체 경로.
package_name string 패키지 이름.
curl --user <username>:<personal_access_token> \
  --url "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 그룹의 ID 또는 전체 경로.
tag string 아니요 패키지의 대상 태그 이름.
branch string 아니요 패키지의 대상 브랜치 이름.
curl --request POST --user <username>:<personal_access_token> \
     --data tag=v1.0.0 \
     --url "https://gitlab.example.com/api/v4/projects/1/packages/composer"

응답 예시:

{
  "message": "201 Created"
}

패키지 아카이브 다운로드#

프로젝트의 지정된 Composer 패키지 아카이브를 다운로드합니다. 이 URL은 v1 또는 v2 패키지 메타데이터 응답에서 제공됩니다. 요청에 .zip 파일 확장자가 있어야 합니다.

GET projects/:id/packages/composer/archives/:package_name
속성 유형 필수 설명
id string 그룹의 ID 또는 전체 경로.
package_name string 패키지 이름.
sha string 요청된 패키지 버전의 대상 SHA.
curl --user <username>:<personal_access_token> \
  --url "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> \
  --url "https://gitlab.example.com/api/v4/projects/1/packages/composer/archives/my-org/my-composer-package.zip?sha=673594f85a55fe3c0eb45df7bd2fa9d95a1601ab" >> package.zip

이 명령은 현재 디렉토리의 package.zip에 다운로드한 파일을 씁니다.

Composer API

Tier: Free, Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

이 API를 사용하여 Composer 패키지 관리자 클라이언트와 상호작용합니다. 이 API는 Composer 패키지 관리자 클라이언트에서 사용하며 일반적으로 수동으로 사용하기 위한 것이 아닙니다. 이 엔드포인트는 표준 API 인증 방법을 따르지 않습니다.

이 API를 사용하여 Composer 패키지 관리자 클라이언트와 상호작용합니다.

Warning

이 API는 Composer 패키지 관리자 클라이언트에서 사용하며 일반적으로 수동으로 사용하기 위한 것이 아닙니다.

이 엔드포인트는 표준 API 인증 방법을 따르지 않습니다. 지원되는 헤더 및 토큰 유형에 대한 자세한 내용은 Composer 패키지 레지스트리 설명서를 참조하세요. 문서화되지 않은 인증 방법은 향후 제거될 수 있습니다.

저장소 URL 템플릿 검색#

그룹의 개별 패키지를 요청하기 위한 저장소 URL 템플릿을 검색합니다.

GET group/:id/-/packages/composer/packages
속성 유형 필수 설명
id string 그룹의 ID 또는 전체 경로.
curl --user <username>:<personal_access_token> \
  --url "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": "082df4a5035f8725a12a4a3d2da5e6aaa966d06843d0a5c6d499313810427bd6"
    }
  },
  "providers-url": "/api/v4/group/1/-/packages/composer/%package%$%hash%.json"
}

이 엔드포인트는 Composer V1과 V2에서 사용됩니다. V2 전용 응답을 보려면 Composer User-Agent 헤더를 포함하세요. V1보다 Composer V2를 사용하는 것이 권장됩니다.

curl --user <username>:<personal_access_token> \
     --header "User-Agent: Composer/2" \
     --url "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가 주어진 그룹의 저장소에서 패키지 목록을 검색합니다. V1보다 Composer V2를 사용하는 것이 권장됩니다.

GET group/:id/-/packages/composer/p/:sha
속성 유형 필수 설명
id string 그룹의 ID 또는 전체 경로.
sha string Composer 기본 요청이 제공하는 공급자 SHA.
curl --user <username>:<personal_access_token> \
  --url "https://gitlab.example.com/api/v4/group/1/-/packages/composer/p/082df4a5035f8725a12a4a3d2da5e6aaa966d06843d0a5c6d499313810427bd6"

응답 예시:

{
  "providers": {
    "my-org/my-composer-package": {
      "sha256": "5c873497cdaa82eda35af5de24b789be92dfb6510baf117c42f03899c166b6e7"
    }
  }
}

V1 패키지 메타데이터 검색#

그룹의 지정된 패키지에 대한 버전 및 메타데이터 목록을 검색합니다. V1보다 Composer V2를 사용하는 것이 권장됩니다.

GET group/:id/-/packages/composer/:package_name$:sha

URL에 $ 기호가 있습니다. 요청할 때 URL 인코딩된 버전 %24를 사용해야 할 수 있습니다. 표 다음에 있는 예시를 참조하세요:

속성 유형 필수 설명
id string 그룹의 ID 또는 전체 경로.
package_name string 패키지 이름.
sha string V1 패키지 목록이 제공하는 패키지의 SHA 다이제스트.
curl --user <username>:<personal_access_token> \
  --url "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 그룹의 ID 또는 전체 경로.
package_name string 패키지 이름.
curl --user <username>:<personal_access_token> \
  --url "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 그룹의 ID 또는 전체 경로.
tag string 아니요 패키지의 대상 태그 이름.
branch string 아니요 패키지의 대상 브랜치 이름.
curl --request POST --user <username>:<personal_access_token> \
     --data tag=v1.0.0 \
     --url "https://gitlab.example.com/api/v4/projects/1/packages/composer"

응답 예시:

{
  "message": "201 Created"
}

패키지 아카이브 다운로드#

프로젝트의 지정된 Composer 패키지 아카이브를 다운로드합니다. 이 URL은 v1 또는 v2 패키지 메타데이터 응답에서 제공됩니다. 요청에 .zip 파일 확장자가 있어야 합니다.

GET projects/:id/packages/composer/archives/:package_name
속성 유형 필수 설명
id string 그룹의 ID 또는 전체 경로.
package_name string 패키지 이름.
sha string 요청된 패키지 버전의 대상 SHA.
curl --user <username>:<personal_access_token> \
  --url "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> \
  --url "https://gitlab.example.com/api/v4/projects/1/packages/composer/archives/my-org/my-composer-package.zip?sha=673594f85a55fe3c0eb45df7bd2fa9d95a1601ab" >> package.zip

이 명령은 현재 디렉토리의 package.zip에 다운로드한 파일을 씁니다.