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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
ゆるゆる
September 18, 2024
Programming
76
0
Share
改行には気をつけよう
runn で trim() を忘れてバグった話
ゆるゆる
September 18, 2024
More Decks by ゆるゆる
See All by ゆるゆる
Docker bake(とCache)でCI/CDを改善する
sunyryr
0
660
WebAPI の設計
sunyryr
0
88
OpenAPI×LaravelでAPI開発を格段に便利にする方法
sunyryr
0
1.2k
OpenAPIことはじめ
sunyryr
0
150
server side swift - codable
sunyryr
0
260
iOSアプリだけじゃないSwift
sunyryr
0
160
Other Decks in Programming
See All in Programming
2026-03-27 #terminalnight 変数展開とコマンド展開でターミナル作業をスマートにする方法
masasuzu
0
280
PHP 7.4でもOpenTelemetryゼロコード計装がしたい! / PHPerKaigi 2026
arthur1
1
480
ファインチューニングせずメインコンペを解く方法
pokutuna
0
250
AI時代のシステム設計:ドメインモデルで変更しやすさを守る設計戦略
masuda220
PRO
6
1.2k
「接続」—パフォーマンスチューニングの最後の一手 〜点と点を結ぶ、その一瞬のために〜
kentaroutakeda
5
2.4k
forteeの改修から振り返るPHPerKaigi 2026
muno92
PRO
3
120
PHP でエミュレータを自作して Ubuntu を動かそう
m3m0r7
PRO
2
160
PHPのバージョンアップ時にも役立ったAST(2026年版)
matsuo_atsushi
0
280
Redox OS でのネームスペース管理と chroot の実現
isanethen
0
510
Strategy for Finding a Problem for OSS: With Real Examples
kibitan
0
130
[PHPerKaigi 2026]PHPerKaigi2025の企画CodeGolfが最高すぎて社内で内製して半年運営して得た内製と運営の知見
ikezoemakoto
0
320
Feature Toggle は捨てやすく使おう
gennei
0
400
Featured
See All Featured
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.2k
YesSQL, Process and Tooling at Scale
rocio
174
15k
sira's awesome portfolio website redesign presentation
elsirapls
0
200
Thoughts on Productivity
jonyablonski
76
5.1k
Code Reviewing Like a Champion
maltzj
528
40k
Making Projects Easy
brettharned
120
6.6k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.1k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
160
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
170
Embracing the Ebb and Flow
colly
88
5k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
340
Mobile First: as difficult as doing things right
swwweet
225
10k
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