Сотрудничайте с другими разработчиками

Apps Script предоставляет ряд функций, которые помогают вам и другим разработчикам совместно создавать и поддерживать скрипты, дополнения и веб-приложения.

Основы сотрудничества

Для совместной работы над проектом вам и вашим коллегам необходим доступ к файлу проекта Apps Script (и его контейнеру, если это связанный скрипт ), позволяющий редактировать его. Это позволит всем членам вашей команды видеть код Apps Script и вносить в него изменения. Редакторы также могут создавать новые версии кода, публиковать дополнения и развертывать скрипты в виде веб-приложений или исполняемых файлов для API Apps Script .

Вы можете помочь своей команде, заранее спланировав, как вы будете обрабатывать редактирование, проверку, версионирование и (при необходимости) развертывание и публикацию вашего проекта, дополнения или веб-приложения. Автономные проекты обычно проще всего разрабатывать совместно, поскольку они отображаются непосредственно в Google Drive и являются рекомендуемым типом проектов для разработки дополнений и веб-приложений.

Распространенная проблема при совместной работе возникает, когда владелец проекта скрипта покидает команду, не передав права собственности на проект другому члену команды. Это может лишить вас возможности поддерживать или обновлять проект. Размещение проекта скрипта на общем диске предотвращает эту проблему, поскольку файлы на общем диске не имеют конкретных владельцев.

Используйте инструмент командной строки clasp для совместной работы.

clasp позволяет синхронизировать проекты между script.google.com и вашей локальной файловой системой. Это позволяет оптимизировать и автоматизировать разработку кода, если вы и ваши коллеги используете системы контроля версий, такие как git .

Для получения более подробной информации обратитесь к руководству по использованию интерфейса командной строки с помощью clasp .

Совместная работа с использованием общих дисков.

Общие диски (ранее известные как «Командные диски») предоставляют общее пространство в Google Диске, где группы пользователей могут более эффективно сотрудничать. Файлы, размещенные на общем диске, принадлежат всей группе, а не отдельным лицам. Это означает, что когда участник покидает группу, он не забирает с собой права собственности и контроль над файлами.

Общие диски также позволяют перемещать файлы между доменами — общий диск в одном домене может быть доступен для пользователей из другого домена, которые могут перемещать файлы из этого домена на общий диск. Это может быть очень полезно для разработчиков Apps Script, поскольку предоставляет команде возможность разрабатывать дополнения, веб-приложения или другой код для клиентов в разных доменах.

При использовании общих дисков для совместной работы над проектами Apps Script следует учитывать следующее:

  1. Участники, имеющие доступ к общему диску в качестве редакторов, могут создавать или перемещать новые файлы на этот диск. В качестве редакторов скриптов они могут просматривать и редактировать проекты скриптов, запускать код скриптов, создавать новые версии скриптов и публиковать дополнения.
  2. Для развертывания скриптов в качестве веб-приложений или исполняемых файлов для API Apps Script учетная запись, создающая развертывание, должна принадлежать к тому же домену, что и общий диск, на котором находится скрипт.
  3. Общие диски позволяют предоставлять доступ к определенным файлам внутри общего диска другим пользователям за пределами группы, а также изменять их права на редактирование и просмотр этих файлов, как и для любых других файлов в Диске. Однако, если пользователь входит в команду, к которой принадлежит общий диск, вы не можете ограничить его доступ к определенным файлам. Например, если у пользователя есть доступ на редактирование общего диска, вы не можете изменить его на доступ только для просмотра для определенного файла внутри общего диска.
  4. Участники, имеющие полный доступ к общему диску, также могут удалять файлы и проекты Apps Script, а также перемещать файлы за пределы общего диска.
  5. Все скрипты, привязанные к контейнеру, используют одни и те же списки доступа для просмотра и редактирования, определенные для файла контейнера. Например, если у вас есть доступ на редактирование таблицы Google Sheets, у вас также есть доступ на редактирование любого кода проекта Apps Script, прикрепленного к ней. Размещение такого файла контейнера на общем диске предоставляет участникам проекта на этом диске тот же доступ к коду скрипта, что и к самому контейнеру.
  6. Если скриптовый проект размещен на общем диске, доступ к его проекту в облачной платформе (GCP) может быть ограничен. Подробности см. в разделе руководства по проектам GCP и общим дискам .
  7. Веб-приложения, развернутые в одном домене, перестают функционировать, если их владельцем становится общий диск или учетная запись в другом домене. Это можно исправить, переместив скрипт обратно в исходный домен.
  8. Аналогичным образом, скриптовые проекты, развернутые в виде исполняемых файлов API Apps Script, перестают функционировать при вызове API, если их перемещают через общий диск из одного домена в другой. Это можно исправить, переместив скрипт обратно в исходный домен.

Совместная работа с использованием общей папки

Если у вас нет возможности совместно работать с общим диском, вы можете использовать общую папку. Когда вы создаете или перемещаете проект Apps Script в папку Google Drive, к которой имеют доступ другие пользователи, они наследуют те же права доступа к проекту Apps Script, что и к папке. Например:

  • Если у пользователя есть права на редактирование папки, он может редактировать или удалять проект Apps Script и запускать скрипт.
  • Если у пользователя есть только права на просмотр папки, он может просмотреть проект Apps Script и запустить скрипт.

Сотрудничайте посредством обмена проектами.

Вы можете совместно работать над проектом, напрямую поделившись им со всеми участниками. Вы можете напрямую делиться проектами скриптов, которые находятся в обычных папках Google Drive или на общих дисках. При использовании этого метода рекомендуется тщательно спланировать, кто будет владеть скриптом и поддерживать его в дальнейшем.

Автономные проекты отображаются в вашем Google Диске как файлы, и вы можете делиться ими, как любыми другими файлами. Для получения дополнительной информации см. раздел «Общий доступ к файлам и папкам» .

Проекты, привязанные к контейнеру, не видны в вашем Google Диске. Чтобы поделиться проектом, привязанным к контейнеру, предоставьте общий доступ к родительскому файлу контейнера. Например, если у вас есть скрипт, привязанный к электронной таблице Google Sheets, вы можете сделать кого-либо редактором скрипта, назначив ему редактора электронной таблицы. Проекты, привязанные к контейнеру, наследуют настройки доступа для просмотра и редактирования своего файла контейнера.

Все скрипты, привязанные к контейнеру, используют один и тот же список доступа владельца, пользователя и редактора, определенный для файла контейнера . Владелец контейнера становится владельцем нового проекта скрипта независимо от того, кто его создал.

Ресурсы для сотрудничества и проектов

Ресурсы — это сущности, связанные с вашим проектом, но существующие независимо от его кода. В этом разделе объясняется, как совместная работа над проектом влияет на его ресурсы, в частности: проект облачной платформы, триггеры, библиотеки и свойства пользователей.

Проекты по сотрудничеству и Google Cloud

Каждый проект Apps Script связан с проектом Google Cloud . Проекты Google Cloud имеют свой собственный набор владельцев, редакторов и других ролей, которые могут отличаться от набора пользователей, имеющих доступ к проекту скрипта.

Если ваш скриптовый проект предназначен для публикации в качестве дополнения , он должен использовать стандартный проект Google Cloud . При совместной работе над приложением, использующим стандартный проект Google Cloud, мы рекомендуем настроить владельцев и роли Google Cloud, чтобы обеспечить всем вашим соавторам надлежащие уровни доступа. Это помогает предотвратить ситуации, когда вы теряете доступ к настройкам Cloud проекта из-за того, что его владельцы больше не работают в вашей организации. Это особенно важно для дополнений.

Сотрудничество и триггеры

При совместной работе над проектом созданные вами устанавливаемые триггеры не передаются тем, кто имеет доступ к вашему проекту. Если вам необходима согласованная настройка триггеров для всех участников проекта, вы можете использовать службу скриптов для программного создания триггеров во время выполнения. Дополнительную информацию см. в разделе «Программное управление триггерами» .

Сотрудничество и библиотеки

Библиотеки, включенные в ваш проект, доступны участникам проекта. Однако, если у них нет хотя бы прав доступа на чтение к включенной библиотеке, они не смогут использовать эти библиотеки — в этом случае скрипт выдаст ошибку. Для получения дополнительной информации о библиотеках см. раздел «Управление библиотеками» .

Свойства взаимодействия и пользователя

Свойства пользователя уникальны для пользователя, который их создал. Это означает, что участники проекта не могут видеть или получать доступ к вашим свойствам пользователя, а вы не можете видеть или получать доступ к их свойствам. Используйте свойства скрипта, если хотите поделиться с участниками проекта свойствами, специфичными для данного проекта. Для получения дополнительной информации см. руководство по свойствам .