Chrome-extension to manage Google Apps Script(GAS) code with your favorite SCM service(github/github enterprise/bitbucket/gitlab).
With this extension, you can manage your code in GAS editor, push code to a new created branch, pull from a repository/branch.
The extension does not use the Google Drive API, so you don't need any google authentication. Moreover, this extension supports Bound scripts.
This extension is a hack of the GAS IDE's internal RPC, so there's no guarantee of anything. This extension can break at ANYTIME if Google changes their api.
after 5.0.0, this is using Google Apps Scrips API now so it should be more stable
Install this extension from chrome web store.
After install, when you open GAS editor, a new button will appear to allow you to login to GitHub/GitHub Enterprise/Bitbucket/GitLab.
Login to your GitHub/GitHub Enterprise/Bitbucket/GitLab account, with Two-factor authentication support for GitHub/GitHub Enterprise. You can also use an existed token for GitHub/GitHub Enterprise/GitLab.
Actually, this is not a login action, but to create the access token which will be used for the extension
Note: the access token will be stored in
chrome.storage.sync(password will not be stored), if you take this as a security hole, pleast DO NOT use this extension.after 5.0.0, you will also need to provide a google oauth token, you can grant the permission with the
Grant Google oauth tokenlink in login menu, or leave it empty to use the permission of the Chrome login user(only enable for chrome, for other browser like vivaldi, you must follow the link)
After login, you can bind your GAS Project with repo and branch, or create a new one.
Manage your code with the similar Push and Pull.But there are something you need to know before you use it.
In Repo and Branch dropdown list, there is an option to Create new Repo and Branch.
New Repo will be created with an init, with a default README.md.
The PULL/PUSH is not actually the same as GitHub/Bitbucket's PULL/PUSH, because GAS project does not have any git info, so what we can do is limited.
The differences are:
Pull will fetch code from the bind Repository/Branch, and OVERWRITE to current GAS Project. There is no merge operation.Push will make all your change like one commit, If your want to make your process clearly, please push everytime you want a commit.Other points:
- A diff dialog will be shown before you confirm to Push or Pull.
- You can choose files to operate with in the diff dialog.
- Push must have a commit comment which will be added from the diff dialog.
For using Gist, select Using Gist in the Repo dropdown list, then Branch dropdown will changed to Gist. But since gist do not has a name, you need to select the id to specific which gist to sync(a tooltip will show description of the gist).
Note: Bitbucket's snippet is not supported.
init_by_gas_hub.html file, this will be delete when first time you push you code to gist. You can logout from the extension's option page any time. After logout, the access token stored in extension will be deleted, but you will need to delete the token or revoke Bitbucket's oauth yourself from SCM's settins page.
.gs to .js when uploading to SCMplease create an issue for any question or bug report.
.gs file which contains a function with the same name as the file will not work #18. (limited by GAS'S RPC)PS: There is a similar extension for sync your AWS lambda code.
$ claude mcp add gas-github \
-- python -m otcore.mcp_server <graph>