カテゴリー
ネットの事件

プルリクエストを巡る bot 対 bot の非生産的なやりとり

mysql/mysql-server でのプルリクエストを巡る、bot 対 bot の戦いです。

登場人物、いやbot は以下の2つ。

  • 依存ライブラリが古くなっているのを見つけてパッチを作り更新を提案する(今は)GitHub内のサービス dependabot
  • MySQL への更新提案に対してOCA(Oracle Contributor Agreement = オラクル貢献者同意書)に同意済かを確認する mysql-oca-bot

プルリクエスト上でのやりとりはこんな感じ。

dependabot: Babel (国際化に関する Python製ライブラリ)の最新バージョン 2.9.1 を確認しました。バージョン 2.8.0 から 2.9.1 への更新をコミットしました。

mysql-oca-bot: PRありがとう。OCA には同意してますか? 詳しくはこちらを読んで手続きに従ってください。MySQLバグ管理システムに登録したメールアドレスを添えてくださいね。

(ここで一か月)

mysql-oca-bot: リクエストに反応がないので、このリクエストはクローズします。

dependabot: 今回はこれ以上言わないけど、次のバージョンが出たらまた連絡します。もし次の特定のバージョンまでスキップしたい場合は以下の手順に従ってその旨通知してください。もし気が変わったらこのPRを再開してくれてもいいんですよ。

自動ボット2台だけでやりとりが完結してますね。完結といっても建設的なものではなく、何も進んでませんが。

mysql-oca-bot の方は、OCA に同意して何らかのリプライをつけることで、そのあとに別の人間のユーザーが出てきてマージするかどうかの議論を進める仕組みのようですね。OCA に同意しているかどうかを毎回提案者に聞くのが手間なので、そこを bot 化したのでしょう。

しかし、dependabot はそんな事は知らないし、追加の返答もしないから単に期限切れとなってしまう。

そもそも dependabot を動かしてるのは MySQL であり結局 Oracle なのだから、OCA も何も無いような。dependabot からのPRの場合は人間のアカウントに渡すように設定するべきじゃないのかしら。

同じリポジトリで検索してみたところ、他にも10個ぐらい同じような無為のやりとりが見つかりました。

via twitter

カテゴリー
ツール

GitHub Pages で static な短縮URLサイト作成

nelsontky/gh-pages-url-shortener は、GitHub の静的ファイル公開機能 GitHub Pages を使った、短縮URLホスティングです。

clone して自分でもホストしてみました。s.akimoto.jp の DNS が GitHub Pages を指すように設定します。

https://s.akimoto.jp/ (説明用の index.html が開きます)

そして、GitHub issues にタイトルがURLになる issue を投げる

と、 issue 番号⇒URL の転送が実施されます。

https://s.akimoto.jp/1 ( issue のタイトルに書いた別のアドレスへ転送されます)

その動作原理

  1. CNAME で gh-pages ブランチを指させる
  2. (短縮URLのパス)すべては 404.html に渡される
  3. GitHub issues から JSON API でURL転換情報を JavaScript が取得し、(それに従って)転送
  4. 役に立つ?

ということ。なるほど。GitHub issues を、転送用の lookup table として使っているわけですね。この後転送したい短縮URLを増やすのは、issue を発行すればよいということです。更新や削除も同様。面白い事考えるなあ。

# GitHub API の公開アクセスには60回/時間の制限が掛かっているので、実用的には使えないでしょう。

via Hacker News

カテゴリー
ネットの事件

「イスラエルからのプルリクエストは受けられません」- オープンソース貢献と国際紛争

PHPの人気フレームワーク Laravel にダウンロードリンク生成機能を追加するオープンソースのパッケージで、機能追加の提案がイラン人の作者によって却下されるという事件が発生しました。却下の理由はイランの法律だそうです。

armancodes/laravel-download-link は、Laravel 上でファイルダウンロードのリンクを生成するパッケージ。GitHub で管理されるオープンソースのライブラリで、ダウンロードリンクの時間による失効や IPアドレスによるアクセス制限などの機能を持っています。作者は @armancodes で、プロフィールではテヘラン在住となっています。

これに対し、ユーザー @Yiddishe-Kop が、特定のユーザーにだけダウンロードを有効化させることができる改造を提案しました。当初は受け入れられそうなコメントの流れでしたが、作者による以下のようなコメントで、PRは却下されてしまいました。

すばらしいアイデアをありがとう。

たいへん申し訳ないのですが、このPRをマージすることはできません。私の国の法律で、イスラエルからの人やイスラエル政府と関係を持ってはいけないという法律があります。

理解してもらえることを願います。あらためてあなたの時間に感謝します。

Hi, Thanks for your great idea.

I’m SO SORRY to tell you that I cannot merge this PR. There is a law in my country that we MUST NOT have any relationship with people from Israel or the Israel government.

I hope you understand this, and again thanks for your time.

他ユーザーも交えた議論が少し続いた後、元Google/Facebookのエンジニアでイラン系カナダ人で、今年イランへ入国した際に逮捕投獄され、アメリカへ戻ったらイランのスパイになるよう脅されて解放された、と発表した Behdad Esfahbod氏 (@behdad)が「ただマージすればいい(Just merge it)」とコメントした後で、プルリクエスト自体が作者によってクローズされてしまいました。

ユーザ名 @Yiddishe-Kop のの Yiddishe(イディッシュ)の部分は東欧系ユダヤ人の話す言語イディッシュ語(Yidish)にもあるようにユダヤという意味の言葉で、アカウント名に「ユダヤ」と入っていることからイラン人の作者が「気づいてしまった」というところはあるように思います。

プルリクエストの最初の方では、パッチの提案に感謝して取り込むためのテストコードを追加したりもしているので、名前に気づく前は普通に受け入れるつもりだったのでしょう。却下のコメントも悪意はまったく感じられず、むしろ申し訳ないと思っている風に読めますし、現地での法律がそうなっていてしかもインターネットに公開されている場所で、個人の判断で受け入れたりすることはもしかしたら作者が危険な状態になる可能性もあるのかもしれません。

また、Hacker News の議論では、そもそもアメリカ企業のGitHub はイランや北朝鮮からのアクセスを制限しているはずで、国籍による排除についてはどっちもどっちだ、という意見もありました。すべての機能が制限されているわけではないですが、利用規約を厳格に適用すると、イラン在住の作者の方が実はGitHub を使えないという可能性もあります。

GitHub については、他にシリアやクリミアからのアクセスも(IPアドレスによる位置情報らしきものを根拠に)ブロックしているという報道もあります。

今回はイスラエルとイスラム教国の間でしたが、世界が(再度)大きく2分されていく感じもある昨今、二大国の間で直接とか、それぞれの息のかかった国の間でとか、オープンソースとその貢献活動についても、面倒な事件がいろいろ出てくるようになるのかもしれません。そういった事とはなるべく距離を置きたいというエンジニアも多いのではと思いますが、普段パッチ提供者の国籍や居住地など気にすることもないでしょうし、誰もが突然こういった問題の当事者になってしまう可能性はありますね。