2017-03-07 11 views
0

プライベートGitリポジトリにノード依存関係のプロジェクトがあります。私はパスワードを入力するか、またはSSH接続を許可するように求めるメッセージが表示されることなく、npm installを実行できるようにする必要がありますので、私は、私は私のpackage.jsonでGitHubの上で作成されたアクセストークンを使用しています:プライベートリポジトリへの読み取り専用アクセスを持つGitHubアクセストークン

"dependencies": { 
    "sass-theme": "git+https://[token]:[email protected]/MyOrg/sass-theme.git#v1.0.2", 
    "node-sass": "^4.5.0" 
    } 

このプロジェクトがあります何十人もの他の人と共有していますので、明らかに私のトークンをソース管理のままにしたくありません。私はGitHubで読み取り専用のデプロイメントキーを作成することができますが、他の開発者にはプロジェクトをローカルにビルドするためにSSHキーをインポートする必要があると思います。

共有できるアクセストークンを作成することはできますが、リポジトリを複製するための読み取り専用アクセス権はありますか?

+0

関連するhttp://stackoverflow.com/questions/42634896/maven-build-step-to-install-node-package-from-private-repository –

答えて

2

のみ与えられたプライベートレポ (および理想的に読み取りアクセス権を持つユーザーを持って、私は民間レポへの読み取り専用アクセスを提供してトークンを作成すると考えることができる最も簡単な方法は

  1. にありますそのユーザーとして
  2. は/彼らは他のレポを持っていませんでした場合、ユーザはそれが最善だろう

「レポ」の範囲内で個人認証トークンを作成することを持ってはいるので、他のORGS /レポのためにアクセスする)他、あまりありませんそのスコープは本質的にtユーザーが制御するレポを完全に制御できます。

私はエンタープライズソリューションでシステムIDを使用している可能性があることを知っていますが、github.comで実際に利用できるユーザーアカウントのタイプはわかりませんが、まず利用規約を確認します。そして、あなたはいくつかのオプションを持っているあなたはそれがあなたのソースコードで資格情報を置くことは悪いアイデアだと思うなら

+1

これはかなり簡単です。組み合わせて、キーを含む各開発者のマシンに環境変数を設定する必要があるかもしれません(ソース管理から外すため)。 –

+0

このトークンは貢献者として追加した他のプロジェクトにいたずらをする可能性があり、本質的にトークンでログインできるためです。 –

1

(あなたが必要として!):

  1. は、それがプライベートGitHubのレポでホストしてくださいが、それらの数十を追加しますこのリポジトリへの共同作業者としての他のユーザーのアクセス権(読み取り専用アクセス権)

  2. プライベートGitHubリポジトリにホストされているが、組織として所有されていて、それらの人々を組織に追加する。

  3. プライベートnpmモジュールとして公開します。

  4. プライベートnpmレジストリに公開します。

  5. それを必要とするプログラムのソースコードに依存関係を含めます。

最後のものは、基本的には、もちろん、それはかなりありませんので、そのモジュールを使用して、元のコードでnode_modulesを含むようなものです。あなた自身のnpmレジストリをホストすることは簡単なことではありませんが、あなたはそのようにユーザを追加することを自動化できます。プライベートnpmモジュールの公開は無料ではありません。あなたのレポにアクセスできるはずの組織を維持することは迷惑です。

1つのことを心に留めておきます。複数の人物と資格情報を共有する場合、最終的に誰もがその資格情報にアクセスできることを期待してください。資格情報には範囲が限定されている可能性があります。読み取り専用の展開キーまたはアクセスが制限されたマシンユーザーになる可能性がありますが、分散されていると、特にそれを数十人と共有すると、コードにアクセスできる人のリストを保持する方がずっといいですし、GitHub APIを使ってそのリストを最新の状態に保つことができます。

資格情報のアクセスが制限されていても、プロジェクトのソースコードに資格情報を配布することは決してお勧めしません。

+0

1)共同作業者であっても、パスワードの入力やSSH接続の許可が求められます。私は可能ならばそれを避けたいと思います。 2)これは現在設定されている方法です。 1を参照してください。3-5)あなたはすでにこれらのどれも理想的ではないと私は同意します。 –

関連する問題