# 企業での innersource の使用

セキュリティを損なうことなく、企業でオープンソーススタイルのワークフローを設定することで、分散したチームの共同作業を支援します。

innersource プラクティスを使用して、企業でのコラボレーションと生産性を促進できます。 Innersource を使用すると、すべての従業員が作業を簡単に見つけて再利用できます。 これにより、開発チームは互いの作業から学び、専門知識を共有し、一般的なサービスを再作成する作業の重複を回避できます。

## リポジトリを検出可能にする

機密情報が含まれている場合を除き、リポジトリをすべての従業員に表示することを目指す必要があります。

これを行うには、可能な限り **社内** の可視性を使用するよう従業員に勧めます。 内部可視性を使用すると、ユーザーがリポジトリを所有する組織のメンバーであるかどうかに関係なく、企業内の任意の組織のすべてのメンバーがリポジトリを表示できます。

また、組織に対して制限の緩やかな **基本アクセス許可** を設定する必要があります。 組織の基本アクセス許可ポリシーは、その組織のメンバーが組織のすべてのリポジトリに対して持つ既定のアクセス レベルを決定します。 一般に、すべての組織メンバーが任意のリポジトリを表示できるように、組織には少なくとも "読み取り" 基本アクセス許可が必要です。 その後、組織の所有者はチームを使用して、特定のリポジトリでより高いレベルのアクセス権をユーザーに付与できます。

広く表示すべきではない機密性の高いリポジトリがある場合は、より制限の厳しい基本アクセス許可を持つ専用の組織を設定し、この組織に特定のチームを追加できます。

詳細については、「[リポジトリについて](/ja/enterprise-server@3.22/repositories/creating-and-managing-repositories/about-repositories#about-internal-repositories)」および「[Organization の基本レベルの権限の設定](/ja/enterprise-server@3.22/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/setting-base-permissions-for-an-organization)」を参照してください。

## ドキュメント プロジェクト

企業全体で作業を検索できるように、リポジトリを整理して文書化します。

リポジトリ **READM は** リポジトリ内のファイルで定義されているため、ユーザーはコードのように検索できるため、有効です。 また、組織またはエンタープライズ アカウントのレベルで READM を作成して、さまざまなプロジェクトを検索する場所のより高いレベルの概要を提供することもできます。 より正式な内部ドキュメントについては、 **GitHub Pages サイト** または **Wiki を**設定することを検討してください。

**リポジトリ トピック**を使用して、特定のプログラミング言語を含むリポジトリ、特定のチームが所有するリポジトリなどをグループ化できます。 これは、リポジトリを見つけやすくするもう 1 つの方法です。

詳細については、以下を参照してください:

* [リポジトリの README ファイルについて](/ja/enterprise-server@3.22/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-readmes)、 [Organizationのプロフィールのカスタマイズ](/ja/enterprise-server@3.22/organizations/collaborating-with-groups-in-organizations/customizing-your-organizations-profile#adding-a-member-only-organization-profile-readme)、 [企業向けREADMEの作成](/ja/enterprise-server@3.22/admin/managing-your-enterprise-account/creating-a-readme-for-an-enterprise)
* [GitHub ページ サイトの作成](/ja/enterprise-server@3.22/pages/getting-started-with-github-pages/creating-a-github-pages-site)
* [ウィキページを追加または編集する](/ja/enterprise-server@3.22/communities/documenting-your-project-with-wikis/adding-or-editing-wiki-pages)
* [トピックでリポジトリを分類する](/ja/enterprise-server@3.22/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/classifying-your-repository-with-topics)

## 作業を共有するためのカルチャを設定する

チームが自分の作業を公開し、リソースを他のチームと共有するよう奨励します。
GitHub には、これを簡単にする機能が多数用意されています。 たとえば、チームは次のことができます。

* **ディスカッションを**使用して、他のチームに作業をより見えるようにします。 「[ディスカッションに参加する](/ja/enterprise-server@3.22/discussions/collaborating-with-your-community-using-discussions/participating-in-a-discussion#creating-a-discussion)」を参照してください。
* **アクションと再利用可能なGitHub Actionsワークフロー**を共有するための専用の内部リポジトリを作成します。このリポジトリは、企業内でワークフローを記述するときに誰でも参照できます。 「[アクションとワークフローを企業と共有する](/ja/enterprise-server@3.22/actions/how-tos/reuse-automations/share-with-your-enterprise)」を参照してください。
* 内部パッケージ内の再利用可能なコードを **GitHub Packages** レジストリと共有します。 セキュリティを強化するために、 GitHubのセキュリティ機能にこれらのレジストリへのアクセス権を付与できます。 「[GitHub Packages の概要](/ja/enterprise-server@3.22/packages/learn-github-packages/introduction-to-github-packages)」を参照してください。
* 共通のテンプレートとフレームワークを **テンプレート リポジトリ** として設定し、他のユーザーがコピーしてプロジェクトを開始できるようにします。 「[テンプレートリポジトリを作成する](/ja/enterprise-server@3.22/repositories/creating-and-managing-repositories/creating-a-template-repository)」を参照してください。

オープン ソース プロジェクトと同様に、共有プロジェクトには、サポート モデルと明確に定義されたメンテナーのチーム (特に企業の多くの部分が依存するサービス) があることを確認する必要があります。 理想的には、保守チームには、サービスを使用するさまざまなチームの代表者が含まれます。

## 外部コラボレーターからコンテンツを非表示にする

企業のプロジェクトにアクセスする必要がある外部の請負業者またはコラボレーターがいる場合は、通常の従業員とは異なるレベルのアクセス権を付与できます。

具体的には、外部コラボレーターから内部リポジトリを非表示にすることができます。 これを行うには、次の手順を実行します。

* Enterprise Managed Usersを使用する場合は、**ゲスト コラボレーター** ロールを持つユーザーのアカウントをプロビジョニングします。 ゲストコラボレーターは、既定では内部リポジトリにアクセスできませんが、メンバーとして追加される組織では基本アクセス許可を受け取ります。 リポジトリのコラボレーターとしてリポジトリに追加することもできます。
* Enterprise Managed Usersを使用しない場合は、必要なリポジトリに**外部コラボレーター**としてユーザーを追加しますが、組織のメンバーとして追加されていないことを確認します。

外部コラボレーター (\*\*\*\* を使用する場合はEnterprise Managed Usersと呼ばれます) は、特定のリポジトリにのみアクセスできます。 これらのユーザーは完全な組織メンバーではないため、組織の基本レベルのアクセス権を受け取らず、別の組織のメンバーでない限り、社内の内部リポジトリを自動的に表示することはできません。

詳細については、[外部のコラボレータを Organization のリポジトリに追加する](/ja/enterprise-server@3.22/organizations/managing-user-access-to-your-organizations-repositories/managing-outside-collaborators/adding-outside-collaborators-to-repositories-in-your-organization) を参照してください。