GitHub Organization의 private 리포지토리 목록 가져 오기
5394 단어 C#ASP.NET_CoreREST-API
ASP.NET Core의 TargetFramework는
netcoreapp2.2
입니다.Refit 설치
dotnet add package refit
API 정의
namespace GitRepo.Interfaces
{
[Headers(
"User-Agent: GitRepo/0.1",
"Accept: application/vnd.github.v3+json",
"Authorization: token"
)]
public interface IGitHubApi
{
[Get("/orgs/{org}/repos")]
Task<FoundRepos[]> ListOrgRepos(string org, string page);
}
}
참고 :
User-Agent
는 필수 항목입니다. 그렇지 않으면 403 오류가 발생했습니다.모델 정의
namespace GitRepo.Models
{
public class FoundRepos
{
public string name { get; set; }
public string full_name { get; set; }
}
}
Organization의 private 리포지토리 목록을 가져옵니다.
var api = RestService.For<IGitHubApi>("https://api.github.com", new RefitSettings
{
AuthorizationHeaderValueGetter = () => Task.FromResult("TOKEN"),
});
var allRepos = new List<FoundRepos>();
for (int page = 1; ; page++)
{
var reposList = await api.ListOrgRepos(
org: "ORGNAME",
page: page.ToString()
);
if (reposList.Length == 0)
{
break;
}
allRepos.AddRange(reposList);
}
TOKEN은 Edit personal access token에서 구하십시오.
private 리포지토리 목록에 필요한 scope는
repo
입니다.이번 포인트는 반복 취득이 필요한 점입니다 (페이지 네이션 되어 있으므로)
Reference
이 문제에 관하여(GitHub Organization의 private 리포지토리 목록 가져 오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kenjiuno/items/e647597cef5f822dae97텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)