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

Google Apps Script には、チームがスクリプト、Google Workspace アドオン、ウェブアプリを共同で構築、保守するのに役立つ機能が用意されています。このガイドでは、複数のデベロッパーによるプロジェクトでのアクティブなコラボレーションについて説明します。他のユーザーが自分のプロジェクトに含めるコードを共有する場合は、ライブラリ ガイドをご覧ください。

コラボレーションの基本

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

プロジェクト、アドオン、ウェブアプリの編集、レビュー、バージョン管理、(該当する場合)デプロイと公開をどのように処理するかを事前に計画します。スタンドアロン プロジェクトは、通常、共同作業が最も簡単です。Google ドライブに直接表示され、アドオンとウェブアプリの開発に推奨されるプロジェクト タイプです。

コラボレーションでよくある問題は、スクリプト プロジェクトのオーナーが、プロジェクトの所有権をチームの他のメンバーに譲渡せずにチームを離れることです。これにより、プロジェクトのメンテナンスや更新ができなくなる可能性があります。スクリプト プロジェクトを共有ドライブに配置すると、共有ドライブ内のファイルには特定のオーナーが存在しないため、この問題を回避できます。

スクリプト プロジェクトの所有権は常に共有します。組織を離れたユーザーのアカウントが削除されると、他のオーナーがいないスクリプトへのアクセス権が失われます。Google ドライブでスクリプトを共有するか、共有ドライブに移動する

clasp コマンドライン ツールで共同作業を行う

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

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

共有ドライブで共同編集する

共有ドライブは、Google Workspace BusinessGoogle Workspace Enterprise をご利用のお客様のみが使用できます。

共有ドライブは、ドライブ ユーザーのグループがより効果的に共同作業を行えるように、ドライブ内に共有スペースを提供するものです。共有ドライブに配置されたファイルは、個人ではなくグループ全体が所有します。つまり、共同編集者がグループから離脱しても、ファイルの所有権と制御権限はそのまま残ります。

共有ドライブでは、ドメイン間でファイルを移動することもできます。あるドメインの共有ドライブに別のドメインの共同編集者がいる場合、そのドメインから共有ドライブにファイルを移動できます。これにより、チームはさまざまなドメインの顧客向けにアドオン、ウェブアプリ、その他のコードを開発できます。

共有ドライブを使用して Apps Script プロジェクトで共同作業を行う場合:

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

共有フォルダで共同編集する

Apps Script プロジェクトを作成したり、共有フォルダに移動したりする場合は、注意してください。フォルダは信頼できるユーザーとのみ共有してください。

共有ドライブで共同編集できない場合は、共有フォルダを使用してください。Apps Script プロジェクトを作成するか、他のユーザーがアクセスできるドライブ フォルダに移動すると、そのユーザーはフォルダに対して持っているのと同じアクセス権を Apps Script プロジェクトに対して継承します。次に例を示します。

  • フォルダの編集権限を持つユーザーは、Apps Script プロジェクトの編集や削除、スクリプトの実行を行うことができます。
  • フォルダの閲覧権限のみが付与されているユーザーは、Apps Script プロジェクトを表示してスクリプトを実行できます。

プロジェクトの共有で共同編集する

プロジェクトをすべての共同編集者と直接共有して、プロジェクトで共同作業します。通常のドライブ フォルダまたは共有ドライブにあるスクリプト プロジェクトを直接共有します。スクリプトの所有者と保守担当者を慎重に計画します。

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

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

コンテナにバインドされたすべてのスクリプトは、コンテナ ファイルに定義された同じ所有者、閲覧者、編集者のアクセスリストを使用します。コンテナ オーナーは、作成者に関係なく、新しいスクリプト プロジェクトの所有権を取得します。

コラボレーションとプロジェクト リソース

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

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

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

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

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

共同編集者。

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

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

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

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