💚

初めてでもわかる、GitHub Sponsorsでオープンソースを支援する方法

2022/06/30に公開

この記事は、オープンソースのメンテナーを支援する方法として利用できるGitHub Sponsorsの特徴や使い方について紹介します。

この記事の目的

この記事はMaintainer Monthの一環として書いています。
Maintainer MonthはGitHub社が主催していて、オープンソースのメンテナーが集まって情報共有したり、メンテナーを祝ったり、メンテナーを支援する方法を振り返るイベントです。

オープンソースのメンテナーを支援する方法として、コード的な貢献、ドキュメントの貢献、IssueやPRのトリアージ、コミュニティの支援、デザイン、翻訳、金銭的な支援などがあります。

支援する方法の一つである金銭的な支援として、GitHub SponsorsPatreonOpen Collectiveなどが有名です。

この記事では、支援できる開発者の数も多いGitHub Sponsorsの特徴や基本的な使い方について紹介しながら、オープンソースのメンテナーを支援する方法について紹介します

GitHub Sponsorsの特徴

GitHub Sponsorsは、オープンソースのメンテナーに対して金銭的な支援ができるGitHubのサービスです。

GitHub SponsorsはGitHubが提供している機能なので、支援する側/メンテナー側どちらもGitHubアカウントが必要になります。支援する方法は、毎月決まった額を支援するMontlyと一度きりのOne Timeの2つの方法があり、支援する金額はメンテナー側が設定した金額かオプショナルで自由な金額を指定できます。
また、支援する金額はクレジットカードで支払いますが、ここでの手数料はGitHubが負担するため、現時点では支援した金額が100%そのまま届くのが特徴的です。

箇条書きでまとめると、GitHub Sponsorsには次のような特徴があります。

  • スポンサーをする人/メンテナー、どちらもGitHubアカウントが必要
  • メンテナーがGitHub Sponsorsでスポンサーを受け入れる設定してないと、スポンサーすることはできない
  • 個人がスポンサーする場合の手数料は、GitHubが負担するため無料となる[1]
  • 企業がスポンサーする場合の手数料は、支援額の10%となる(2022/06/30時点ではBetaなので無料となる[1:1])
  • 支援方法は、毎月支援するMontlyと、一回だけ支援するOne Timeがある
  • 支援金額は、メンテナーが設定した金額 または 自由入力の金額(オプショナル)となる
  • 支援に対する見返りは、メンテナーが設定する

GitHub Sponsorsを使ってオープンソースをサポートするまでの流れ

GitHub Sponsorsを使って特定の人や特定のOrganizationのスポンサーとなってサポートするまでの流れをみながら、実際にGitHub Sponsorsをどう使うのかをみていきます。

スポンサーしたい人を探す

まず探す必要があるのが、サポートしたい対象です。

GitHub Sponsorsではメンテナー側が、GitHub Sponsorsでのサポートを受け入れる設定をしない限り、スポンサーになれない仕様となっています。

そのため、GitHub Sponsorsが有効になっている かつ サポートしたい対象を見つける必要があります。

特定のアカウントがGitHub Sponsorsになっているかは、そのアカウントのユーザーページをみるとわかります。

たとえば、@azuのページを見てみると、Sponsorというボタンが表示されています。これがGitHub Sponsorsを有効にしているマークで、クリックすると https://github.com/sponsors/{use} ページへとアクセスできます。

@azu

https://github.com/azu

また、リポジトリに紐づいた支援先を探す方法もあります。
支援したいリポジトリへ行き、右上のWatchやForkボタンの隣にSponsorボタンがある場合は、支援を受け付けているリポジトリになります。

repo bottons

https://github.com/asciidwango/js-primer

このSponsorボタンをクリックすると、GitHub Sponsorsを含めた支援方法へのリンクが表示されます。(GitHub Sponsors以外も設定できるため、GitHub Sponsorsがない場合もあります)

Sponsor Icon

このSponsorボタンは、リポジトリや.githubリポジトリにFUNDING.ymlがあるかどうかで表示されるかが決まるため、リポジトリによっては支援を受け付けているけどSponsorボタンが出てないという状態もあります。
そのため、ユーザーページを見て判断するのが確実です。

また、自分が依存してるライブラリのメンテナーから探す方法もあります。

Explore GitHub Sponsorsというページでは、自分が依存してるライブラリのメンテナー(GitHub Sponsorsを有効化済み)の一覧を検索できます。
依存しているリポジトリ数も見れるため、ここから探してみるのも良いでしょう。

Explore GitHub Sponsors

https://github.com/sponsors/explore

GitHubがMaintainer Monthで、GitHubが内部的に依存してるOpen Sourceのメンテナー 900+名を探し、スポンサーになったのも同様の手法です。

📝 メンテナーの方で、GitHub Sponsorsを有効化したい場合は、次のサイトを参考にしてください。

ユーザーのスポンサーページの読み方

ユーザーのスポンサーページにアクセスすると、左側にそのユーザーが書いたスポンサーに向けたメッセージ、右側にTierという支援する金額の選択肢と、Montly/One-timeどちらの方法で支援するかが選択できるようになっています。

@azu Sponsors page

https://github.com/sponsors/azu

また、メンテナーが設定している場合は、自由な金額を入力できる入力欄も表示されます。

自由入力欄

Tier(金額やメッセージ)は、メンテナー自身が設定するため、メンテナーごとに金額やメッセージも異なります。

Tier

人によっては、選択肢は1つのみであったり、見返りとしてロゴを特定のページ載せたり、見返りはないけど選択肢は色々あるというアカウントもあります。
そのため、そのユーザーのスポンサーページを見て、どのTierを選択するかを判断する形になります。
基本的には、支援したい金額を選ぶで良いでしょう。

参考程度に、この記事の著者のTier設計については次のページで解説しています。

メンテナーのスポンサーになる

サポートしたい対象が決まったら、そのユーザーのページから、Tierまたは自由入力の金額を選んでスポンサーになります。

  • Montly: 継続的に支援したい場合は、Montlyの支援を選択
  • One-time: 一度きりの支援の場合は、One-timeを選択

支援金額を決めて"Select"ボタンを押すと、支援するためのページに移動します。

[初回のみ] 個人情報を入力する

初回のみ、GitHubに対する支払いに関係する個人情報を入力する必要があります。
入力した個人情報はGitHubに対する支払いに関するもので、メンテナーには通知されません。
次回以降はスキップされ、ここで入力した場合は https://github.com/settings/billing/payment_information から修正できます。

Sponsorship summary

[初回のみ] 支払い方法を選択する

支払い方法として、Credit cardとPaypal accountが用意されています。
この支払い方法についても、次回以降はスキップされ、ここで入力した場合は https://github.com/settings/billing/payment_information から修正できます。

Payment method

Edit: PayPalアカウントでのサポートは廃止されました。

スポンサーのオプションを入力

最後のページでは、支援することに関するオプションを毎回選択します。
オプションを選択して、完了ボタンを押せばスポンサーになって完了です。

Final Page

  • "Who can see your sponsorship?": スポンサーしていることを公開する(Everyone) or 非公開(Private)にするかを選択
    • 公開を選んだ場合は、スポンサーの一覧ページにアイコンが表示されます
    • 非公開の場合は、スポンサーの一覧ページでのアイコンが非公開用のものになります(アカウント名も公開されません)
    • 例) https://github.com/sponsors/azu
    • アイコンが公開、非公開
  • Receive email updates from {user}: メンテナーからの更新メッセージを受け取るかを選択
    • メンテナーをスポンサーしてくれている人へまとめてメッセージを送る機能があります
    • スポンサーに連絡する - GitHub Docs
    • この機能でのメッセージを受け取るかを選択できます
    • メールアドレス自体はメンテナーには公開されません
  • Memo: メモ欄
    • このメモ欄は自分用で、メンテナーには通知されません(今後はオプションが増える可能性がある)

オプションを選択して、Sponsor {user}ボタンを押せば支払いが行われ、完了です。

補足: メンテナーには何が送信されるか

初回のみの入力内容も多いですが、メンテナー視点では支援してくれた人のどのような情報がみれるのを確認します。基本的にアカウント名と支援金額ぐらいしか見えないようになっています。

見れる

  • 支援してくれたアカウント名
  • 支援してくれた金額
  • 支援方法の種類(Montly/One-time)

見れない

  • 支援してくれたアカウントの個人情報/クレジットカード情報
  • 支援してくれたアカウントのメースアドレス
  • 支援してくれたアカウントのメモ欄

また、メンテナー向けのダッシュボード https://github.com/sponsors/{user}/dashboard では支援者の人数や支援金額の合計なども確認できます。

時系列のグラフなどはないので、github-sponsor-reportというツールを作ってあります。

終わりに

GitHub Sponsorsは、基本的にサポートしたい人を見つけてクレジットカードなどでお金を支払って支援するという単純なものです。

今回は、個人のアカウントでのGitHub Sponsorsを使った支援方法について紹介しました。
GitHub Sponsorsは、Organizationとして特定のアカウントのスポンサーとなることもできるのが特徴で、企業アカウント(Organization)でスポンサーになることも可能です。

企業でGitHub Sponsorsを使ってオープンソースのメンテナーを支援している例も増えています。

あるオープンソースを支援したいと思ったときに、コードやドキュメントなどに対して直接的に貢献するのが難しい場面はあります。
GitHub Sponsorsなどもこの支援方法の一種で、金銭的な貢献でオープンソースをサポートできます。このような支援方法の選択肢が増えることはとても重要なことです。

もし、オープンソースなどを支援したいと思ったときは、GitHub Sponsorsという選択肢があることを思い出してください。
また、GitHub Sponsors以外にもオープンソースを支援する方法は色々あるので、その時の最適な方法を考えてみてください。

脚注
  1. https://docs.github.com/en/billing/managing-billing-for-github-sponsors/about-billing-for-github-sponsors ↩︎ ↩︎

Discussion