GitHub Sponsorsを使って「企業」として寄付をした話

こんにちは。OSS推進チームの平野(@shisama_)です。

2020年12月にGitHub Sponsorsを利用して企業からOSSや個人へ寄付できるようになりました。

www.publickey1.jp

この記事では企業からOSSや開発者へGitHub Sponsorsにて寄付する方法について紹介します。

社外のOSSや開発者を支援するモチベーション

サイボウズでは日頃の業務でお世話になっているOSSへの寄付をしています。

tech.cybozu.io

サイボウズのプロダクト開発には多くのOSSが利用されており、プロダクトの成長はOSSによって支えられています。そこで、そのOSSのおかげで事業が成長した分を還元していく「フィードバック」として寄付を行い、OSSが持続的に発展できるよう支援しています。

これまでOSSプロジェクトに対してOpen Collectiveなどのプラットフォームの利用や直接送金により支援してきました。前述のとおり、GitHub Sponsorsが企業に対応したことにより個人開発者への寄付もしやすくなりました。

とくに開発業務でお世話になっている個人開発者の活動を支援するために、OSS推進チーム主体でGitHub Sponsorsを使った寄付をはじめました。

GitHub Sponsorsを使った企業からの寄付方法

Organizationアカウント(企業)からの寄付について、日本ではまだ事例が少ないと感じています。特に請求書払いのOrganizationアカウントからの寄付方法についての方法は調べても見つかりませんでした。 ここでは請求書払いのOrganizationアカウントを持つ企業からの寄付方法について説明します。

現在、OrganizationアカウントについてはクレジットカードまたはPayPalでの支払いのみGitHub Sponsorsで寄付ができます。

GitHub Sponsors for companies: Your company can now invest in your most critical open source dependencies through PayPal or a credit card (with more payment options coming soon).

引用元: New from Universe 2020: Dark mode, GitHub Sponsors for companies, and more - The GitHub Blog(参照日時2021/03/05)

サイボウズではGitHub Enterprise Cloudを利用しており、各OrganizationにおけるGitHubの有償機能の支払いをEnterpriseアカウントで集約し、請求書払いで処理しています。
前述のようにGitHub SponsorsはクレジットカードかPayPalでの支払いにしか対応していません。そのため、Enterpriseアカウント配下の@cybozu organizationで寄付しようとすると次のようなメッセージが表示され寄付できませんでした。

Sponsorships from invoiced organizations is in beta.

請求書払いできないメッセージ表示

「Join waitlist」ボタンをクリックし、しばらく待ってみましたが進展がなさそうだったので、GitHubに問い合わせました。すると、次のような手順に従って支払うことでメインアカウントから寄付したことにできると回答をいただきました。

  1. 現在メインで使っている請求書払いのアカウント(@cybozu)とは別に支払い用のサブアカウントを作成
  2. 作成したサブアカウントからクレジットカードまたはPayPalで支払い
  3. メインアカウントにリンクさせる

サブアカウントでGitHubに支払う概要図

Organizationアカウントから寄付をしたい場合の条件を整理すると、次のようになります。

  • 寄付を実施したいOrganizationアカウントの支払い方法がクレジットカード、またはPayPalに設定されている
    • そのまま何もせずに、そのアカウントから寄付できます
  • 寄付を実施したいOrganizationアカウントに上記以外の支払い方法(請求書払い)が設定されている
    • 新たにクレジットカードまたはPayPal払いを設定したOrganizationアカウントを作成し、元のアカウントと紐付ける必要があります
    • Enterpriseアカウントで請求を集約して請求書払いにしている場合もこちらに該当します

ここから先は、後者のケースについて具体的な手順をご紹介していきます。

請求書払いの企業からのSponsoring

次の手順によって請求書払いの企業でもGitHub Sponsorsから寄付ができるようになります。

今回はサイボウズが実際に@azu氏に寄付をした際の画面とともに説明します。

1. メインアカウントとは別の支払い用のサブアカウントを作成する

はじめに、これまでメインで使っていた請求書払いのOrganizationアカウントとは別に支払い用のOrganizationアカウントを作成します。

サイボウズでは@cybozu-sponsorshipという支払い用のOrganizationアカウントを作成しました。

Organizationアカウントの作成については以下のリンク先をご参照ください。

2. サブアカウントから対象のアカウントに寄付

寄付したいGitHubアカウントのページの左側にあるSponsorボタンを押下し、GitHub Sponsorsページに遷移します。

GitHub Sponsorsページへのボタン

GitHub Sponsorsページに遷移すると、次のように右側でどのアカウントから寄付するか選択できるので、作成したサブアカウントを選択します。

GitHub Sponsorsページで支払いアカウントを選択する画面

サブアカウントを選択したあとは寄付プランを選択して、クレジットカードまたはPayPalを使い支払いを完了させます。

GitHub Sponsorsにて寄付をする詳細な方法については以下のリンク先をご参照ください。

3. サブアカウントとメインアカウントをリンクさせる

この時点でサブアカウント(@cybozu-sponsorship)で支払いはできましたが、本来はメインアカウント(@cybozu)から寄付したいと考えていました。

前述のとおり、メインアカウントは請求書払いのため直接寄付はできません。しかし、支払い用のサブアカウントとリンクさせることでメインアカウントもスポンサーとみなされます。

アカウントのリンクは、サブアカウント側のSponsoringページから行えます。 サブアカウントのSponsoringページを開き、Settingsボタンを押下します。

サブアカウントのSponsoringページのsettingsボタンを押下

次のようにスポンサーに関する設定画面に遷移します。寄付用のアカウントから他のアカウントにスポンサーシップをリンクさせることができます。サイボウズの場合だとリンク元が@cybozu-sponsorship、リンク先が@cybozuとなります。 リンクさせることで@cybozu-sponsorshipが支払った寄付の情報を@cybozuにも反映させることができます。

サブアカウントをメインアカウントにリンクする画面

リンクが成功していれば、メインアカウントのSponsoringページにも寄付したアカウントが表示されます。

Sponsoring · Cybozu · GitHub

請求書払いのOrganizationアカウントは直接寄付金を支払うことはできません。しかし、ここで紹介したように、支払いはサブアカウントから行い、アカウントをリンクすることでスポンサーとしてみなされます。

おわりに

OSSの持続可能性はプロダクトの成長に関係します。利用しているOSSのメンテナンスが止まってしまい、脆弱性対応やバグ修正がされなくなると他のOSSに移行するか自作する必要があります。規模によっては大工事になることもあります。

OSSのバグを見つけたときにコードの修正は難しく感じても、寄付は難しくありません。

より良いプロダクト開発をするために、本記事がOSS開発者の支援をはじめるきっかけになれば幸いです。