與其他開發人員合作

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 專案或將 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 設定。這對外掛程式來說特別重要

協作與觸發條件

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

協作與程式庫

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

協同合作與使用者屬性

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