

Amazon CodeCatalyst は新規のお客様には提供されなくなりました。既存のお客様は、通常どおりサービスを引き続き使用できます。詳細については、「[CodeCatalyst から移行する方法](migration.md)」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# プロジェクトの詳細のコンテキストオブジェクトへのアクセス
<a name="context-objects-lm"></a>

ブループリント作成者は、合成中にブループリントのプロジェクトからコンテキストにアクセスして、スペースやプロジェクト名、プロジェクトのソースリポジトリ内の既存のファイルなどの情報を取得できます。ブループリントが生成する再合成のフェーズなどの詳細を取得することもできます。例えば、コンテキストにアクセスして、アンセスターバンドルまたは提案されたバンドルを生成するために再合成するかどうかを確認できます。その後、既存のコードコンテキストを使用して、リポジトリ内のコードを変換できます。例えば、独自の再合成戦略を記述して、特定のコード標準を設定できます。戦略は、小さなブループリントの `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));
    }
  }
```