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
77
0
Share
改行には気をつけよう
runn で trim() を忘れてバグった話
ゆるゆる
September 18, 2024
More Decks by ゆるゆる
See All by ゆるゆる
Docker bake(とCache)でCI/CDを改善する
sunyryr
0
680
WebAPI の設計
sunyryr
0
90
OpenAPI×LaravelでAPI開発を格段に便利にする方法
sunyryr
0
1.2k
OpenAPIことはじめ
sunyryr
0
150
server side swift - codable
sunyryr
0
270
iOSアプリだけじゃないSwift
sunyryr
0
170
Other Decks in Programming
See All in Programming
AI駆動開発勉強会 広島支部 第一回勉強会 AI駆動開発概要とワークショップ
hayatoshimiu
0
440
inferと仲良くなる10分間
ryokatsuse
1
370
Stage 3 Decorators でできること / できないこと / TSKaigi 2026
susisu
1
1.5k
Inside Stream API
skrb
1
630
Oxlintのカスタムルールの現況
syumai
5
990
TypeScriptだけでAIエージェントを作る フロント・エージェント・インフラのフルスタック実践
har1101
6
1.3k
tsserverとは何だったのか、これからどうなるのか
nowaki28
1
440
AIエージェントの隔離技術の徹底比較
kawayu
0
460
AutonomyとControlのあいだ:Graflowで記述するAIエージェント協調
myui
0
100
TypeSpec で繋ぐ複数プロダクトの型安全
maroon8021
1
370
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
140
Migrations : C'est une question d'hygiène !
vinceamstoutz
0
3.2k
Featured
See All Featured
エンジニアに許された特別な時間の終わり
watany
107
250k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.5k
[SF Ruby Conf 2025] Rails X
palkan
2
1.1k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.7k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
RailsConf 2023
tenderlove
30
1.5k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
940
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
350
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
260
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
GraphQLとの向き合い方2022年版
quramy
50
15k
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