Google Apps Script には、チームがスクリプト、Google Workspace アドオン、ウェブアプリを共同で構築、管理するのに役立つ機能が用意されています。このガイドでは、複数のデベロッパーがプロジェクトで共同作業を行う方法について説明します。他のユーザーが自分のプロジェクトに組み込むためのコードを共有する場合は、ライブラリガイドをご覧ください。
コラボレーションの基本
プロジェクトで共同作業を行うには、あなたと共同作業者全員が Apps Script プロジェクト ファイル(バインドされたスクリプトの場合はそのコンテナ)に対する編集権限を持っている必要があります。これにより、チームの全員が Apps Script コードを表示して変更できるようになります。編集者は、新しいコード バージョンを作成したり、アドオンを公開したり、スクリプトをウェブアプリとしてデプロイしたり、Apps Script APIの実行可能ファイルとしてデプロイしたりすることもできます。
プロジェクト、アドオン、ウェブアプリの編集、レビュー、バージョン管理、デプロイ、公開(該当する場合)をどのように処理するかを事前に計画します。スタンドアロン プロジェクトは通常、Google ドライブに直接表示され、アドオンとウェブアプリの開発に推奨されるプロジェクト タイプであるため、共同作業が最も簡単です。
共同作業でよくある問題は、スクリプト プロジェクトのオーナーが、プロジェクトのオーナー権限をチームの他のメンバーに譲渡せずにチームを離れることです。 これにより、プロジェクトを維持または更新できなくなる可能性があります。共有ドライブ内のファイルには特定のオーナーがいないため、スクリプト プロジェクトを共有ドライブに配置すると、この問題を回避できます。
スクリプト プロジェクトのオーナー権限は常に共有してください。組織を離れるユーザーのアカウントが削除されると、他のオーナーがいないスクリプトにアクセスできなくなります。 スクリプトをドライブで共有するか、 共有ドライブに移動してください。
clasp コマンドライン ツールで共同作業を行う
clasp を使用すると、script.google.com とローカル ファイル システム間でプロジェクトを同期できます。あなたと共同作業者が git などのソース管理ソフトウェアを使用している場合は、コード開発を効率化して自動化できます。
詳細については、コマンドライン インターフェース
を使用したclaspガイドをご覧ください。
共有ドライブで共同作業を行う
共有ドライブは、 Google Workspace Business と Google Workspace Enterprise のお客様のみがご利用いただけます。
共有ドライブは、 ドライブ ユーザーのグループがより 効果的に共同作業できる共有スペースをドライブに提供します。共有ドライブに配置されたファイルは、個人ではなくグループ全体が所有します。つまり、共同作業者がグループを離れても、ファイルのオーナー権限と管理権限は引き継がれません。
共有ドライブでは、ドメイン間でファイルを移動することもできます。あるドメインの共有ドライブに、別のドメインの共同作業者がいて、そのドメインから共有ドライブにファイルを移動できます。これにより、チームはさまざまなドメインの顧客向けにアドオン、ウェブアプリ、その他のコードを開発できます。
共有ドライブを使用して Apps Script プロジェクトで共同作業を行う場合は、次の点に注意してください。
- 共有ドライブに対する編集権限を持つ共同作業者は、新しいファイルを作成して共有ドライブに移動できます。スクリプト エディタとして、スクリプト プロジェクトの表示と編集、スクリプト コードの実行、新しいスクリプト バージョンの作成、アドオンの公開を行うことができます。
- スクリプトをウェブアプリまたは Apps Script APIの実行可能ファイルとしてデプロイするには、デプロイを作成するアカウントが、スクリプトが存在する共有ドライブと同じドメインに属している必要があります。
- 共有ドライブでは、共有ドライブ内の特定のファイルをグループ外のユーザーと共有し、他のドライブ ファイルと同様に、それらのファイルに対する編集権限と閲覧権限を更新できます。ただし、ユーザーが共有ドライブが属するチームのメンバーである場合、特定のファイルに対するアクセス権を減らすことはできません。たとえば、ユーザーが共有ドライブに対する編集権限を持っている場合、共有ドライブ内の特定のファイルに対するアクセス権を閲覧権限に変更することはできません。
- 共有ドライブに対する完全アクセス権を持つ共同作業者は、ファイルと Apps Script プロジェクトを削除したり、共有ドライブからファイルを移動したりすることもできます。
- コンテナ バインド スクリプトはすべて、コンテナ ファイルに定義されている同じ閲覧者と編集者のアクセスリストを使用します。たとえば、Google スプレッドシートに対する編集権限がある場合は、それに添付されている Apps Script プロジェクト コードに対する編集権限もあります。 このようなコンテナ ファイルを共有ドライブに配置すると、共有ドライブの共同作業者は、コンテナ自体と同じスクリプト コードにアクセスできるようになります。
- スクリプト プロジェクトが共有ドライブに存在する場合、その Google Cloud プロジェクト へのアクセスが制限されることがあります。詳細については、 Google Cloud プロジェクトと共有ドライブ ガイドのセクションをご覧ください。
- ウェブアプリ は、あるドメインにデプロイされた後、オーナー権限が別のドメインの 共有ドライブまたはアカウントに変更されると機能しなくなります。この問題を解決するには、スクリプトを元のドメインに戻します。
- 同様に、 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 プロジェクトには、独自のオーナー、編集者、その他のロールのセットがあり、スクリプト プロジェクトにアクセスできるユーザーのセットとは異なる場合があります。
コラボレーションとトリガー
プロジェクトで共同作業を行う場合、作成した インストール可能なトリガーは、プロジェクトにアクセスできるユーザーと共有されません。すべての共同作業者に対して 一貫したトリガー設定が必要な場合は、 Script サービスを使用して、実行時に プログラムでトリガーを作成します。詳細については、 プログラムでトリガーを管理するをご覧ください。
シンプルなトリガーはコードから作成されるため、プロジェクトの共同作業者と共有されます 。
コラボレーションとライブラリ
プロジェクトに含まれるライブラリは、プロジェクトの共同作業者が利用できます。 ただし、含まれているライブラリに対する読み取りレベル以上のアクセス権がない場合、それらのライブラリを使用することはできません。この場合、スクリプトはエラーをスローします。ライブラリの詳細については、 ライブラリを管理するをご覧ください。
コラボレーションとユーザー プロパティ
ユーザー プロパティ は、作成したユーザーに固有のものです。つまり、プロジェクトの共同作業者はユーザー プロパティを表示またはアクセスできず、ユーザー プロパティを表示またはアクセスすることもできません。プロジェクト固有のプロパティを共同作業者と共有する場合は、 スクリプト プロパティ を使用します。詳細については、プロパティ ガイドをご覧ください。