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
0
51
改行には気をつけよう
runn で trim() を忘れてバグった話
ゆるゆる
September 18, 2024
Tweet
Share
More Decks by ゆるゆる
See All by ゆるゆる
Docker bake(とCache)でCI/CDを改善する
sunyryr
0
600
WebAPI の設計
sunyryr
0
87
OpenAPI×LaravelでAPI開発を格段に便利にする方法
sunyryr
0
1.1k
OpenAPIことはじめ
sunyryr
0
120
server side swift - codable
sunyryr
0
250
iOSアプリだけじゃないSwift
sunyryr
0
150
Other Decks in Programming
See All in Programming
Ruby×iOSアプリ開発 ~共に歩んだエコシステムの物語~
temoki
0
270
意外と簡単!?フロントエンドでパスキー認証を実現する WebAuthn
teamlab
PRO
2
720
Introducing ReActionView: A new ActionView-compatible ERB Engine @ Rails World 2025, Amsterdam
marcoroth
0
640
開発チーム・開発組織の設計改善スキルの向上
masuda220
PRO
19
11k
FindyにおけるTakumi活用と脆弱性管理のこれから
rvirus0817
0
490
AIを活用し、今後に備えるための技術知識 / Basic Knowledge to Utilize AI
kishida
21
5.6k
時間軸から考えるTerraformを使う理由と留意点
fufuhu
15
4.6k
請來的 AI Agent 同事們在寫程式時,怎麼用 pytest 去除各種幻想與盲點
keitheis
0
110
プロポーザル駆動学習 / Proposal-Driven Learning
mackey0225
2
1.2k
テストコードはもう書かない:JetBrains AI Assistantに委ねる非同期処理のテスト自動設計・生成
makun
0
250
「待たせ上手」なスケルトンスクリーン、 そのUXの裏側
teamlab
PRO
0
490
AIでLINEスタンプを作ってみた
eycjur
1
230
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Designing for humans not robots
tammielis
253
25k
Statistics for Hackers
jakevdp
799
220k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
Music & Morning Musume
bryan
46
6.8k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Context Engineering - Making Every Token Count
addyosmani
1
33
How to train your dragon (web standard)
notwaldorf
96
6.2k
Site-Speed That Sticks
csswizardry
10
810
Gamification - CAS2011
davidbonilla
81
5.4k
Building an army of robots
kneath
306
46k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
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