与其他开发者协作

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

Apps 脚本提供了一些功能,可帮助您和其他开发者一起构建和维护脚本、插件和 Web 应用。

协作基础知识

为了协同处理项目,您和您的协作者必须都拥有 Apps 脚本项目文件(如果容器为绑定脚本)的编辑者访问权限。这样一来,您团队中的所有成员都可以查看和更改 Apps 脚本代码。编辑者还可以创建新的代码版本、发布插件,以及将脚本部署为 Web 应用或 Apps Script API 的可执行文件。

您可以预先规划如何处理项目、插件或 Web 应用的修改、审核、版本控制和(如果适用)部署和帮助任务。独立项目通常最容易协作,因为它们是直接显示在 Google 云端硬盘中的项目类型,也是插件和 Web 应用开发的推荐项目类型。

协作的常见问题是,脚本项目所有者在未将项目所有权转移给团队中的其他人的情况下离开团队。这可能导致您无法维护或更新项目。将脚本项目放在共享云端硬盘可以避免此问题,因为共享云端硬盘中的文件没有特定的所有者。

使用 clasp 命令行工具进行协作

clasp 允许您在 script.google.com 和本地文件系统之间同步项目。如果您和协作者在使用源代码控制管理软件(如 git),这可以让您简化代码开发流程并实现代码自动化。

如需了解详情,请参阅使用 clasp 的命令行界面指南

通过共享云端硬盘展开协作

共享云端硬盘(旧称“团队云端硬盘”)可在 Google 云端硬盘中提供共享空间,供云端硬盘用户群组更高效地协作。共享云端硬盘中的文件归整个群组(而非个人)所有。这意味着,当协作者离开该组时,他们不会获得文件所有权和控制权。

共享云端硬盘还可让您在网域之间移动文件 - 一个网域中的共享云端硬盘可以让其他网域的协作者将该文件从该网域移到共享云端硬盘。这对于 Apps 脚本开发者来说非常重要,因为它可以让团队为不同网域中的客户开发插件、Web 应用或其他代码。

使用共享云端硬盘协作处理 Apps 脚本项目时,请注意以下几点:

  1. 对共享云端硬盘拥有编辑者访问权限的协作者可以在共享云端硬盘中创建或移动新文件。作为脚本编辑者,他们可以查看和修改脚本项目、运行脚本代码、创建新的脚本版本、发布插件。
  2. 如需将脚本部署为 Web 应用或 Apps Script API 的可执行文件,创建相应部署的帐号必须与该脚本所在的共享云端硬盘位于同一网域。
  3. 借助共享云端硬盘,您可以将共享云端硬盘内的特定文件共享给群组外部的其他人,并像更新任何其他云端硬盘文件一样更新他们编辑和查看这些文件的权限。但是,如果用户属于共享云端硬盘所属的团队,您无法减少用户对特定文件的访问权限。举例来说,如果用户对某个共享云端硬盘拥有编辑权限,则您无法将其更改为该共享云端硬盘中特定文件的“只能查看”权限。
  4. 除上述内容外,对共享云端硬盘拥有完整访问权限的协作者能够删除文件和 Apps 脚本项目,以及将文件移出共享云端硬盘。
  5. 所有容器绑定脚本都使用为容器文件定义的相同查看者和编辑者访问权限列表。例如,如果您拥有 Google 表格的编辑权限,则同时拥有其附加的任何 Apps 脚本项目代码的编辑权限。将此类容器文件放入共享云端硬盘会为共享云端硬盘的协作者授予与其容器代码相同的脚本代码访问权限。
  6. 当脚本项目驻留在共享云端硬盘中时,对其 Cloud Platform (GCP) 项目的访问权限可能会受到限制。如需了解详情,请参阅 GCP 项目和共享云端硬盘指南部分。
  7. 如果某个网域中部署的 Web 应用的所有权更改为其他网域中的共享云端硬盘或帐号,则这些应用会停止运行。您可以通过将脚本移回其原始网域来更正此问题。
  8. 同样地,通过部署为 Apps Script API 可执行文件的脚本项目在通过 API 调用时,如果通过共享云端硬盘从一个网域移动到另一个网域,则会停止工作。您可以通过将脚本移回其原始网域来更正此问题。

与项目共享功能协作

您还可以直接与所有协作者共享项目,以协作处理项目。您可以直接共享位于常规 Google 云端硬盘文件夹或共享云端硬盘中的脚本项目。如果您使用此方法,建议您仔细规划一段时间内该脚本的所有者和维护状态。

独立项目会以文件形式显示在 Google 云端硬盘中,您可以像共享任何其他文件一样将其共享。如需了解详情,请参阅共享文件和文件夹

容器绑定项目不会显示在 Google 云端硬盘中。如需共享容器绑定项目,您只需共享父级容器文件即可。例如,如果您的脚本已绑定到 Google 表格,则可以将其设为 Google 表格的编辑者,让对方成为脚本的编辑者。该容器内的所有项目都会继承该容器文件的查看者和编辑者访问权限设置。

协作和项目资源

资源是与您的项目相关联,但独立于其代码存在的实体。本部分介绍在项目上进行协作对其资源(尤其是其 Cloud Platform 项目、触发器、库和用户属性)有何影响。

协作和 Cloud Platform 项目

每个 Apps 脚本项目都有一个关联的 Cloud Platform (GCP) 项目。GCP 项目有自己的一组所有者、编辑者和其他角色,这些角色可能与有权访问脚本项目的用户组不同。

如果您的脚本项目要作为插件发布,它必须使用标准 GCP 项目。在协作使用标准 GCP 项目的应用时,我们建议您配置 GCP 所有者和角色,以确保所有协作者都拥有适当的访问权限级别。这有助于防止您失去对项目的 Cloud 设置的访问权限,因为项目的所有者不再属于您的组织。这对于插件特别重要

协作和触发器

协同处理某个项目时,您创建的任何可安装触发器都不会与有权访问您的项目的用户共享。如果您需要为所有协作者设置一致的触发器,可以使用 Script 服务在运行时以编程方式创建触发器。如需了解详情,请参阅以编程方式管理触发器

协作和库

您的项目中包含的库可供项目协作者使用。不过,如果他们至少对已包含的库没有读取级别访问权限,则无法使用这些库 - 在这种情况下,脚本会抛出错误。如需详细了解库,请参阅管理库

协作和用户属性

用户属性是创建它们的用户独有的。这意味着项目协作者看不到或访问您的用户属性,而您也无法查看或访问其属性。如果要与协作者共享项目特定的属性,请使用脚本属性。如需了解详情,请参阅属性指南