GitHub Sponsors と npm fund を設定してみた

GitHub 上でスポンサーを募れる GitHub Sponsors というサービスと、npm で資金提供を呼びかけられる npm fund コマンドがそれぞれ提供開始されたので、セットで作ってみた。

目次

GitHub Sponsors の登録方法

GitHub Sponsors を始めるには以下のページから。

まずは GitHub Sponsors 用のプロフィールと、提供してもらいたい金額の設定を行う。

次に Stripe というサービスのアカウントを連動させて作り、そこで本人確認と銀行口座情報を登録する。

本人確認は、自分は最初パスポートを使った。Stripe の画面上では正常に本人確認できた風に見えていたのだが、10日放置しても GitHub Sponsors 側のステータスが進まなかったので、Stripe のサポートにメールしてみた。Stripe のサポートは日本語で返事をくれて、本人確認書類を上げ直してみてくれということだった。

次は運転免許証の表面を撮影した写真を再提出して、ようやく正常に登録できた。ちなみに GitHub サポートにもメールしてみたが、GitHub は「日本語のメールは受け取れん」と言われてしまった。その間に正常に登録できたのでおけおけ。

ココまでが済んだら GitHub Sponsors Dashboard から改めて「Submit」(申請) を行うことで、ようやく GitHub Sponsors のプロフィールが有効になった。

例えば自分の Sponsors プロフィールは以下。

全体で3・4日ぐらいで申請は終わるかな。自分みたいに変なトラブルに引っかかった場合でも、なんとか2週間ぐらいで登録にこぎつけた。

GitHub リポジトリごとに Sponsor ボタンを付ける

以上の手順は GitHub アカウント単位での Sponsors ボタンを表示するまでの手順。この他に、リポジトリの画面の丈夫に「Sponsor」ボタンを表示することもできる。

例えば自分のリポジトリ画面の上部を見てもらえば、どんなボタンかは分かってもらえるだろう。

コレを表示するには、リポジトリの Settings に飛び、「Sponsorships」にチェックを入れる。

続いて、リポジトリ内に .github/FUNDING.yml というファイルを作成する。

内容はこんな風に、GitHub アカウントや Patreon アカウント名を入力したり、任意のリンクを書いたりするだけ。

github: Neos21
patreon: Neos21
custom:
  - 'http://neo.s21.xrea.com/'
  - 'http://neos21.hatenablog.com/'
  - 'https://neos21.github.io/'

このファイルを Push すると「Sponsor」ボタンが表示される。

なお、リポジトリの URL の末尾に ?sponsor=1 と付与すると、この「Sponsor」ボタンを押下して出てくるダイアログを初期表示できる。

既存の GitHub リポジトリに対して一括設定するには、azu さんの以下の記事が参考になる。

github-funding-yml-updater コマンドは、当方環境では何故か Windows の GitSDK 上だと正常に動かなかったのだが、MacOS の標準ターミナルなら無事動いた。

あと、Fork したリポジトリも含めて取得したいなら以下の API を使うと良い。

$ curl -s https://api.github.com/users/Neos21/repos?per_page=100 | jq -r '. | map(.full_name)[]' | sort

npm fund を始めてみる

npm fund コマンドは、npm v6.13.0 から搭載されたコマンド。

まず、package.jsonfunding プロパティが書けるようになった。書式はこんな感じ。

{
  // …中略…
  "funding": {
    "type": "github",
    "url": "https://github.com/sponsors/Neos21"
  }
}

typepatreon とかでも良い。url に、資金提供を受け付ける URL を貼っておく感じ。type を書かず url プロパティだけ書いたり、

{
  "funding": "https://github.com/sponsors/Neos21"
}

このように URL だけを直接 funding プロパティの値として書いてもよい。

このような package.json を作って npm publish しておく。そしてそのパッケージを誰かが npm install した後に npm fund コマンドを叩いてみると、次のように内容が確認できる。

$ npm fund

test-package@1.0.0
├─┬ neos21-test1@0.0.1
│ ├── type: github
│ └── url: https://github.com/sponsors/Neos21
└─┬ neos21-test2@0.0.2
  └── url: https://www.patreon.com/Neos21

npm fund コマンドがやっていることは node_modules/ 配下の package.json から funding プロパティをかき集めて表示しているだけ。

コレを見て、「このパッケージの開発者に寄付しよう〜」みたいになるのを待つワケだ。

僕の投げ銭アカウント一覧

というワケで、GitHub Sponsors を始め、僕が作った投げ銭アカウントは以下。


どのサービスもとりあえずアカウントを作っただけで、$1 ないしは100円のプランしか用意していない。自分に何ができるか分からないのでプロフィールも雑なのだが、何か指摘やアドバイスなどあればおなしゃす。

初めてスポンサードいただけた人には何か特別にしてあげたいと思っているので、1ドルからよろしくおなしゃす!


あと投げ銭ではないけどココナラも始めてみた。自分のスキル磨きのため。サービスの勝手が分かっていないが、初めて連絡いただけた人にはサービスしたいと思うので、コチラもどうかよろしくおなしゃす!

以上。