Control de versiones de macros de spreadsheet

Hace un time, mi prometida me pidió que la ayudara a crear una spreadsheet para administrar su nueva pequeña empresa. Venga y descubra que en realidad estaba buscando un CRM completo. Siendo el buen futuro esposo que soy, decidí que podría abordar esto con algunas macros de GoogleSheets. Unas dos semanas después, tengo un manejo básico del deviseio, pero el proyecto se ha vuelto mucho más grande de lo que había anticipado. El Syder IDE en el browser y la administración básica de la versión ya no lo están cortando realmente.

Mi pregunta ahora: me gustaría comenzar a administrar este proyecto en gitHub, pero no puedo encontrar una forma elegante de hacerlo. Encontré esta publicación de blog en files de script de aplicaciones independientes, pero parece que no puedo encontrar mis files de macro (.gs) en mi Google Drive.

Mis preguntas: ¿Dónde están ubicados estos files? ¿Hay alguna manera de usar, por ejemplo, eclipse para desarrollar mis macros y almacenarlas de nuevo en la spreadsheet al mismo time que utilizo git u otro control de versiones?

Editar: Obtuve algunos buenos comentarios hasta ahora, pero aparentemente Cloud Tools for Eclipse no permite la edición de Apps Script de la misma manera que lo hizo el complemento de Google para Eclipse, mira aquí .

Una vez que haya terminado de migrar su código a una secuencia de commands independiente según las instrucciones de Michelle, le recomendamos que consulte esta extensión de Chrome:

Asistente de Google Apps Script Github

Se integra con la GUI de Apps Script para empujar y extraer la fuente desde y hacia github. Es una herramienta bastante útil.

PD: la extensión de Chrome también funciona con scripts enlazados, pero descubrí que el código de Apps Script es más fácil de reutilizar cuando se trata de scripts independientes.

Como dijo Anton, es imposible acceder a un file de script enlazado a la spreadsheet fuera de la interfaz de Hojas de cálculo de Google. Puede copyr y pegar todo el código en un nuevo file de Google Script independiente. Sin embargo, es probable que esto tome algunos cambios de código, que se describen a continuación.

Las llamadas a SpreadsheetApp.getActiveSpreadsheet tendrán que ser reemplazadas por SpreadsheetApp.openById , con el ID de la spreadsheet codificada. Otros methods getActive * como getActiveSheet y getActiveRange se pueden invocar en ese object de spreadsheet, en lugar de SpreadsheetApp directamente.

Cualquier desencadenante simple como onOpen o onEdit tendrá que ser reemplazado por desencadenadores instalados que están instalados en la spreadsheet por la secuencia de commands independiente. Por lo tanto, el script debe tener una function de installation, por ejemplo, onOpen, que deberá ejecutarse manualmente una vez. Vea el código de muestra para instalar un disparador .