本連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーはtecklこと菅井茂樹さんで,
本稿のコードは,
チーム開発をもっと便利にするGitHub API
ソフトウェア開発にとって欠かせない存在となったGitHubですが,
本稿では,
GitHub APIとは
GitHub APIとは,
GitHub APIの種類
2021年3月現在,
GitHub Enterpriseの場合
GitHub Enterpriseという法人向けのGitHubを利用している方もいるでしょう。GitHub Enterpriseも,
GitHub API開発の準備
GitHub APIを使う準備を行いましょう。
OAuthトークンの取得
GitHub APIでは,
OAuthトークンの取得には,
GitHub APIクライアントのインストール
CPANにはPerlでGitHub APIを利用するためのクライアントがいくつも公開されています。代表的なのはPithub
とNet::GitHub
です。どちらもほとんど同じことができますが,Pithub
を使用します。Pithub
はv3 REST APIのみの対応となるため,Net::GitHub::V4
を利用するとよいでしょう。
Pithubは,
$ cpanm Pithub $ perl -MPithub -E 'say $Pithub::VERSION' 0.01036
これで, それでは, たとえば運用しているOrganizationが, ※ これ以降に登場するコードでは, この程度であればブラウザ上での確認で十分ではないかと思われるかもしれませんが, なお, たとえばみなさんのOrganizationにおいて,GitHub APIの実用例
組織の公開リポジトリ一覧を取得する
use strict;
use warnings;
use feature 'say';
use Pithub;
# 前節で取得したOAuthトークン
my $token = 'my_oauth_token';
my $pit = Pithub->new(
token => $token,
);
my $result = $pit->repos->list( …(1)
org => 'org_name_xxxxx',
params => {
type => 'public',
},
);
while ( my $row = $result->next ) {
say $row->{name};
}
$pit->repos
としている箇所は,
my $pit = Pithub->new(
token => $token,
api_uri => 'https://example.com/api/v3/',
);
組織のメンバー一覧を取得する
my $pit = Pithub->new(
token => $token,
);
my $res = $pit->orgs->members->list( …(1)
org => 'org_name_xxxxx',
params => {
filter => '2fa_disabled',
},
);
my $members = $res->content;
for my $member (@{$members}) {
say $member->{login};
}
$pit->orgs
としている箇所は,