GiitHub Actions의 Commiit Message Injection
3134 단어 GitHubActionsGitHub
날과 씨
GiitHub의 복제품push를 GiitHub Actions에서 구축을 실행하고 결과를 Slack에 알리는 경우가 많다고 생각했는데 한 번은 특정한 제출만 건물이 떨어지는 현상을 겪었다.
GiitHub Actions 로그를 찾아봤는데 슬랙의 API를 두드리다가 떨어진 것 같아요.
- name: Slack Notification
run: |
jq -n '{
username: "${{ github.event.repository.name }} ",
attachments: [
{
"author_name": "${{ github.actor }}",
"author_icon": "${{ github.event.sender.avatar_url }}",
"title": ${{ github.event.head_commit.message }}
}
]
}' | curl -H 'Content-Type: application/json' -d @- ${{ secrets.SLACK_WEBHOOK_URL }}
나는 단지 jq 명령으로 요청 데이터를 만들고curl 명령으로 메일을 보낼 뿐이다.그러나 제출 메시지에 특수 기호가 포함되면 jq 명령이 잘못되어 구축이 떨어진 것 같습니다.여기서 갑자기 제출 메시지를 슬랙 API 요청으로 바꾸면 삽입할 수 있지 않을까요?이렇게 생각하면서 다음처럼 요청을 다시 쓰고 실행하면 성공적으로 주음을 할 수 있다니!
Commit Message Injection", title_link: "https://www.kinto-technologies.com/
그러니 위성부터 처리합시다.대응
jq 명령에
--arg
옵션이 있습니다. 이 옵션을 사용하십시오. (추가:
--arg a v set variable $a to value <v>;
jq명령의 첫 줄을 jq -n --arg msg "${{ github.event.head_commit.message }}
로 바꾸고, ${{ github.event.head_commit.message }}
의 줄을 $msg
로 바꾸다.- name: Slack Notification
run: |
jq -n --arg msg "${{ github.event.head_commit.message }} '{
username: "${{ github.event.repository.name }} ",
attachments: [
{
"author_name": "${{ github.actor }}",
"author_icon": "${{ github.event.sender.avatar_url }}",
"title": $msg
}
]
}' | curl -H 'Content-Type: application/json' -d @- ${{ secrets.SLACK_WEBHOOK_URL }}
따라서 제출 메시지는 문자열로 처리되고 안전하게 제출 메시지가 슬랙에 전송됩니다.자사는 도요타 자동차 지사인 킨토 등의 기획·개발을 진행하고 있으며 엔지니어를 모집 중이다.
웹 페이지 정보
Reference
이 문제에 관하여(GiitHub Actions의 Commiit Message Injection), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/batimiasu/items/a7340d7d628647a9b46a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)