在 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>
进一步的逻辑取决于您的应用程序,您在获得修改的文件时可以处理。
我正在通过 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>
进一步的逻辑取决于您的应用程序,您在获得修改的文件时可以处理。