Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
改行には気をつけよう
Search
ゆるゆる
September 18, 2024
Programming
79
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
改行には気をつけよう
runn で trim() を忘れてバグった話
ゆるゆる
September 18, 2024
More Decks by ゆるゆる
See All by ゆるゆる
Docker bake(とCache)でCI/CDを改善する
sunyryr
0
690
WebAPI の設計
sunyryr
0
91
OpenAPI×LaravelでAPI開発を格段に便利にする方法
sunyryr
0
1.2k
OpenAPIことはじめ
sunyryr
0
150
server side swift - codable
sunyryr
0
280
iOSアプリだけじゃないSwift
sunyryr
0
170
Other Decks in Programming
See All in Programming
不幸な GC
chencmd
0
880
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
450
Foundry Localでエージェント開発
seosoft
0
130
FastAPI の並行処理モデルを完全に理解する
hoto17296
9
3.8k
tsc.rip を支える技術 / Kyoto.なんか #8
susisu
0
4.3k
AIの中の人になってみる
htkym
0
160
LLMは4年分のCompose移行を再現できるのか?実プロダクト279件のXMLで探る自動化の境界線
makun
0
400
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
0
140
ソフトウェアラスタライザ
fadis
1
790
Can LLMs Replicate 4 Years of Compose Migration? Exploring the boundaries of automation with 279 XML files from a real product
makun
0
130
AI時代に学ぶ 好きなルール 嫌いなルール Linter編
shorty5121
0
860
Go 1.27からのGODEBUG / Go 1.27 リリースパーティ #go127party
mazrean
0
310
Featured
See All Featured
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
810
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
430
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Git: the NoSQL Database
bkeepers
PRO
432
67k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
650
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Abbi's Birthday
coloredviolet
3
9.8k
Transcript
改行には気をつけよう runn exec 編 エンジニアミートアップ @WeWork KDX虎ノ門
自己紹介 ゆるゆる / Taiyo Minagawa 株式会社ゆめみ バックエンドエンジニア 趣味 : 旅行、名取さな、最近は自宅
K8s @sun_yryr エンジニアミートアップ @WeWork KDX虎ノ門
runnとは? シナリオベースのテストツール /自動化ツール HTTP、 gRPC、 DB、 Chrome DevTools、シェルコマンドなどの操作を YAMLで記述 返り値のバリデーションを行ったり、返り値を次のステップに渡したりできる
k1LoW/runn 改行には気をつけよう - runn exec 編 エンジニアミートアップ @WeWork KDX虎ノ門 3
runn の exec ランナー シェルコマンドを実行可能 runn を動かしているホストにインストールされているコマンドを組み込めるた め、これのおかげで自由度がすごいことになります 例: 直前のHTTPレスポンスのuser_idをbase64エンコード
(して後続で使う) steps: - exec: cmd: echo '{{ previous.res.body.user_id }}' | base64 bind: token: '{{ current.stdout }}' - req: /api/v1/users/me: post: headers: Authorization: 'Bearer {{ token }}' 改行には気をつけよう - runn exec 編 エンジニアミートアップ @WeWork KDX虎ノ門 4
遭遇した問題 後続の API リクエストで認証エラーが発生する 改行には気をつけよう - runn exec 編 エンジニアミートアップ
@WeWork KDX虎ノ門 5
原因 コマンドによっては出力の最後に改行が入る この改行がトークンの一部として扱われてしまう つまり、こういうことです → token = {base64_encoded_token}\n 改行には気をつけよう -
runn exec 編 エンジニアミートアップ @WeWork KDX虎ノ門 6
解決策 trim() 関数を使用して改行を除去 steps: - exec: command: echo '{{ previous.res.body.user_id
}}' | base64 bind: token: '{{ trim(current.stdout) }}' 改行には気をつけよう - runn exec 編 エンジニアミートアップ @WeWork KDX虎ノ門 7
(個人的な ) 関連する落とし穴 echo ではなく echo -n $ echo "foo"
| base64 Zm9vCg== $ echo -n "foo" | base64 Zm9v 改行には気をつけよう - runn exec 編 エンジニアミートアップ @WeWork KDX虎ノ門 8
まとめ 改行コードには気をつけよう とりあえず出力のバインドの時は雑に trim() を使っても良いと思う 改行には気をつけよう - runn exec 編
エンジニアミートアップ @WeWork KDX虎ノ門 9
ご清聴ありがとうございました! 改行には気をつけよう - runn exec 編 エンジニアミートアップ @WeWork KDX虎ノ門 10