第5章 仕事で使えるGitHub運用にする
想定学習時間: 7分
GitHubを業務で利用する際、リポジトリを公開するか非公開にするかの判断は非常に重要です。この選択を曖昧なまま進めると、後で予期せぬ問題につながる可能性があります。
GitHubには、公開リポジトリと非公開リポジトリの2種類があります。それぞれの特性を理解し、目的に応じて適切に使い分けることが、安全かつ効果的なGitHub運用の土台となります。
公開リポジトリは、インターネット上の誰でもアクセスし、内容を見ることができるリポジトリです。見せること自体に意味があるコンテンツの管理に適しています。
例えば、AIに作らせたポートフォリオサイトを公開リポジトリにし、GitHub Pagesで表示できるようにすることで、あなたのスキルや実績をアピールする場として活用できます。
公開リポジトリは、あなたのスキルや実績をアピールする場にもなります。しかし、見せ方には注意が必要です。
公開リポジトリに置いたものは、基本的に「外から見られる可能性がある」と考え、公開できる状態に整えることが大切です。
非公開リポジトリは、許可されたユーザーのみがアクセスし、内容を見ることができるリポジトリです。外部に見せるべきではない機密性の高いコンテンツの管理に適しています。
受託制作の案件など、仕事で扱うリポジトリは、まず非公開にするのが安全です。コード自体がシンプルでも、会社名、住所、電話番号、メールアドレス、サービス内容、キャンペーン名、計測タグなどの案件情報が含まれる可能性があるためです。
非公開リポジトリであっても、APIキー、パスワード、データベース接続情報、顧客データ、個人情報といった秘密情報を直接リポジトリに含めることは避けるべきです。
一度コミットされた情報は、ファイルを削除してもコミット履歴に残る可能性があります。そのため、最初から含めない習慣をつけましょう。AIが生成したコードにサンプルのAPIキーが含まれている場合も、本物のキーをそのまま貼り付けてコミットしないよう注意が必要です。
秘密情報を扱う際は、環境変数やGitHub ActionsのSecretsなど、より安全な方法を検討してください。少なくとも、以下のルールを覚えておきましょう。
.envのような設定ファイルをそのままコミットしない(.gitignoreで管理)。リポジトリを公開するか非公開にするかだけでなく、「誰に見せるためのリポジトリか」という視点も重要です。閲覧者によって、READMEの書き方や情報の公開範囲が変わります。
GitHubは単なるコードの保管場所ではなく、見せ方を含めて設計する場所です。
AIが短時間で大量のコードを生成できるようになったことで、リポジトリへのアップロードも気軽になりがちです。しかし、AIが生成したコードには、サンプルの会社名、仮のメールアドレス、不要なライブラリ、存在しない機能の記述などが含まれている可能性があります。
公開リポジトリにアップロードする前には、AI生成物を必ず人間がレビューし、内容を確認する習慣をつけましょう。
公開リポジトリには、あなたのコードを他の人がどのように利用できるかを明確にするためのライセンスを設定することも検討しましょう。ライセンスがない場合、他の人がコードをどのように扱ってよいか判断に迷うことがあります。
非公開リポジトリでは、誰がリポジトリにアクセスできるか、どのような権限を持つかを適切に管理する権限管理が不可欠です。退職者や外注終了者の権限は速やかに削除し、一時的な共有のまま放置しないようにしてください。
公開リポジトリにするか迷った際は、以下の質問を自分に問いかけてみてください。
これらの質問に自信を持って答えられない場合は、まず非公開にしておくのが安全です。後から公開用に整えて公開することはできますが、最初から公開して事故を起こすより、非公開から始めるほうが安全です。
原則として、仕事で扱うリポジトリは非公開から始め、クライアントの許可なく公開しないようにしましょう。 実績として見せたい場合は、許可を得るか、別途架空のサンプルを作成する運用が推奨されます。
GitHubは、あなたの制作物を広げる力と、関係者だけで安全に進める力の両方を持っています。この二つの力を目的に合わせて使い分けることが、GitHubマスターへの第一歩です。
人にたとえると
ある会社の情報管理部門での資料保管を想像してみましょう。
この部門では、資料を保管する場所が二つあります。一つは「一般公開資料室」で、会社のPR資料など、誰でも自由に見られるように置かれています。もう一つは「関係者専用書庫」で、鍵がかかっており、特定の社員しか入室できません。ここには顧客情報や開発中の企画書といった社外秘の資料が厳重に保管されています。資料を置く担当者は、その資料が誰に見られても問題ないか、あるいは特定の人にだけ見せるべきかを判断し、適切な場所に保管します。書庫に入れる資料については、誰が閲覧できるかを管理する仕組みが整えられています。