存取專案詳細資訊的內容物件 - Amazon CodeCatalyst

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

存取專案詳細資訊的內容物件

身為藍圖作者,您可以在合成期間從藍圖的專案存取內容,以取得空間和專案名稱等資訊,或是專案來源存放庫中的現有檔案。您也可以取得詳細資料,例如藍圖正在產生的重新同步階段。例如,您可以訪問上下文以了解您是否要重新同步以生成祖系包還是提議的包。然後可以使用現有的代碼上下文來轉換存儲庫中的代碼。例如,您可以撰寫自己的重新同步策略來設定特定的程式碼標準。您可以將策略新增至小型藍圖的blueprint.ts檔案中,或者您可以為策略建立單獨的檔案。

下列範例說明如何在專案的前後關聯中尋找檔案、設定工作流程建置器,以及如何為特定檔案設定藍圖散佈的重新同步策略:

const contextFiles = this.context.project.src.findAll({ fileGlobs: ['**/package.json'], }); // const workflows = this.context.project.src.findAll({ // fileGlobs: ['**/.codecatalyst/**.yaml'], // }); const security = new WorkflowBuilder(this, { Name: 'security-workflow', }); new Workflow(this, repo, security.getDefinition()); repo.setResynthStrategies([ { identifier: 'force-security', globs: ['**/.codecatalyst/security-workflow.yaml'], strategy: MergeStrategies.alwaysUpdate, }, ]); for (const contextFile of contextFiles) { const packageObject = JSON.parse(contextFile.buffer.toString()); new SourceFile(internalRepo, contextFile.path, JSON.stringify({ ...packageObject, }, null, 2)); } }