Google Apps 脚本提供了一些功能,可帮助团队共同构建和维护脚本、Google Workspace 插件和 Web 应用。本指南介绍了多位开发者如何积极协作处理项目;如果您想分享代码以供他人纳入自己的项目,请参阅库指南。
协作基础知识
如需协作处理项目,您和您的协作者都必须对 Apps 脚本项目文件(以及其容器,如果是绑定脚本)拥有编辑权限。这样,您团队中的所有人都可以查看和更改 Apps 脚本代码。编辑者还可以创建新的代码版本、发布插件,以及将脚本部署为 Web 应用或 Apps 脚本 API 的可执行文件。
请提前规划好如何处理项目、插件或 Web 应用的编辑、审核、版本控制以及(如果适用)部署和发布。 独立项目通常最容易进行协作,因为它们直接显示在 Google 云端硬盘中,是插件和 Web 应用开发的推荐项目类型。
协作中常见的一个问题是,脚本项目所有者在离开团队时,没有将项目的所有权转移给团队中的其他成员。这可能会导致您无法维护或更新项目。将脚本项目放在共享云端硬盘中可避免此问题,因为共享云端硬盘中的文件没有特定所有者。
始终共享脚本项目的所有权。如果有人离开您的组织,并且其账号被移除,那么您将无法再访问没有其他所有者的脚本。 在云端硬盘中共享您的脚本,或将其移至共享云端硬盘。
使用 clasp 命令行工具进行协作
借助 clasp,您可以在 script.google.com 和本地文件系统之间同步项目。如果您和协作者使用的是源代码控制管理软件(例如 git),则可以简化并自动执行代码开发。
如需了解详情,请参阅使用 clasp 的命令行界面指南。
通过共享云端硬盘展开协作
共享云端硬盘仅适用于 Google Workspace 商务版和 Google Workspace 企业版客户。
共享云端硬盘是云端硬盘中的共享空间,可供云端硬盘用户群组更高效地协作。放入共享云端硬盘中的文件归整个群组所有,而非个人。这意味着,当协作者离开群组时,不会带走文件所有权和控制权。
您还可以通过共享云端硬盘跨网域移动文件 - 一个网域中的共享云端硬盘可以有来自另一个网域的协作人员,他们可以将文件从该网域移至共享云端硬盘。这样,团队就可以为不同网域中的客户开发插件、Web 应用或其他代码。
使用共享云端硬盘协作处理 Apps 脚本项目时:
- 拥有共享云端硬盘编辑权限的协作人员可以在该共享云端硬盘中创建新文件或将新文件移至该共享云端硬盘。作为脚本编辑者,他们可以查看和修改脚本项目、运行脚本代码、创建新的脚本版本以及发布插件。
- 如需将脚本部署为 Apps 脚本 API 的 Web 应用或可执行文件,创建部署的账号必须与脚本所在的共享云端硬盘属于同一网域。
- 借助共享云端硬盘,您可以将共享云端硬盘中的特定文件与群组外的其他用户共享,并像管理任何其他云端硬盘文件一样,更新他们对这些文件的编辑和查看权限。不过,如果用户是共享云端硬盘所属团队的成员,您就无法降低其对特定文件的访问权限。例如,如果用户对某个共享云端硬盘拥有编辑权限,您就无法将该用户对该共享云端硬盘中特定文件的权限更改为“只能查看”权限。
- 拥有共享云端硬盘完整访问权限的协作者还可以删除文件和 Apps 脚本项目,以及将文件移出共享云端硬盘。
- 所有绑定到容器的脚本都使用为容器文件定义的相同查看者和编辑权限列表。例如,如果您拥有 Google 表格的修改权限,那么您也拥有附加到该表格的任何 Apps 脚本项目代码的修改权限。将此类容器文件放入共享云端硬盘中后,共享云端硬盘的协作人员将获得与容器本身相同的脚本代码访问权限。
- 当脚本项目位于共享云端硬盘中时,对其 Google Cloud 项目的访问权限可能会受到限制。如需了解详情,请参阅Google Cloud 项目和共享云端硬盘指南部分。
- 如果部署在一个网域中的网络应用的所有权更改为其他网域中的共享云端硬盘或账号,这些网络应用将停止运行。如需更正此问题,请将脚本移回其原始网域。
- 同样,如果脚本项目部署为 Apps 脚本 API 可执行文件,则当通过共享云端硬盘从一个网域移动到另一个网域时,在通过 API 调用时将停止运行。若要修正此问题,请将脚本移回其原始网域。
利用共享文件夹展开协作
如果您要创建 Apps 脚本项目或将 Apps 脚本项目移至共享文件夹,请务必谨慎操作。请确保仅与您信任的人共享相应文件夹。
如果您无法与共享云端硬盘协作,请改用共享文件夹。 当您创建 Apps 脚本项目或将其移至其他人可以访问的云端硬盘文件夹时,他们将沿用对该文件夹的访问权限,获得对相应 Apps 脚本项目的访问权限。例如:
- 如果某人拥有相应文件夹的编辑权限,则可以修改或删除 Apps 脚本项目并运行脚本。
- 如果某人仅拥有对文件夹的查看权限,则可以查看 Apps 脚本项目并运行脚本。
通过项目共享进行协作
通过直接与所有协作者共享项目来协作处理项目。直接共享位于常规云端硬盘文件夹或共享云端硬盘中的脚本项目。仔细规划谁负责长期拥有和维护脚本。
独立项目在云端硬盘中显示为文件;您可以像共享任何其他文件一样共享它们。如需了解详情,请参阅共享文件和文件夹。
容器绑定的项目不会显示在云端硬盘中。如需共享绑定到容器的项目,请共享父容器文件。例如,如果您有一个与 Google 表格绑定的脚本,那么只需将某人设为该电子表格的编辑者,即可让其成为该脚本的编辑者。绑定到容器的项目会继承其容器文件的查看者和编辑者访问权限设置。
所有容器绑定脚本都使用为容器文件定义的相同的所有者、查看者和编辑权限访问权限列表。无论新脚本项目是谁创建的,容器所有者都会获得该项目的所有权。
协作和项目资源
资源是与项目关联但独立于项目代码存在的实体。本部分介绍了在项目上协作会如何影响其资源,尤其是 Google Cloud 项目、触发器、库和用户属性。
协作和 Google Cloud 项目
每个 Apps 脚本项目都有一个关联的 Google Cloud 项目。Google Cloud 项目有自己的一组所有者、编辑者和其他角色,这些角色可能与可以访问脚本项目的用户组不同。
协作和触发器
当您协作处理项目时,您创建的任何可安装的触发器都不会与有权访问您项目的人员共享。如果您需要为所有协作者设置一致的触发器,请使用 Script 服务以在运行时通过编程方式创建触发器。如需了解详情,请参阅以编程方式管理触发器。
协作者。
协作和库
项目中的库可供项目协作者使用。 不过,如果他们对包含的库没有至少读取级别的访问权限,就无法使用这些库,在这种情况下,脚本会抛出错误。 如需详细了解库,请参阅管理库。
协作和用户属性
用户属性是创建它们的用户所独有的。这意味着,项目协作者无法查看或访问您的用户属性,您也无法查看或访问他们的用户属性。如果您想与协作者共享项目特定属性,请使用脚本属性。如需了解详情,请参阅属性指南。