GitHubリポジトリオーナー: Gitの--authorフラグを使ってAIボットスパムをブロックせよ

Archestra(AIプラットフォームのスタートアップ)のチームは、AIボットのスパムに悩まされていました。たった1つのバウンティIssueに253件のコメント、1つの機能に対して27件のPRが送られ、そのどれもテストされておらず、毎週のクリーンアップに半日かかっていました。彼らのリポジトリは、真のコントリビューターにとって敵対的なものになっていました。彼らはホワイトリストを必要としていましたが、GitHubはパブリックリポジトリに対してネイティブにサポートしていません。彼らの巧妙なハック:Limit to prior contributors設定とGitの--authorフラグを悪用する方法です。
問題:GitHubにおけるAIスラップロッジ
ボットは無限の「実装計画」や攻撃的な返信を生成していました。@ethanwater、@developerfred、@Geetk172のような真のコントリビューターは無視されていました。彼らの最初の試みである「London-Cat」というレピュテーションボットでさえ、スパムを止めることはできませんでした。「AI保安官」ボットは正当なPRを閉じてしまいました。唯一の本当の解決策は、人間による検証の後ろにコントリビューションをゲートすることでした。
ホワイトリストハックの仕組み
GitHubの「過去のコントリビューターのみ」設定は、mainブランチにコミットを投稿したことがない人をブロックします。しかし、Gitコミットにはauthorとcommitterという2つのIDフィールドがあります。--authorを使うと、コミットを他人に帰属させることができます。GitHubは、メールアドレスが対象ユーザーのGitHub noreplyメール(<id>+<username>@users.noreply.github.com)と一致すれば、そのユーザーにコントリビューターステータスを付与します。
# ユーザーのGitHub IDを調べる
gh api users /their-username --jq '.id'
# そのユーザー名でコミット(メール = [email protected])
git commit \
--author="their-username <[email protected]>" \
-m "chore: add their-username to external contributors"
mainにプッシュすると、そのユーザーはすぐにコメント、Issueの作成、PRの提出ができるようになります。コミットは外部ユーザーを作者として表示し、あなたのアカウントがコミッターとして表示されます。これでGitHubはそのユーザーを「過去のコントリビューター」とみなすのに十分です。
完全なオンボーディングフロー
- ユーザーがarchestra.ai/contributor-onboardにアクセスし、CAPTCHAを完了し、倫理的なAIルールに同意します。
- フォーム送信時にGitHub Actionが起動し、API経由でユーザーのGitHub IDを調べ、そのハンドルを
EXTERNAL_CONTRIBUTORS.mdファイルに追加します。 - アクションは、外部ユーザーを作者としてコミットを
mainにプッシュし、即座にコントリビューターステータスを付与します。
これは、GitHubのアクティビティを測定するVC支援のスタートアップにとっては究極の選択ですが、品質は虚飾の指標に勝りました。
ハッキーですが、機能します。サードパーティのスパムフィルターは不要です。GitのIDフィールドと2段階の検証フローを賢く利用しただけです。
📖 全文を読む: HN AI Agents
👀 See Also

プロキシレイヤーでClaude Coworkを安全に保護する方法:実践ガイド
Claude Coworkの動作を監視・保護するためのプロキシレイヤー設定のチュートリアル。General Analysisチームが公開。

AI駆動開発のためのOpenClawを用いた契約テスト
OpenClawのようなAIエージェントを使用する際、契約テストは統合テストやE2Eテストの代わりとなり、コンポーネント間のインターフェースと不変条件に焦点を当てます。AIは決定論的な契約を満たすコードを生成し、迅速な反復のための緊密なフィードバックループを実現します。

ガイド:Lemonadeサーバーを介してWindowsでローカルLLMとGitHub Copilotを実行する方法
ある開発者が、Framework DesktopでLemonade Serverを使用してGitHub CopilotをローカルLLMと連携させるための手順を公開しました。これは、Windowsでのこの設定に関する簡単な手順が見つからなかったため作成されました。

AIエージェントのためのCLIデザインパターン:誤解と実践的アプローチ
Redditの投稿では、エージェント向けCLIは実際のシェルではなく、テキストコマンドインターフェースプロトコルを意味すると説明され、Unixスタイルのヘルプ、ヒント思考、ドライランによるプレビューや人間による承認などの安全機構を含む、エージェントに適したCLI設計原則が概説されています。