{"id":14385086,"url":"https://github.com/danthareja/node-google-apps-script","last_synced_at":"2025-10-28T09:55:35.293Z","repository":{"id":29512339,"uuid":"33050639","full_name":"danthareja/node-google-apps-script","owner":"danthareja","description":"[DEPRECATED - use clasp instead] The easiest way to develop Google Apps Script projects","archived":false,"fork":false,"pushed_at":"2018-03-11T02:30:47.000Z","size":232,"stargazers_count":353,"open_issues_count":19,"forks_count":70,"subscribers_count":23,"default_branch":"master","last_synced_at":"2025-10-02T02:26:14.472Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/danthareja.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-03-28T21:16:43.000Z","updated_at":"2025-06-02T12:19:54.000Z","dependencies_parsed_at":"2022-09-03T20:31:41.029Z","dependency_job_id":null,"html_url":"https://github.com/danthareja/node-google-apps-script","commit_stats":null,"previous_names":["danthareja/google-apps-script-sync"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/danthareja/node-google-apps-script","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danthareja%2Fnode-google-apps-script","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danthareja%2Fnode-google-apps-script/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danthareja%2Fnode-google-apps-script/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danthareja%2Fnode-google-apps-script/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danthareja","download_url":"https://codeload.github.com/danthareja/node-google-apps-script/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danthareja%2Fnode-google-apps-script/sbom","scorecard":{"id":321834,"data":{"date":"2025-08-11","repo":{"name":"github.com/danthareja/node-google-apps-script","commit":"b6a47508d280ffcd48a76e95d3fd9c6baceea8af"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":1.9,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":1,"reason":"Found 2/14 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 21 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"80 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-v88g-cgmw-v5xw","Warn: Project is vulnerable to: GHSA-93q8-gq69-wqmw","Warn: Project is vulnerable to: GHSA-fwr7-v2mv-hh25","Warn: Project is vulnerable to: GHSA-67hx-6x53-jw92","Warn: Project is vulnerable to: GHSA-rvg8-pwq2-xj7q","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-cwfw-4gq5-mrqx","Warn: Project is vulnerable to: GHSA-g95f-p29q-9xw4","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-rq8g-5pc5-wrhr","Warn: Project is vulnerable to: GHSA-9vvw-cc9w-f27h","Warn: Project is vulnerable to: GHSA-gxpj-cx7g-858c","Warn: Project is vulnerable to: GHSA-hr2v-3952-633q","Warn: Project is vulnerable to: GHSA-h6ch-v84p-w6p9","Warn: Project is vulnerable to: GHSA-qrmc-fj45-qfc2","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-8r6j-v8pm-fqw3","Warn: Project is vulnerable to: MAL-2023-462","Warn: Project is vulnerable to: GHSA-xf7w-r453-m56c","Warn: Project is vulnerable to: GHSA-7543-mr7h-6v86","Warn: Project is vulnerable to: GHSA-q42p-pg8m-cqh6","Warn: Project is vulnerable to: GHSA-w457-6q6x-cgp9","Warn: Project is vulnerable to: GHSA-62gr-4qp9-h98f","Warn: Project is vulnerable to: GHSA-f52g-6jhx-586p","Warn: Project is vulnerable to: GHSA-2cf5-4w76-r9qv","Warn: Project is vulnerable to: GHSA-3cqr-58rm-57f8","Warn: Project is vulnerable to: GHSA-g9r4-xpmj-mj65","Warn: Project is vulnerable to: GHSA-q2c6-c6pm-g3gh","Warn: Project is vulnerable to: GHSA-765h-qjxv-5f44","Warn: Project is vulnerable to: GHSA-f2jv-r9rf-7988","Warn: Project is vulnerable to: GHSA-44pw-h2cw-w3vq","Warn: Project is vulnerable to: GHSA-jp4x-w63m-7wgm","Warn: Project is vulnerable to: GHSA-c429-5p7v-vgjp","Warn: Project is vulnerable to: GHSA-43f8-2h32-f4cj","Warn: Project is vulnerable to: GHSA-qqgx-2p2h-9c37","Warn: Project is vulnerable to: GHSA-2pr6-76vf-7546","Warn: Project is vulnerable to: GHSA-8j8c-7jfh-h6hx","Warn: Project is vulnerable to: GHSA-896r-f27r-55mw","Warn: Project is vulnerable to: GHSA-9c47-m6qq-7p4h","Warn: Project is vulnerable to: GHSA-fvqr-27wr-82fm","Warn: Project is vulnerable to: GHSA-4xc9-xhrj-v574","Warn: Project is vulnerable to: GHSA-x5rq-j2xg-h7qm","Warn: Project is vulnerable to: GHSA-jf85-cpcp-j695","Warn: Project is vulnerable to: GHSA-p6mc-m468-83gw","Warn: Project is vulnerable to: GHSA-29mw-wpgm-hmr9","Warn: Project is vulnerable to: GHSA-35jh-r3h4-6jhm","Warn: Project is vulnerable to: GHSA-4xcv-9jjx-gfj3","Warn: Project is vulnerable to: GHSA-f9cm-qmx5-m98h","Warn: Project is vulnerable to: GHSA-7wpw-2hjm-89gp","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-f8q6-p94x-37v3","Warn: Project is vulnerable to: GHSA-vh95-rmgr-6w4m","Warn: Project is vulnerable to: GHSA-xvch-5gv4-984h","Warn: Project is vulnerable to: GHSA-92xj-mqp7-vmcj","Warn: Project is vulnerable to: GHSA-wxgw-qj99-44c2","Warn: Project is vulnerable to: GHSA-5rrq-pxf6-6jx5","Warn: Project is vulnerable to: GHSA-8fr3-hfg3-gpgp","Warn: Project is vulnerable to: GHSA-gf8q-jrpm-jvxq","Warn: Project is vulnerable to: GHSA-2r2c-g63r-vccr","Warn: Project is vulnerable to: GHSA-cfm4-qjh2-4765","Warn: Project is vulnerable to: GHSA-x4jg-mjrx-434g","Warn: Project is vulnerable to: GHSA-5fw9-fq32-wv5p","Warn: Project is vulnerable to: GHSA-6394-6h9h-cfjg","Warn: Project is vulnerable to: GHSA-hj48-42vr-x3v9","Warn: Project is vulnerable to: GHSA-hrpp-h998-j3pp","Warn: Project is vulnerable to: GHSA-6g33-f262-xjp4","Warn: Project is vulnerable to: GHSA-p8p7-x288-28g6","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-2m39-62fm-q8r3","Warn: Project is vulnerable to: GHSA-mf6x-7mm4-x2g7","Warn: Project is vulnerable to: GHSA-j44m-qm6p-hp7m","Warn: Project is vulnerable to: GHSA-3jfq-g458-7qm9","Warn: Project is vulnerable to: GHSA-5955-9wpr-37jh","Warn: Project is vulnerable to: GHSA-f5x3-32g6-xq36","Warn: Project is vulnerable to: GHSA-jgrx-mgxx-jf9v","Warn: Project is vulnerable to: GHSA-g7q5-pjjr-gqvp","Warn: Project is vulnerable to: GHSA-72xf-g2v4-qvf3","Warn: Project is vulnerable to: GHSA-c4w7-xm78-47vh","Warn: Project is vulnerable to: GHSA-p9pc-299p-vxgp"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-18T01:34:02.659Z","repository_id":29512339,"created_at":"2025-08-18T01:34:02.659Z","updated_at":"2025-08-18T01:34:02.659Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281418053,"owners_count":26497723,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-28T02:00:06.022Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-28T18:01:56.289Z","updated_at":"2025-10-28T09:55:35.266Z","avatar_url":"https://github.com/danthareja.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"---\n### :warning::rotating_light: DEPRECATION NOTICE :rotating_light::warning:\n\nGoogle has released [clasp](https://github.com/google/clasp), please use it instead.\n\nAs per the discussion in [issue #86](https://github.com/danthareja/node-google-apps-script/issues/86), it does not make sense for these two projects to co-exist. This project is locked into it's final version and will receive no future updates.\n\nHappy scripting!\n\n---\n\n# gapps (Google Apps Script)\n\u003eThe easiest way to develop Google Apps Script projects\n\nUsing **gapps**, you can develop your Apps Script locally and push files to the Apps Script servers. This allows you to use any editor of your choice, version control, and other modern webdev patterns in to Apps Script development.\n\n## Requirements\n  - [node \u003e= 8](https://nodejs.org/download/)\n  - `npm install -g node-google-apps-script`\n\n## Quickstart\n\n### 1. Get Google Drive Credentials\nTo use gapps you need access to your files on your Google Drive through the API provided by Google. To make this happen you have to create a `Developer Console Project`. \n\nYou can do this one of two ways:\n\n1. Use the existing 'API Project' in the Developer Console\n1. Create an independent Developer Console Project (choose this when the default project is not available)\n\n#### 1.1 Use the existing 'API Project' in the Developer Console\nThis is the easiest approach because you don't need to create a new project. You will use the default Developer Console Project `API Project`, enable Google Drive and get credentials. \n\n1. While working in the editor on [script.google.com](https://script.google.com) select `Resources \u003e Cloud Platform Project...` otherwise, go to the [Google Cloud Platform](https://console.cloud.google.com)\n1. Access the automatically created Google Apps Script Project `API Project`: click on the blue button at the top and select (`API Project - api-project-##########`) from the list.\n1. Enable the Google Drive API\n   1. Click `APIs \u0026 services` in the left nav and then select `Library`\n   1. Search for `Drive` and select the Google Drive API listing.\n   1. Click `Enable API`\n1. Acquire Google Drive Client Secret Credentials\n   1. If you just enabled the Drive API, hit `Create Credentials`, otherwise , go to `Credentials` in the left menu, select `Create credentials` and choose `OAuth client ID`\n   1. Select your email address from the dropdown OAuth consent screen and assign your add-on a `Project Name` i.e. `My API access project`. This can always be changed later.\n   1. In the menu that appears, choose `Other` for the `Application type`.\n   1. Give it any name you like (i.e. Macbook) and click `Create`.\n   1. Finally, download your credentials using the `Download as JSON` button to the right. Save these credentials to a location of your choosing; `~/Downloads` is fine.\n   1. You may close the Developer Console window.\n\n#### 1.2 Create an independent Developer Console Project\nUse an independent Developer Console Project if the default `API Project` is deleted, in use or if you want to keep permissions separated.\n\n1. Create a new Dev Console Project\n   1. Use [this link](https://console.developers.google.com/start/api?id=drive\u0026credential=client_key) to create the project. It will auto-activate the Google Drive API. If you have multiple Google Accounts, append `\u0026authuser=1` to the end of the url to choose which account to login with. Note that `authuser` is zero-indexed.\n   1. Make sure `Create a New Project` is selected and hit `Continue`.\n   1. Once the project has been created, click `Go to Credentials`.\n1. Acquire Google Drive Client Secret Credentials\n   1. Click client-ID in the grey paragraph\n   1. Select your email address from the dropdown OAuth consent screen and assign your add-on a `Project Name` i.e. `My API access project`. This can always be changed later.\n   1. In the menu that appears, choose `Other` for the `Application type`.\n   1. Give it any name you like (i.e. Macbook) and click `Create`.\n   1. Finally, download your credentials using the `Download as JSON` button to the right. Save these credentials to a location of your choosing; `~/Downloads` is fine.\n   1. You may close the Developer Console window.\n\nTo return to this project later, select `Resources` \u003e `Developer Console Project` while editing your script. Then click the link at the top of the dialog to open the Developer Console with this project selected.\n    \n### 2. Authenticate `gapps`\n\nThis process will set up Google Drive authentication to allow uploading and importing of the Apps Script project.\n\n1. Run `gapps auth path/to/client_secret_abcd.json` i.e. `gapps auth ~/Downloads/client_secret_1234567890-abcd.apps.googleusercontent.com.json`\n1. Follow the directions by clicking on the link generated by the script.\n1. After you're successfully authenticated, feel free to delete the `client_secret.json` credentials file.\n\nYou can pass the option `--no-launch-browser` to generate a url that will give you a code to paste back into the console. This is useful if you're using ssh to develop.\n\n### 3. Initialize your project\n\nThis proces will create `gapps.config.json` and a sub-directory where all Apps Script project files will be downloaded to. You can either use an existing project or create a new one.\n\n#### 3.1 An existing Apps Script project\n\n1. Navigate to your Apps Script project from Google Drive (must be a [standalone script](https://developers.google.com/apps-script/guides/standalone))\n1. Get your project ID from the address bar, located after `/d/` and before `/edit` i.e. '//script.google.com/a/google.com/d/__abc123-xyz098__/edit?usp=drive_web'\n1. Navigate to a directory where your Apps Script project will live\n1. Run `gapps init \u003cfileId\u003e` within your project directory i.e. `gapps init abc123-xyz098`\n\n#### 3.2 A new Apps Script project\n\n1. Head to [https://script.google.com](https://script.google.com) and create a new blank project.\n1. Save the mostly empty project and give it a name. Saving is important; the project is not in your Google Drive until it is saved.\n1. Get your project ID from the address bar, located after `/d/` and before `/edit` i.e. '//script.google.com/a/google.com/d/__abc123-xyz098__/edit?usp=drive_web'\n1. Navigate to a directory where your Apps Script project will live\n1. Run `gapps init \u003cfileId\u003e` within your project directory i.e. example, `gapps init abc123-xyz098`\n\n\n### 4. Develop locally\n\nStart scripting and enjoy total freedom of your local dev environment and source control options! Create script files with a `.gs` or `.js` extension and html files with a `.html` extension\n\n### 5. Upload New Files\n\nRun `gapps upload` from within your project directory. You should then be able to reload your Apps Script project in the browser and see the changes.\n\n\n## Best Practices\n\nCheck out Matt Hessinger's blog post: [Advanced development process with apps](http://googledevelopers.blogspot.com/2015/12/advanced-development-process-with-apps.html)\n\n## Docs\n\n### gapps auth\n\n```\n  Usage: gapps auth [options] \u003cpath/to/client/secret.json\u003e\n\n  Authorize gapps to use the Google Drive API\n\n  Options:\n\n    -b, --no-launch-browser  Do not use a local webserver to capture oauth code\n                              and instead require copy/paste of key returned in\n                              the browser after authorization completes.\n    -p, --port [port]        Port to use for webserver\n```\n\nPerforms the authentication flow described in the quickstart above.\n\n### gapps init\n\n```\n  Usage: gapps init|clone \u003cfileId\u003e [options]\n\n  Initialize project locally. The external Apps Script project must exist.\n\n  Options:\n    -k, --key [key]\n    -s, --subdir [subdir]\n    -o, --overwrite\n```\n\nCreates `gapps.config.json`, which contains information about your Apps Script project and downloads all project files into a subdirectory (default: `src/`)\n\n### gapps upload\n\n```\n  Usage: gapps upload|push\n\n  Upload back to Google Drive. Run from root of project directory\n```\n\nUpload the project to Google Drive. Sources files from `./src` or the\nconfigured subdirectory.\n\n### gapps oauth-callback-url\n\n```\n  Usage: gapps deployment oauth-callback-url\n\n  Get the OAuth Callback URL for a project\n```\n\nReturns the OAuth Callback URL required by most 3rd-party OAuth services.\n\n## Development\nPlease submit any bugs to the Issues page. Pull Requests also welcome.\n\nIf you want to develop, clone down the repo and have at it! You can run `npm link` from the root directory of the repo to symlink to your local copy. You'll have to uninstall the production version first `npm uninstall -g node-google-apps-script`.\n\n## Limitations\n\n`gapps` allows you to nest files in folders, but the Apps Script platform expects a flat file structure. Because of this, **no files can have the same name, even if they are in separate directories**. One file will overwrite the other, making debugging difficult.\n\nYour add-on must be developed as a [standalone script](https://developers.google.com/apps-script/guides/standalone)\nand tested within Doc or Sheet. This means that it cannot use certain functions of [bound scripts](https://developers.google.com/apps-script/guides/bound), namely installable triggers. While testing within a Doc, you have access to the\n\"Special methods\" mentioned in [the docs](https://developers.google.com/apps-script/guides/bound), though. If\nyou followed the quickstart above, you should be set up correctly.\n\n## Common Issues\n\nThe Google Drive API frequently returns a *400* error without a helpful error message. Common causes for this are:\n\n- **javascript formatting errors**\n  - The server-side javascript code (`.js` or `.gs`) is validated upon upload.\n  - If there is a syntax error, the upload will fail.\n- The project does not exist yet.\n  - Verify that the project exists in your Google Drive folder.\n  - If you have been added to an existing project, verify that the owner has shared the file with you with the \"can edit\" permission.\n- Missing server-side libraries\n  - verify that any required Libraries (frequently `Underscore` or `OAuth2`) have been added to the Apps Script project\n- Authentication error\n  - Verify that `~/.gapps` exists and has 4 values: `client_id`, `client_secret`, `redirect_uri`, and `refresh_token`\n  - To reset authentication, 'rm ~/.gapps' and then perform the authentication steps in part #2 of the quickstart again.\n\n## Acknowledgements\n\nHuge thanks to [Shrugs](https://github.com/Shrugs) for a massive PR that bumped this project to v1.0\n\n## Extra Resources\n\n- [Google Apps Script Documentation](https://developers.google.com/apps-script/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanthareja%2Fnode-google-apps-script","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanthareja%2Fnode-google-apps-script","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanthareja%2Fnode-google-apps-script/lists"}