GitHub開源自家用來檢查套件相依的工具Licensed,以幫助開源社群能用同樣的方式,簡化授權程序。

GitHub表示,在實務上,列舉專案的相依關係可能是一件困難的事。最理想的情境,套件管理器會提供一份可解析的專案相依關係列表檔案,方便開發者追蹤或是產生後續的授權文件,但是比較複雜的情況,可能還需要用使用命令列工具,跨不同語言套件取得其個別的授權文件。

而Licensed原本是用來幫助GitHub工程師在開發周期時,發現潛在的相依授權許可問題的工具,並確保在專案開發的同時,能持續更新相依關係授權文件。Licensed能用在任何的Git倉儲庫,對多個專案多語言類型和套件管理器,查詢、快取以及檢查相依關係的授權許可元資料(Metadata)。

Licensed讀取配置文件,決定相依關係的存放的位置以及方式。一個配置文件可以指派給單個或多個Licensed應用程式,根據配置文件的內容,Licensed會搜尋路徑尋找並列舉每一個來源的相依關係,包括名稱、版本與首頁等資料。

一旦找到了相依關係的元資料,Licensed會將其快取於指定的資料夾中。GitHub表示,將相依關係資料放在程式碼倉儲庫中,檢查相依關係便能成為開發工作流程的一部分,還能與CI工具組合使用,在專案開發過程隨時進行維護,只要相依關係發生變化,便立即更新授權許可資料,以維持資料的正確性。

而且將相依關係資料放在程式碼倉儲庫中,同時代表著以版本控制的概念,紀錄相依關係的變化歷程,這能使未來追蹤特定的相依關係更加容易。

GitHub提到,不少套件的授權許可要求後續專案發布相依關係文件,使用Licensed可以加速這件事,自動化建立與發布授權許可,並且為專案提供詳細的開源資源列表。當然,Licensed也能用來檢查專案與套件的任何相依關係,並自動產生報告,警告使用者應該注意或是違反授權許可的部分。


Advertisement

更多 iThome相關內容