にっき

技術的な話題はないです

Hacktoberfestを「DDoS攻撃」と呼ばないでほしい

タイトルは勢いで決めました。

この投稿は、Hacktoberfest により誘発されたとされるスパム Pull Request 騒動について、自身が感じた疑問をまとめています。 今回の騒動についてここで詳細に説明する気はありませんが、気になる方は下のリンクなどを参考にしてください。

GitHub という場を選択した責任

"label:spam" などをつけて検索すると分かるように、イベント期間中にスパムだとラベル付け close された Pull Request にはドキュメントに "amazing project" といった無意味な単語を付け加えるだけのものだったり、明らかに改悪と呼べる変更(Cargo.tomlCargo_an_amazing_project.toml にリネームするなど)が多く存在します。 そのようなスパムは明らかにメンテナのモチベーションを阻害するものであり、増長してしまうことはイベントの主催側としても好ましくない事態だと思います(そうであってほしいですが…)。 イベントへの参加表明が opt-out 方式になっていたことも確かに問題であり、スパムを収束させるために対策を行う責任は DigitalOcean 側にあるでしょう。

しかし、「GitHubを不快な場所にしているのでDigitalOceanからのAPIアクセスを遮断しろ」「これは企業主体のDDoS攻撃だ」というはさすがに暴論ではないかと思います。 そもそもの話として、そういったスパムに汚染されるリスクは Hacktoberfest の開催に問わず常に存在しているわけです(スパムの投稿される頻度は変わるでしょうが)。 プラットフォームとして GitHub を選択したのは自分たちなのに、一方的な被害者面を取るのはさすがに筋が通っていないのではないかと思います。

イベントが明らかな悪意の下開催されていたり、主催側が明らかにOSSコミュニティを破壊するような呼びかけをしていた場合はしっかりと対処するべきでしょう(そもそも「Tシャツを配る」というのが良い呼びかけとは言えない気がしますが)。 しかし、少なくとも Hacktoberfest そのものを排除しようと大勢に働きかけるのはやりすぎではないかと感じました。

Hacktoberfest に対する私感

僕自身は Hacktoberfest というイベントに対し強い思い入れがあるというわけではなく(むしろつい最近まで Hack "for" berfest と思い込んでいた程度でしたし)、「Tシャツ欲しい」とだけ添え書きされた意味のない Pull Request が飛び交う現状を見て「クソイベントだな」とぼやいてしまったこともあります。 それでも、このイベントに対し明らかな敵意を持っているわけではないので、何とか事態が収束して平和的に終わってくれることを願っています。

「Tシャツ欲しさにスパム飛ばしてると思われるのが嫌だから Pull Request 送るのを控えよう」といった萎縮によって OSS コミュニティへの新規参入が冷え込んでしまうのが最悪のパターンだと思います。 もの欲しさに Pull Request を投げるという行為は僕自身も首をかしげてしまう所はありますが、それでもそういうきっかけで GitHub という "SNS" へと足を踏み入れるのは悪くないことだと思います。 僕自身、何も考えずに Pull Request を送りまくって Reject されたり、間違えた Pull Request で相手が迷惑がるんじゃないかと不安に思ったりした時期を経て今があるので(今も悩みますが…)、GitHub にはそういった右も左もわからない人間がいても良い場所としてい続けてほしいと願うばかりです。

イベントへの参加表明が opt-in になったことで以前のような盛り上がりが期待できなくなってしまった感はありますが、それでもこのイベントが平和的に開催し続けられるような世界であることを願っています。 少なくとも、現時点で参加をしようか迷っている人は、OSS メンテナすべてが Hacktoberfest を毛嫌いしているわけではないことを知ってもらい、イベントへの参加を前向きに検討していただけたらと思います(プロジェクトの最低限のルールに従う前提の話ですが)。

最後になりますが、自分が公開しているリポジトリのいくつかに "hacktoberfest2020" "hacktoberfest"(追記: id:piro_or さんからの指摘によると、トピック名が厳密に "hacktoberfest" と一致している場合のみを対象としているようです) トピックを設定しておきました。 ちゃんと対応できるかは分かりませんが、興味のある方は Contribution を検討してみてください。

GitHub - ubnt-intrepid/ubnt-intrepid: My profile page