GitHub GraphQL API로 리포지토리 콘텐츠 유효성 검사
7089 단어 githubwebdevgraphqljavascript
query($owner: String!, $repositoryName: String!) {
repository(owner: $owner, name: $repositoryName) {
packageJson: object(expression: "HEAD:package.json") {
... on Blob {
byteSize,
text
}
}
}
}
매우 간단하지 않습니까?
이 쿼리는 저장소의 소유자인
owner
및 repositoryName
를 쿼리 변수로 사용합니다.우선 저장소 정보에 액세스해야 합니다. 정보를 얻기 위해 쿼리를 호출하면
object
를 얻을 수 있습니다. 이 필드는 우리가 해야 할 파일의 경로를 지정하는 표현식을 허용합니다. 이 경우 HEAD:package.json
를 확인하지만 원하는 위치에 있을 수 있습니다(형식은 ${branch}:${pathFile}
입니다).그런 다음
byteSize
(파일 크기라고도 함, 존재하지 않는 경우 null
) 및 텍스트(콘텐츠 파일이라고도 함)를 포함하는 이 개체의 Blob을 가져와야 합니다.그리고 그게 다야!
이 쿼리를 통해 우리는 다음과 같은 것을 얻을 수 있습니다.
{
"data": {
"repository": {
"packageJson": {
"byteSize": 719,
"text": "{\n \"name\": \"test-repo\",\n \"version\": \"1.0.0\",\n \"author\": \"\",\n \"copyright\": \"\",\n \"scripts\": {\n \"dev\": \"zuplo dev\",\n \"build\": \"zuplo build\",\n \"test\": \"zuplo test\",\n \"postinstall\": \"husky install\"\n },\n \"dependencies\": {\n \"devDependencies\": {\n \"husky\": \"^7.0.4\"\n },\n \"packageManager\": \"[email protected]\"\n }\n}"
}
}
}
}
또는 파일이 존재하지 않는 경우
{
"data": {
"repository": {
"packageJson": null
}
}
}
Reference
이 문제에 관하여(GitHub GraphQL API로 리포지토리 콘텐츠 유효성 검사), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/nsantos16/validating-repository-content-with-github-graphql-api-2i93텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)