他のデベロッパーとの共同作業

Apps Script には、デベロッパーと他のデベロッパーがスクリプト、アドオン、ウェブアプリを共同で構築、保守できるいくつかの機能が用意されています。

コラボレーションの基本

プロジェクトで共同作業を行うには、自分と共同編集者が Apps Script プロジェクト ファイル(バインドされたスクリプトの場合は、そのコンテナ)に対する編集者のアクセス権を持っている必要があります。これにより、チームの全員が Apps Script コードを表示、変更できます。編集者は、新しいコード バージョンの作成、アドオンの公開、スクリプトをウェブアプリまたは Apps Script API の実行可能ファイルとしてデプロイすることもできます。

プロジェクト、アドオン、ウェブアプリのデプロイと公開の編集、レビュー、バージョニング、(該当する場合)の処理方法を計画することで、チームをサポートできます。スタンドアロン プロジェクトは、Google ドライブに直接表示され、アドオンやウェブアプリの開発に推奨されるプロジェクト タイプであるため、通常は共同作業が最も簡単です。

スクリプトのプロジェクト オーナーが、チームの他のメンバーにプロジェクトの所有権を譲渡せずにチームを離れた場合、共同作業でよく発生します。そのため、プロジェクトの管理や更新ができなくなる可能性があります。スクリプト プロジェクトを共有ドライブに配置すると、特定のファイルのオーナーが存在しないため、このような問題を回避できます。

clasp コマンドライン ツールとのコラボレーション

clasp を使用すると、script.google.com とローカル ファイル システムの間でプロジェクトを同期できます。これにより、デベロッパーと共同編集者が git などのソース管理管理ソフトウェアを使用している場合に、コード開発を効率化して自動化できます。

詳細については、clasp を使用したコマンドライン インターフェースのガイドをご覧ください。

共有ドライブとのコラボレーション

共有ドライブ(旧称「チームドライブ」)は Google ドライブ内の共有スペースです。この機能を使用すると、ドライブ ユーザー グループによるコラボレーションをより効率的に行えます。共有ドライブに配置されたファイルは、個人ではなくグループ全体が所有します。つまり、共同編集者がグループを離れても、そのユーザーがファイルの所有権を手にしたり、グループに対して制御したりすることはありません。

共有ドライブでは、ドメイン間でファイルを移動することもできます。あるドメインの共有ドライブには、別のドメインの共同編集者が、そのドメインから共有ドライブにファイルを移動できます。これは、Apps Script デベロッパーにとって、さまざまなドメインの顧客向けにアドオン、ウェブアプリ、その他のコードを開発する手段となるため、非常に有益です。

共有ドライブを使用して Apps Script プロジェクトで共同作業する場合は、次の点に注意してください。

  1. 共有ドライブの編集権限がある共同編集者は、共有ドライブに新しいファイルを作成、移動できます。スクリプト編集者は、スクリプト プロジェクトの表示と編集、スクリプト コードの実行、新しいスクリプト バージョンの作成、アドオンの公開を行うことができます。
  2. スクリプトを Apps Script API のウェブアプリまたは実行可能ファイルとしてデプロイするには、デプロイを作成するアカウントが、スクリプトが存在する共有ドライブと同じドメインに属している必要があります。
  3. 共有ドライブでは、共有ドライブ内の特定のファイルをグループ外のユーザーと共有し、他のドライブ ファイルと同様にファイルの編集権限と閲覧権限を更新できます。ただし、ユーザーが共有ドライブが属するチームに属している場合は、その特定のファイルへのアクセス権を減らすことはできません。たとえば、ユーザーが共有ドライブの編集権限を持っている場合、その共有ドライブ内の特定のファイルに対する表示専用権限に変更することはできません。
  4. 上述の操作に加えて、共有ドライブへの完全アクセス権を持つ共同編集者は、ファイルと Apps Script プロジェクトを削除し、共有ドライブからファイルを移動できます。
  5. すべてのコンテナにバインドされたスクリプトは、コンテナ ファイルで定義されているのと同じ閲覧者および編集者のアクセスリストを使用します。たとえば、Google スプレッドシートの編集権限がある場合は、そのスプレッドシートに接続している Apps Script プロジェクト コードの編集権限もあります。このようなコンテナ ファイルを共有ドライブに配置することで、共有ドライブの共同編集者はコンテナ自体の場合と同じスクリプト コードにアクセスできるようになります。
  6. スクリプト プロジェクトが共有ドライブにあると、その Cloud Platform(GCP)プロジェクトへのアクセスが制限されることがあります。詳しくは、GCP プロジェクトと共有ドライブ ガイドのセクションをご覧ください。
  7. あるドメインにデプロイされたウェブアプリは、別のドメインの共有ドライブやアカウントの所有権が変更されると機能しなくなります。この問題を解決するには、スクリプトを元のドメインに戻します。
  8. 同様に、Apps Script API 実行可能ファイルとしてデプロイされたスクリプト プロジェクトは、共有ドライブを介して別のドメインに移動すると、API によって呼び出されると機能しなくなります。この問題を解決するには、スクリプトを元のドメインに戻します。

プロジェクト共有との連携

プロジェクトをすべての共同編集者と直接共有して、プロジェクトの共同編集を行うこともできます。通常の Google ドライブ フォルダまたは共有ドライブにあるスクリプト プロジェクトを直接共有できます。この方法を使用する場合は、今後、誰がスクリプトを所有して維持するかを慎重に計画することをおすすめします。

Google ドライブにスタンドアロン プロジェクトがファイルとして表示され、他のファイルと同様に共有できます。詳しくは、ファイルとフォルダの共有をご覧ください。

コンテナにバインドされたプロジェクトは、Google ドライブには表示されません。コンテナ バインド プロジェクトを共有するには、親コンテナ ファイルを共有します。たとえば、Google スプレッドシートにバインドしているスクリプトがある場合、そのユーザーを Google スプレッドシートの編集者にすることで、スクリプトの編集者にすることができます。コンテナ ファイルの閲覧者と編集者のアクセス設定は、そのコンテナ内のすべてのプロジェクトに継承されます。

共同作業とプロジェクトのリソース

リソースは、プロジェクトに関連付けられ、そのコードとは独立して存在するエンティティです。このセクションでは、プロジェクトの共同編集によってそのリソース、特に Cloud Platform プロジェクト、トリガー、ライブラリ、ユーザー プロパティにどのように影響するかについて説明します。

コラボレーション プロジェクトと Cloud Platform プロジェクト

すべての Apps Script プロジェクトには、Cloud Platform(GCP)プロジェクトが関連付けられています。GCP プロジェクトには、独自のオーナー、編集者、その他のロールのセットがあり、スクリプト プロジェクトにアクセスできるユーザーセットとは異なる場合があります。

スクリプト プロジェクトがアドオンとして公開される場合は、標準の GCP プロジェクトを使用する必要があります。標準の GCP プロジェクトを使用するアプリケーションで共同作業を行う場合は、すべての共同編集者に適切なアクセスレベルが付与されるように、GCP のオーナーとロールを構成することをおすすめします。これにより、そのプロジェクトのオーナーが組織から離れているため、プロジェクトの Cloud 設定にアクセスできなくなる状況を回避できます。これは、アドオンにとって特に重要です。

コラボレーションとトリガー

プロジェクトで共同作業を行う場合、作成したインストール可能なトリガーは、プロジェクトへのアクセス権を持つユーザーと共有されません。すべての共同編集者に対して一貫したトリガー設定が必要になった場合、スクリプト サービスを使用して、実行時にプログラムによってトリガーを作成できます。詳細については、プログラムでトリガーを管理するをご覧ください。

コラボレーションとライブラリ

プロジェクトに含まれるライブラリは、プロジェクトの共同編集者が利用できます。ただし、含まれているライブラリに対する読み取りレベルのアクセス権がないと、それらのライブラリを使用できません。この場合、スクリプトはエラーをスローします。ライブラリの詳細については、ライブラリの管理をご覧ください。

コラボレーション プロパティとユーザー プロパティ

ユーザー プロパティは、作成したユーザーに固有のプロパティです。つまり、プロジェクトの共同編集者はユーザー プロパティの表示やアクセスができず、ユーザー プロパティの閲覧もアクセスもできません。プロジェクト固有のプロパティを共同編集者と共有する場合は、スクリプト プロパティを使用します。詳細については、プロパティ ガイドをご覧ください。