Для разработки и управления проектами Google Apps Script из терминала, а не из редактора Apps Script, используйте инструмент с открытым исходным кодом clasp .
В разделе clasp Codelab" представлен обзор всех функций clasp .
Функции
clasp имеет следующие особенности:
Развивайтесь на местном уровне
clasp позволяет разрабатывать проекты Apps Script локально. Пишите код на своем компьютере и загружайте его в Apps Script после завершения. Вы также можете загружать существующие проекты Apps Script для редактирования в автономном режиме. Используйте свои любимые инструменты разработки, такие как git , при создании проектов Apps Script.
Управление версиями развертывания
Создавайте, обновляйте и просматривайте несколько развертываний вашего проекта.
Структурный код
clasp позволяет организовывать ваш код в каталоги, которые сохраняются при загрузке на script.google.com. Например:
# On script.google.com: ├── tests/slides.gs └── tests/sheets.gs # Locally: ├── tests/ │ ├─ slides.gs │ └─ sheets.gs
Типы проектов
С помощью clasp можно управлять как автономными, так и привязанными к контейнеру скриптовыми проектами.
Автономные проекты
Автономный проект отображается как отдельный файл в вашем Google Диске. Вы можете создать новый автономный скрипт, используя команду clasp create .
Проекты, привязанные к контейнерам
Проект, привязанный к контейнеру , подключается к файлу Google Docs, Sheets, Slides или Google Forms. Вы можете создать новый скрипт, привязанный к контейнеру, и подключить его к новому файлу с помощью команды clasp create . Вы также можете подключить новый скрипт к существующему файлу, используя флаг --parentId .
Другие типы проектов
clasp также поддерживает создание скриптов для веб-приложений и API.
Требования
clasp написан на Node.js и распространяется с помощью инструмента npm . Перед использованием clasp необходимо установить Node.js версии 20.0.0 или более поздней . Для установки Node.js требуются права администратора.
Установка
После установки Node.js используйте следующую команду npm для установки clasp :
npm install @google/clasp -g
После установки используйте команду clasp из любой директории на вашем компьютере.
Используйте clasp
Используйте clasp для выполнения различных задач из командной строки. В этом разделе описаны распространенные операции, используемые при разработке с помощью clasp .
Авторизоваться
Эта команда выполняет вход в систему и авторизует управление проектами Apps Script в вашей учетной записи Google. После ее выполнения вам будет предложено войти в учетную запись Google, где хранятся ваши проекты Apps Script.
clasp login
Выйти
Эта команда выходит из системы командной строки. Для повторной аутентификации в Google перед продолжением использования clasp необходимо повторно войти в систему, используя clasp login .
clasp logout
Создайте новый проект Apps Script.
Эта команда создаст новый скрипт в текущем каталоге с необязательным заголовком.
clasp create [scriptTitle] [--type <projectType>] [--parentId <parentId>]
Эта команда использует следующие необязательные параметры:
-
scriptTitle: Название проекта скрипта. -
--type <projectType>: Тип создаваемого проекта. Допустимые значения:standalone,docs,sheets,slides,forms,webappиapi. -
--parentId <parentId>: Идентификатор существующего файла Google Drive (Docs, Sheets, Slides или Forms), к которому должен быть привязан новый проект скрипта.
Эта команда также создаст два файла в текущем каталоге:
- Файл
.clasp.json, хранящий идентификатор скрипта. - Файл манифеста проекта
appsscript.json, содержащий метаданные проекта.
Клонировать существующий проект
Эта команда клонирует существующий проект в текущем каталоге. Скрипт должен быть создан или предоставлен в общий доступ через вашу учетную запись Google. Вы указываете проект для клонирования, указав его идентификатор. Вы можете клонировать как автономные, так и привязанные к контейнеру проекты.
Чтобы найти идентификатор скрипта проекта:
- Откройте проект Apps Script.
- В левой части экрана нажмите проекта» .
В разделе «Идентификаторы» скопируйте идентификатор скрипта .
клон застежки
Скачать скриптовый проект
Эта команда загружает проект Apps Script с Google Drive в файловую систему вашего компьютера.
clasp pull
Загрузите скриптовый проект
Эта команда загружает все файлы проекта скрипта с вашего компьютера на Google Диск.
clasp push
Список версий проекта
Эта команда выводит номер и описание каждой версии скриптового проекта.
clasp versions
Разверните опубликованный проект
Развертывайте скриптовые проекты в виде веб-приложений, надстроек Google Workspace или исполняемых файлов. Создавайте развертывания в редакторе скриптов, в манифесте проекта или с помощью clasp .
Для развертывания проекта с помощью clasp сначала создайте неизменяемую версию проекта Apps Script. Версия представляет собой «снимок» проекта скрипта и аналогична релизу с веткой, доступной только для чтения.
clasp version [description]
Эта команда отображает номер созданной версии. Используйте этот номер для развертывания и удаления экземпляров вашего проекта:
clasp deploy [version] [description]
clasp undeploy <deploymentId>
Эта команда обновляет существующее развертывание, добавляя новую версию и описание:
clasp redeploy <deploymentId> <version> <description>
Список развертываний
Эта команда выводит список идентификаторов развертывания, версий и описаний проекта скрипта.
clasp deployments
Откройте проект в редакторе Apps Script.
Эта команда открывает проект скрипта в редакторе Apps Script. Редактор запускается в новой вкладке вашего браузера по умолчанию.
clasp open-script
Внесите свой вклад в проект с открытым исходным кодом clasp
Внесите свой вклад в clasp на GitHub .
CI/CD для Apps Script с использованием clasp и GitHub Actions
В этом руководстве описана настройка автоматической проверки синтаксиса, тестирования и развертывания проектов Google Apps Script с использованием clasp и GitHub Actions .
1. Предварительные требования
Прежде чем начать, выполните шаги по настройке, указанные в разделе «Требования» .
Вам также потребуется:
- Репозиторий на GitHub.
- API Apps Script доступен по адресу
script.google.com/home/usersettings.
2. Аутентификация в CI
Поскольку средства CI-раннеров не могут открыть браузер для аутентификации OAuth, вы храните учетные данные в виде секретов GitHub :
| Секрет | Ценить |
|---|---|
CLASPRC_JSON | Содержимое файла ~/.clasprc.json (создано командой clasp login ) |
CLASP_JSON | Содержимое файла .clasp.json (сопоставление идентификаторов ваших скриптов) |
Токен обновления в файле .clasprc.json предоставляет доступ к вашим проектам Apps Script. Рассматривайте его как конфиденциальные учетные данные и периодически меняйте.
Добавьте .clasprc.json и .clasp.json в ваш .gitignore . Они содержат учетные данные и никогда не должны быть добавлены в репозиторий.
3. Рабочий процесс CI — проверка синтаксиса и тестирование запросов на слияние.
.github/workflows/ci.yml :
name: CI
on:
pull_request:
branches: [main]
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6.3
- uses: actions/setup-node@v6.3
with:
node-version: "20"
cache: npm
- run: npm ci
- run: npm run lint
4. Рабочий процесс непрерывной доставки (CD) — развертывание при слиянии.
.github/workflows/deploy.yml :
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20"
cache: npm
- run: npm ci
- run: npm run lint && npm test
- name: Setup clasp credentials
run: |
echo '${{ secrets.CLASPRC_JSON }}' > ~/.clasprc.json
echo '${{ secrets.CLASP_JSON }}' > .clasp.json
- name: Push and version
run: |
npx @google/clasp push --force
npx @google/clasp version "$(git rev-parse --short HEAD)"
Флаг --force перезаписывает удаленный код без подтверждения. После того, как этот конвейер будет настроен, вам не придется редактировать файлы вручную в редакторе Apps Script — репозиторий станет единственным источником достоверной информации.
5. Развертывание в нескольких средах
Для отдельных сред разработки, тестирования и производства создайте для каждой из них отдельный проект Apps Script и храните их конфигурации в виде отдельных секретов ( CLASP_JSON_DEV , CLASP_JSON_STAGING , CLASP_JSON_PROD ). В рабочем процессе запишите соответствующий секрет в файл .clasp.json в зависимости от развертываемой ветки.
Поиск неисправностей
| Ошибка | Исправить |
|---|---|
| «API скрипта не включен» | Включить можно по адресу script.google.com/home/usersettings |
| "401 Несанкционированный доступ" | Повторно запустите clasp login локально, обновите секретный ключ CLASPRC_JSON |
| "ENOENT .clasp.json" | Проверка учетных данных на этапе записи файла перед clasp push |
| Отправка прошла успешно, но код остался без изменений. | Убедитесь, что scriptId в секрете соответствует вашему целевому проекту. |