在 AWS CodePipeline 的提交中查找更新了哪些文件

Find which files were updated in a commit in AWS CodePipeline

我正在通过 Bitbucket 通过 PR 提交触发 AWS CodePipeline。 有什么方法可以找到哪些文件是 updated/created 最新提交的?

我查看了 Environment Variables 并查看了管道的详细信息和历史 CLI 命令: $ aws codepipeline list-pipeline-executions --pipeline-name <name>$ aws codepipeline get-pipeline-state --name <name> 但他们没有我需要的信息。

为什么我需要这个? 管道触发一个或多个 Airflow DAG 并监听它们的状态。我们在分支名称中包含 DAG 名称,我们使用 CODEBUILD_WEBHOOK_HEAD_REF 解析它并触发 DAG。这很容易出错,并且由于 DAG 名称与其文件名匹配,我们希望自动提取它们。

这是可行的吗?感谢您的帮助!

您可以从管道执行中获取提交哈希。 使用 cli 时:

aws codepipeline list-pipeline-executions --pipeline-name <pipeline-name>

你得到一个执行列表,第一个执行是最新的。

pipelineExecutionSummaries: [ 
    { ...
       sourceRevisions: [
         {
             ...
             revisionId: "<commit-hash>"
          }
        ]
    }
...
]

然后当您拥有提交哈希时,您可以获得在该提交中修改的文件

git diff-tree --stat <commit-hash>

进一步的逻辑取决于您的应用程序,您在获得修改的文件时可以处理。