Johnman.md

プログラミングのことや個人的なことを書きます。たぶん。

Go

GitHub CLIで外部リポジトリを指定すると向き先がgithub.comになる

概要 問題に遭遇した経緯 原因の解明 gh-bumpでの対応 所感

リポジトリのtagをbumpするgh extensionを作った

先日GitHub CLI 2.0が公開され、拡張機能を公開することができるようになりました。 github.blog 最近自分でCLIを書いていてタグを手で打つのが面倒だなぁと思っていたので、いい機会だと思い簡単にリリースをbumpできるgh extensionを作成しました。 リポジ…

outputsだけを追加してtarraform planするとtfnotifyがパースエラーになる

Terraform を触っていて若干面倒になった部分があったのでメモ。 現状としては、「outputsだけを追加してterraform planするとtfnotifyがパースエラーで落ちる」というものです。 tfnotifyとは tfnotifyのexit code判定 outputsだけを追加したときの出力 対…

【Go】stringがJSON形式かどうかを判定する

stringを受け取った際、そのstringがJSONの形式を持っているかを判定したい場合に使える。 func isJSONString(s string) bool { var js json.RawMessage err := json.Unmarshal([]byte(s), &js) return err == nil } やっていることは簡単で、json.RawMessag…

【Go】GitHub Actionsでテストやビルドにキャッシュを効かせる

概要 キャッシュを効かせる まとめ 概要 最近、身内で使うDiscord botを作っています。 そのCIにGitHub Actionsを使っているんですが、CIが走るたびに結構時間がかかるなぁという印象を持っていました(だいたい1分30秒くらい)。 modulesやビルドにキャッシ…

Goa v3でmultipart/form-dataを扱うために必要なこと

これは Go 2 Advent Calendar 2020 の16日目の記事です。 はじめに Goaでのmultipart/form-dataを使ったファイルアップロード v1 v3 multipart.go の実装 おわりに はじめに 先日、Goaを使って実装している API で Goa v1 から v3 へバージョンアップを行な…

[Go] handlerに引数を追加する

先日、GoでAPIを書いていた時にServeHTTP関数に引数を追加したい場合があったのでその対処法。 GoのHandlerは次のように定義されています。 type Handler interface { ServeHTTP(ResponseWriter, *Request) } このinterfaceを満たした関数を実装することでha…

echo用にzerologのラッパーzeroechoをつくった

最近仕事でechoとzerologを使う機会があったので、勉強がてらにwrapperを作ってみました。 ぶっちゃけ使うことはないと思います。 github.com 実装 パッケージ公開 まとめ 実装 echo.Loggerのinterfaceは次のように定義されてます。 Logger interface { Outp…

みんなのGo言語 改訂2版がすごくよかった

先日、みんなのGo言語 改訂2版を読み終えました。 【改訂2版 みんなのGo言語/松木 雅幸他】実践的な内容で勉強になる → https://t.co/Iqg4D124qr #bookmeter— じょん (@johnmanjiro13) 2020年7月29日 実は1版の方も一度購入していたんですよね。ただその時は…