與其他開發人員合作

Apps Script 提供一些功能,可協助您和其他開發人員同時建構及維護指令碼、外掛程式和網頁應用程式。

協同合作基本概念

若要進行專案協作,您和協作者都必須擁有 Apps Script 專案檔案 (以及其容器,若為繫結指令碼) 的編輯者權限。如此一來,團隊的所有人都能查看及變更 Apps Script 程式碼。編輯者也可以建立新程式碼版本、發布外掛程式,以及將指令碼部署為網頁應用程式或 Apps Script API 的執行檔。

如要協助團隊預先規劃如何處理編輯、審查、版本管理,以及 (如適用) 部署及發布專案、外掛程式或網頁應用程式,您可以提前規劃。獨立專案通常是最簡單的協作方式,因為這類專案會直接顯示在 Google 雲端硬碟中,而且也是建議用於外掛程式和網頁應用程式開發的專案類型。

協同合作時,如果指令碼專案擁有者未將專案擁有權轉移給團隊的其他成員,就會發生常見問題。這可能會導致您無法維護或更新專案。將指令碼專案放在共用雲端硬碟中可以避免這個問題,因為共用雲端硬碟中的檔案沒有特定的擁有者。

使用 clasp 指令列工具協同合作

clasp 可讓您在 script.google.com 與本機檔案系統之間同步處理專案。如此一來,如果您和協作者使用原始碼控制管理軟體 (例如 git),就能簡化及自動開發程式碼。

詳情請參閱使用 clasp 的指令列介面指南。

透過共用雲端硬碟協同合作

共用雲端硬碟 (舊稱「團隊雲端硬碟」) 是 Google 雲端硬碟中的共用空間,可讓雲端硬碟群組的使用者更有效率地協同合作。共用雲端硬碟中的檔案由整個群組擁有,而非個人擁有這意味著,協作者離開群組時,不會取得檔案擁有權和其控制權。

共用雲端硬碟也可以讓您跨網域移動檔案;一個網域中的共用雲端硬碟可以讓其他網域的協作者在共用雲端硬碟中移動檔案。這對 Apps Script 開發人員來說非常實用,因為這可讓團隊為不同網域中的客戶開發外掛程式、網頁應用程式或其他程式碼。

使用共用雲端硬碟進行 Apps Script 專案協作時,請注意下列事項:

  1. 具有共用雲端硬碟編輯者權限的協作者,可在共用雲端硬碟中建立或移動新檔案。身為指令碼編輯者,使用者可以查看及編輯指令碼專案、執行指令碼、建立新指令碼版本、發布外掛程式。
  2. 如要將指令碼部署為適用於 Apps Script API 的網頁應用程式或執行檔,建立部署作業的帳戶必須與指令碼所在的共用雲端硬碟位於相同的網域。
  3. 透過共用雲端硬碟,您可以與群組外的使用者共用共用雲端硬碟中的特定檔案,並更新他們的編輯及查看這些檔案的權限,就和任何其他雲端硬碟檔案一樣。不過,如果使用者是共用雲端硬碟所屬團隊的成員,就無法降低他們對特定檔案的存取權。舉例來說,如果使用者俱有共用雲端硬碟的編輯權限,您就無法將共用雲端硬碟中特定檔案的唯讀存取權變更為「僅供檢視」權限。
  4. 具備共用雲端硬碟完整存取權的協作者也可以刪除檔案和 Apps Script 專案,以及將檔案移出共用雲端硬碟。
  5. 所有容器繫結指令碼都會使用為容器檔案定義的相同檢視者和編輯者存取清單。舉例來說,如果您擁有 Google 試算表的編輯權限,便也擁有任何附加 Apps Script 專案程式碼的編輯權限。將這類容器檔案放入共用雲端硬碟後,共用雲端硬碟的協作者就能取得與容器本身的指令碼程式碼相同的存取權。
  6. 如果指令碼專案位於共用雲端硬碟,其 Cloud Platform (GCP) 專案的存取權可能會受到限制。詳情請參閱 GCP 專案和共用雲端硬碟指南一節。
  7. 如果網頁應用程式的擁有權變更為其他網域的共用雲端硬碟或帳戶,則在單一網域中部署的網頁應用程式也會一併停止運作。如要修正這個問題,只要將指令碼移回原本的網域即可。
  8. 同樣地,如果將共用雲端硬碟從一個網域移至另一個網域,做為 Apps Script API 執行檔部署的指令碼專案在 API 呼叫時也會停止運作。如要修正這個問題,只要將指令碼移回原本的網域即可。

透過共用資料夾協同合作

如果您無法與共用雲端硬碟進行協作,可以改用共用資料夾。如果您建立 Apps Script 專案或移動至其他使用者可存取的 Google 雲端硬碟資料夾,會沿用他們對資料夾的 Apps Script 專案存取權。例如:

  • 如果使用者俱有資料夾的編輯權限,就能編輯或刪除 Apps Script 專案並執行指令碼。
  • 如果使用者只有資料夾的檢視權限,就可以查看 Apps Script 專案並執行指令碼。

透過專案共用功能協同合作

您可以直接與所有協作者共用專案,以便進行專案協作。您可以直接共用位於一般 Google 雲端硬碟資料夾或共用雲端硬碟的指令碼專案。如果使用這個方法,建議您隨著時間仔細規劃該指令碼的擁有者和維護人員。

獨立專案會以檔案的形式顯示在 Google 雲端硬碟中,而且您可以與任何其他檔案一樣進行共用。詳情請參閱「共用檔案和資料夾」。

容器繫結專案不會從 Google 雲端硬碟顯示。如要共用容器繫結專案,請共用父項容器檔案。舉例來說,如果指令碼已繫結至 Google 試算表試算表,您可以將他們設為試算表的編輯者,讓對方成為指令碼的編輯者。容器繫結專案會繼承其容器檔案的檢視者和編輯者存取權設定。

所有容器繫結的指令碼都會使用為容器檔案定義的擁有者、檢視者和編輯者存取權清單。無論是誰建立該指令碼專案,容器擁有者都會取得新指令碼專案的擁有權。

協作與專案資源

資源是與專案相關聯,但與專案程式碼無關的實體。本節說明和專案協作對其資源有何影響,尤其是其 Cloud Platform 專案、觸發條件、程式庫和使用者屬性。

協作與 Google Cloud 專案

每個 Apps Script 專案都有相關聯的 Google Cloud 專案。Google Cloud 專案有專屬的一組擁有者、編輯者和其他角色,可以與可存取指令碼專案的使用者群組不同。

如果您的指令碼專案需要以外掛程式的形式發布,必須使用標準 Google Cloud 專案。當您協作使用標準 Google Cloud 專案的應用程式時,建議您設定 Google Cloud 擁有者和角色,以確保所有協作者都有適當的存取層級。以防您因專案擁有者不再隸屬於您的機構而無法存取專案的 Cloud 設定的情況。這對外掛程式來說格外重要

協同合作與觸發條件

進行專案協作時,您建立的任何可安裝觸發條件均不會與有權存取該專案的使用者共用。如果您需要所有協作者的觸發條件設定一致,可以使用指令碼服務,在執行階段以程式輔助方式建立觸發條件。詳情請參閱透過程式輔助方式管理觸發條件

協作與資料庫

專案協作者可以存取專案中內含的程式庫。不過,如果這些管理員對於所含程式庫沒有至少的讀取層級存取權,就無法使用這些程式庫,在此情況下,指令碼會擲回錯誤。如要進一步瞭解程式庫,請參閱管理程式庫

協作和使用者屬性

使用者屬性是建立該屬性的使用者專屬。這表示專案協作者無法查看或存取您的使用者屬性,您也無法查看或存取他們的屬性。如果想與協作者共用專案專屬屬性,請使用指令碼屬性。詳情請參閱屬性指南