本文へ移動
Develop Tools
← 使い方ガイドへ戻る

RubyコードをAIへ安全に貼る方法|APIキー・URL・クラス名をマスキング

SyntaxError、NoMethodError、Rails Errorを相談するときは、再現に必要なRuby構造と外部へ出せないProject情報を分けます。

RubyコードからSecretとProject固有識別子を隠してAIへ共有する流れ
RubyコードからSecretとProject固有識別子を隠してAIへ共有する流れ

Rubyコードをブラウザ内でマスキングする

Class・Method・識別子・値・Commentを選び、Ruby構文を残した共有用コピーを作成できます。入力SourceはDevelop Toolsのサーバーへ送信・保存されません。

Rubyコードマスキングツールを開く

結論

API Key、Token、Private URL、Class名、Method名、Commentを確認し、Ruby構文とException Contextを残した共有用コピーを作ります。

共有前に危険な情報と調査Contextを分ける

class InternalCustomerService
  API_TOKEN = "dummy-secret"

  def fetch_customer(customer_id:)
    URI("https://internal.example.test/users/#{customer_id}")
  end
end
残す候補隠す候補
class・def・Keyword ArgumentProject Class・Method・Constant
URI、Net::HTTP、Exception TypeToken、内部URL、Customer ID
分岐・Block・PatternComment、File Path、組織名

Rubyコードマスキングツールで確認する手順

  • 1. 相談に必要な最小範囲を別Copyへ切り出します。
  • 2. クラス・型、メソッド、識別子、値、コメントを選択します。
  • 3. Ruby構文とFramework APIを比較します。
  • 4. 右クリックで必要語だけ戻し、結果だけ共有します。

見落としを防ぐ確認表

分類確認対象
認証API Key、Token、Password
接続Host、Path ID、Database URL
識別子Class、Module、Method、Variable
周辺Comment、Log、Backtrace、File Path

Ruby固有構文を壊していないか確認する

  • class・module・defの宣言と参照、Namespace、Method末尾の?・!が対応しているか
  • Keyword Argument、*args、**kwargs、&block、...、do ... end、Brace Blockが残っているか
  • _1・_2・itが別識別子へ変換されていないか。使用中なら右クリックで戻すか識別子を対象外にしたか
  • String・Symbol・Heredoc・Percent Literal・Regexpの区切りは残っているか。InterpolationとPatternは必要に応じてDummyへ手動再構成したか
  • case / in、Rightward Assignment、deconstruct・deconstruct_keys、Endless Method等を対象Ruby Versionで確認したか
  • send・public_send・define_method・const_get等の動的参照が宣言と同じDummy名になっているか

現行ツールは`_1`・`it`、動的Symbol参照、String Interpolation、Rails DSLを意味解析しません。該当箇所は出力を手動で揃えてください。

AI・Issue・Chatへ共有する前の最終チェック

  • API Key、Access Token、Password、Authorization、DATABASE_URL、Cookieを検索する
  • 内部Host、URL、Email、IP Address、Customer ID、File Path、Project名を確認する
  • Class、Module、Constant、Method、Instance Variable、Symbol、Hash Key、Commentから組織を推測できないか確認する
  • Rails CredentialsのKey、ENV名、Private Gem、Git URL、Route、Log、Backtraceも別々に確認する
  • Ruby/RailsのVersion、Exception Type、Line Number、Framework API等の調査Contextが残っているか比較する
  • 共有するのはマスキング結果だけにし、元Sourceと対応情報は権限管理された場所に残す

Secret管理とマスキングは別の対策です。Hard-codeしたSecretは共有前に隠すだけでなく、失効・再発行と管理方式の見直しも行ってください。

現在のRubyコードマスキングツールでできること・できないこと

確認項目現在の対応注意点
入力Rubyテキストの貼り付け.rb・Gemfile・Rakefile・.rakeの直接読込やDownloadは行わない
基本構文class、module、def、終端なしMethod、Variable、Commentを分類Ruby Parserと同等の完全な構文解析やVersion自動判定ではない
引数通常引数、Keyword Label、*・**・&・...の記号を保持複雑な分割代入やRuby Version差は実行環境で確認が必要
Blockdo ... endとBraceを文字列上で保持Brace Block専用Scope解析は行わず、_1・_2・itは自動保護しない
LiteralString、Symbol、Regexp、Percent Literal、Heredocの区切りを保持本文を値へ置換するためInterpolationやRegexpの意味は保持しない
動的参照send、public_send、define_method等の構文を処理Symbol・StringとMethod宣言のMappingは自動同期しない
Rails貼り付けたRailsコードをRubyとして処理Rails DSL、Framework Constant、ERB、Routeを専用解析しない
出力結果コピー、全消去、結果側の右クリックによる個別解除Mapping一覧、複数File横断Mapping、履歴保存は行わない
保存表示設定だけをLocalStorageへ保存入力Source・結果・MappingはLocalStorageへ保存しない
プライバシー入力と変換をブラウザ内で処理Sourceと結果をDevelop Toolsのサーバーへ送信・保存しない

マスキング結果は共有用コピーです。ruby -c、RSpec、Rails Test、RuboCop、実行環境での確認を代替しません。

Ruby・Railsの一次資料で仕様を確認する

RubyのSyntaxとRailsのCredentials・Log FilterはVersionにより変化します。記事の例だけで断定せず、利用中のRuby・Rails Versionの公式Documentationと実行結果を確認してください。

具体例:Ruby ErrorをAIへ質問

API Key、Token、Private URL、Class名、Method名、Commentを確認し、Ruby構文とException Contextを残した共有用コピーを作ります。

実Token、実顧客情報、内部URLではなくexample.test等のDummy Dataを使い、問題を再現する最小範囲で確認します。

  1. 最小再現Codeを別Copyへ切り出す
  2. 識別子・値・Commentをマスキングする
  3. Ruby固有構文と動的参照を比較する
  4. マスキング結果だけを共有する

結果側の匿名箇所は右クリックで個別解除できます。解除した元情報が本当に共有に必要か、送信前に再確認してください。

よくある質問

.rb・Gemfile・Rakefileを直接読み込めますか?
直接読込には対応していません。必要なRuby Textを入力欄へ貼り付けます。Gemfile、Rakefile、.rake相当もTextとして処理しますが、File種別専用Parserではありません。
ERB、_1・it、sendのSymbolも自動で安全に対応しますか?
保証しません。ERBのHTML混在、_1・it、動的なSymbol・String参照、Interpolationは手動確認が必要です。必要な箇所は右クリックで戻すかDummy名へ揃えます。
入力したRuby Sourceはサーバーへ送信されますか?
入力とマスキング結果はブラウザ内で処理され、Develop Toolsのサーバーへ送信・保存されません。LocalStorageへ保存されるのは表示設定だけです。