google-apps-scriptcollaboration

How multiple developers can collaborate to maintain a solution based on Google Apps Script, Google Forms & Google spreadsheet?


Using a shared Google account a few developers in our company had developed a solution based on Google Apps Script, Google Forms & Google spreadsheet. We have setup many time-based & event based triggers ( for example trigger on form submission ). All triggers & Google App script libraries are created/modified using the shared Google account. This solution is used by a few hundred users in our company.

With new IT Security enhancement in our company, going forward only one user will be able to login to the shared Google account. This will restrict the shared account to a developer. Other developers will not be able to view/edit the triggers created by the shared Google account ID. We are anticipating that there will be problems in modifying the Google App script libraries as well by other developers.

Any suggestion how multiple developers can collaborate to work on the solution based on Google Apps Script, Google Forms & Google spreadsheet which was created/edited by a shared Google account?


Solution

  • The basic suggestion is to read the guides on https://developers.google.com/apps-script/guides/

    As a sample of what you will found there, below there is an extract that address one of your concerns:

    From https://developers.google.com/apps-script/guides/collaborating (follow the link to see the links included on the original content)

    Collaborating and project resources

    Resources are entities that are associated with your project but exist independently of its code. This section explains how collaborating on a project affects its resources, in particular: triggers, libraries, and user properties.

    Collaborating and triggers

    When you collaborate on a project, any installable triggers that you create are not shared with those who have access to your project. If you need to have a consistent trigger setup for all collaborators, you can use the Script service to create triggers programmatically, at run time. For more information, see Managing Triggers Programmatically.

    ā˜… Since simple triggers are created from code, they **are** shared with project collaborators.

    Collaborating and libraries

    Libraries included in your project are available to project collaborators. However, if they do not have at least read-level access to an included library they can't use those libraries ā€” the script throws an error in this case. For more information about libraries, see Managing Libraries.

    Collaborating and user properties

    User properties are unique to the user that created them. This means that the project collaborators can't see or access your user properties and you can't see or access theirs. Use script properties if you want to share project specific properties with the collaborators. For more information, see the Properties guide.

    Another interesting reading:

    https://gsuite-developers.googleblog.com/2015/12/advanced-development-process-with-apps.html