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

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 ドライブ フォルダに Apps Script プロジェクトを作成または移動すると、そのユーザーは、フォルダに対する同じ Apps Script プロジェクトへのアクセス権を継承します。次に例を示します。

  • フォルダの編集権限を持つユーザーは、Apps Script プロジェクトを編集または削除して、スクリプトを実行できます。
  • フォルダに対する閲覧権限しかないユーザーは、Apps Script プロジェクトを表示してスクリプトを実行できます。

プロジェクト共有によるコラボレーション

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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