Вы правы. В этом конкретном случае CodePipeline - это тот, который выполняет API-интерфейс start-build для запуска сборки. CODEBUILD_WEBHOOK_TRIGGER специфичен для CodeBuild и будет установлен только тогда, когда webhook вызовет CodeBuild.
Если вы хотите знать, webhook, который запускает конвейер, вы можете использовать вызов API list-webhooks [1] с дополнительными фильтрами на основе имени конвейерачтобы получить информацию о веб-крюке.
Ссылка: [1] https://docs.aws.amazon.com/cli/latest/reference/codepipeline/list-webhooks.html
Редактировать 1:
Я ошибался, что веб-списки получат необходимую информацию. Я провел несколько тестов, и он только дает вам список веб-хуков, определенных для действия Source.
Самое близкое, что я могу получить, это использование CLI-вызова list-pipe-executeings [2] в вашей спецификации сборки CodeBuild.
Если вы выполните эту команду:
$ aws codepipeline list-pipeline-executions --pipeline-name <Pipeline_Name> --region us-east-1 --max-items 1
Она выдаст вам вывод, подобный следующему:
{
"pipelineExecutionSummaries": [
{
"pipelineExecutionId": "ccdd87a0-41e4-4489-9332-0720dc526b37",
"status": "InProgress",
"startTime": 1573037463.245,
"lastUpdateTime": 1573037463.245,
"sourceRevisions": [
{
"actionName": "Source",
"revisionId": "4d3bcb17e4a71e3d4bf15215954172639716c326",
"revisionSummary": "Merge pull request #3 from shariqmus/readme-edits\n\nUpdate Code.py",
"revisionUrl": "https://github.com/shariqmus/hello-world/commit/4d3bcb17e4a71e3d4bf15215954172639716c326"
}
]
}
],
"NextToken": "eyJuZXh0VG9rZW4iOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAxfQ=="
}
RevisionSummary содержит сведения о связях с общественностью. Вы можете отфильтровать это значение, используя 'jq' [3], поэтому команда в вашей спецификации сборки будет выглядеть примерно так:
- Убедитесь, что служебная роль вашего проекта CodeBuild имеет разрешение на выполнение ListPipelineExecutions наPipeline
- Добавьте следующее в фазе установки Buildspec:
- Добавьте следующее в Buildspec, где вам нужно получитьсообщение о фиксации:
- COMMIT_MSG = $ (aws кодовая строка-список-конвейер-выполнения --pipeline-name --max-items 1 | jq -r '.pipelineExecutionSummaries [0] .sourceRevisions [0] .revisionSummary')
- echo $ COMMIT_MSG
Надеюсь, этот ответ был полезен.
Ссылка:
[2] https://docs.aws.amazon.com/cli/latest/reference/codepipeline/list-pipeline-executions.html
[3] https://stedolan.github.io/jq/