GitHubとPackagistをウェブフックで連動させる方法

さてさて、プログラマーにとってGitHubといえばほぼ誰でも1アカウントは持っているといってもいいぐらいの超有名サイトですよね。

私もずっと前からこのサイトを使ってプログラムを公開し続けているので「いつもお世話になってます😊✨」という気持ちでいっぱいです。

さらに、composerにプログラムを公開する場合に必要となってくるサイトがPackagistです。私の場合も例にもれず、このPackagistを利用してパッケージを公開しています。

ただ、実はある時期から私が公開したパッケージの詳細ページに以下のような警告が表示されるようになりました。

This package is using the legacy service integration that GitHub deprecated in January 2019 and will not auto-update anymore. Please set up the new GitHub Hook for Packagist so that it starts updating again.

内容としては、「もうGitHubの古い統合システムは使えないよ!新しい設定をしてね」という意味になります。

これはどういうことかというと、あるパッケージがアップデートされた(つまりgit pushされた)場合にGitHub → Packagistへ自動的に通知が行ってPackagistの内容も自動更新されるという「Integration(統合)」という設定をしていたのですが、このGitHub機能がなくなっちゃったってことになります。(もしかしてMicrosoftに買収された影響なのでしょうか??)

ただし、なくなったとはいえ別の方法で自動更新する方法を用意してくれているのでご安心ください。

ということで、今回はGitHub → Packagist(以降、更新ウェブフック)に自動通知する新しい設定方法をご紹介します。

事前にやっておくこと

当たり前ですが、GitHubPackagistの登録内容を変更するので2つともログインをすませておいてください。

Payload URL、APIトークンを取得

更新ウェブフックを設定するためには、事前にPackagistで必要な情報を取得しておく必要があります。それが、

  • Payload URL
  • APIトークン

の2つです。

まずはこの情報を取得しておきましょう。(Packagistにログインした状態で以下のページにアクセスしてください。

https://packagist.org/about#how-to-update-packages

そして、以下のような表示がある部分を探してください。これがPayload URLになります。

そして、もうひとつのAPIトークンは公開してはいけないパスワードのようなものなので別ページで取得するようになっています。すぐ下のPackagist API Tokenというリンクをクリックしてください。

すると、以下のような表示になりますので、Show API Tokenというボタンをクリックします。

クリックしたらAPIトークンが表示されますのでこれを控えておきましょう。

更新ウェブフックの設定方法

では、実際に設定する方法を見ていきましょう。
まずは、更新ウェブフックを設定したいパッケージのGitHubページを開いてください。(例えば、このような個別ページです→日本関連ライブラリWafu

そして、ページ上部にあるSettingsというタブをクリックします。

すると、設定ページに移動するのでページ左側の「Webhook」をクリック。そして、「Add Webhook」というボタンをクリックしましょう。

※ もしボタンをクリックして以下のような表示になったらパスワードを入力して認証をしてください。

では、ここからが更新ウェブフックの設定になります。

先ほどPackagistで取得したPayload URLAPIトークンを入力し、Content typeapplication/jsonへ変更。そして、「Add Webhook」ボタンをクリックして登録しましょう。

そして、画面が変わって以下のようにPackgistがウェブフックのリストに入っていれば設定は完了です。今後はgit pushすると自動的にPackagistも更新されるようになります。

※ なお、完了するとPackagistで表示されていた「もう古いよ!」警告は消えているはずです。念の為、リロードして確認しておくといいかもしれません。

以上です。
お疲れ様でした!

おわりに

ということで、今回はいつものプログラムの話とは違ってGitHubとPackagistの話題をお届けしました。

ちなみにですが、これまで独自のパッケージを公開してきて良かったなと思うメリットを最後にまとめておきたいと思います。

スキルが上達する

これは単純にプログラムを書く回数が増えるというのもあるかもしれませんが、やはり「人に見られる」という状況にあることが大きいと思います。人に見られるからにはぐっちゃぐちゃのコードにはしにくくなりますし、人の目を気にすることで上達も早かったように思います。(その昔書いたコードを見ると、「えっ、そんな書き方しなくても・・・」と思ったりすることもありますが・・・😅)

バグを報告してもらえる

パッケージを公開して少しでも誰かに使ってもらえると、たまにIssueにバグの報告だったり、「こんな機能もつけてよ!」といったアイデアを投稿してもらえたりします。自分が気づきにくい部分の指摘をしてもらえるのはとても有益なことでした。

自分の実力を見せることができる

やはりプログラマーがどのぐらいのレベルの腕を持っているかというのを判断するには、その人が書いたコードを見るのが一番手っ取り早いです。そのため、GitHubでパッケージを公開していれば、(特にスターをゲットしたりしていれば)自分のアピールにもなるのでお仕事にもつながりやすいと思います。

英語の練習になる

プログラムの世界は英語が最低でも読めないと、新しい情報が入って来にくいといっていいと思います。そして、パッケージを公開する場合、私は基本的には全て英語でREADME.mdを書くようにしていますが、このおかげでに英語のライティング能力をある程度維持できていると思います。(本当はリスニング、スピーキング能力ももっとほしいところではありますが・・・😅)

最低限Gitが使えるようになる

GitHubというぐらいですから、最低限必要なgitの知識が身につきます。
私の環境ではコマンドラインから使っていますが、その昔GitHubを使う前までは自分でいちいちファイルをコピーしてバックアップしていました(笑)


と、独自パッケージを公開することにはとてもメリットが多いのでぜひ皆さんもやってみてはいかがでしょうか。

ではでは〜!