1

私たちの git リポジトリには通常、ウェブサイトとサービス全体のコードが含まれています。これには、マーケティング、法律、UI などの入念に表現されたすべてのテキストが含まれます。

基本的に、不正な開発者がそれを複製し、いくつかの変更を加えて、私たちの競争相手になる可能性があります (法的な問題は別として)。あるいは、許可なくポートフォリオに他人の作品を自分の作品として含めることがよくあります。場合によっては、これにより、まだ公開したくない機能が早期に開示されることになります。

いずれにせよ、これはリスクとして認識されています。なぜなら、私たちは世界中の開発者と時折作業しており、開発者が作業するコード ベース全体へのアクセスを許可するために、さらに多くの開発者をすぐに追加する必要があるからです。

この問題に遭遇したことがありますか? または、同様のリスクを軽減または軽減するためのソリューションを実装しましたか?

考えられる戦略の 1 つは、異なる目的 (ブランチではなく) で 3 つの個別の git リポジトリを作成することですが、次のようなものです。

Git リポジトリ: Project1_DEVELOPERS

$git branch
master
dev
issue_feature1
issue_feature2
etc..

上記のワークフロー: 基本的に課題/機能ブランチ スタイルです。開発者はタスクを委任され、課題/機能ブランチとしてチェックアウトします。完了すると、そのブランチ & マージ リクエストを dev ブランチに送信します。分岐をテストし、OK の場合は dev にマージします。

上記は、基本的に今日のやり方です。それでおしまい。レポ全体は、世界に公開されると「マスター」にあります。

しかし、指定された目標を達成するために、次のようなものを追加することを考えています...

Git リポジトリ: Project1_OBFUSCATE

$git branch
strips_and_swaps (for sending to DEVELOPERS repo)
prod_patches (the patches to make it "whole" again)
prod_master (branch that PRODUCTION repo pulls into its master branch?)

そして本番レポ...

Git リポジトリ: Project1_PRODUCTION

$git branch
master

問題のコンテンツに関する限り、単純な Web ページをリポジトリとして想像してみてください。

.git
index.html
logo.png

したがって、私の目標は、「DEVELOPERS」リポジトリにあるブランチからダミーのロゴを使用して、本物/偽の「logo.png」を削除またはパッチすることです。

実際には、logo.png だけではなく、一連の .blade ファイル (Laravel) の .twig ファイル、またはアクセスを制限したいコンテンツ ビットを含む可能性のある任意のテンプレート ファイルである可能性があります。場合によっては、ファイルが「OBFUSCATE」リモートにのみ存在する可能性があります。

洞察を共有する可能性のある、これに似たようなことをした人はいますか?

私が提案している方法でこれを行うことを考えると頭が痛くなり、うまくいかないかもしれません:)

4

1 に答える 1

3

ベスト プラクティスは、可能であれば、すべてを 1 つの巨大なリポジトリに保持するのではなく、独自の Git リポジトリに機密情報を分離することです。

他のすべてのリポジトリをサブモジュールとして参照する親リポジトリを使用することで、グローバルな全体像を把握できます。

ただし、機密データが 1 つのリポジトリにある場合は、アクセスに関してそれを保護できます。
これは、ブランチを保護したり (プルではなくプッシュから保護できます。つまり、ブランチのコンテンツに引き続きアクセスできます)、リモート URL を難読化したりするよりも簡単です。

于 2015-07-11T07:02:26.597 に答える