zenn.dev
main.go package main import "fmt" type Foo struct { I int J int } func (foo *Foo) Sum() int { return foo.I + foo.J } func main() { foo := &Foo{1, 2} fmt.Println(foo.Sum()) } helper_test.go package main import ( "fmt" ) func (foo *Foo) Dump…
terraformからGoogleスプレッドシートの値を取得したいことがたま〜にあるので、少し前にスプレッドシート取得用のproviderを作った。 github.com サービスアカウントにスプレッドシートを共有して シート名とレンジを指定するとその範囲のデータをJSON文字…
github.com/jackc/pgx/v5 v5.7.6 での検証 pgx.Conn pgx.Connを使っている場合は、[]stringをそのまま使えるのであまり考える必要はない。 package main import ( "context" "fmt" "log" "github.com/jackc/pgx/v5" ) func main() { ctx := context.Backgrou…
Google Apps ScriptからプライベートなサービスのAPIを呼び出す場合、何らかの認証が必要になるので、GASから取得したOAuth2アクセストークンを検証するプロキシサーバを作ってみた。 github.com 仕組み ScriptApp.getOAuthToken()を使うと有効なユーザーの …
EventBrigeのcron式のパーサ cronplan に以下のようなバグ報告があった。 github.com 5 10 31W * ? 2027の出力が cronplan とEventBridgeのコンソールで異なるとのこと。 Wはmonth-of-dayの末尾につけると、指定した日付が平日ではない場合、近い平日に寄せ…
TerraformでLambdaをデプロイするためのプロバイダ terraform-provider-lambdazip にJavaScript・Go・Python・Ruby・Rustの例を追加した。 github.com JavaScript https://github.com/winebarrel/terraform-provider-lambdazip/blob/main/lambdazip.tf.sampl…
terraform-provider-lambdazipを修正してPythonのデプロイにもある程度対応できるようになったのでメモ。 github.com ディレクトリ構成 pylambda/ ├── .gitignore ├── main.tf └── src/ ├── lambda_function.py ├── requirements.txt └── ruff.toml Pythonソ…
一身上の都合により terraform-provider-firebaseremoteconfig を作った。 github.com こういう感じでFirebaseのRemote Configのパラメータを管理できる。 resource "firebaseremoteconfig_parameter" "foo" { key = "foo" value_type = "JSON" default_valu…
自作のDB負荷テストツール qube を Zstandard Seekable Format に対応させた。 Zstandard Seekable Format is 何? github.com 名前の通りシーク可能なZstandardのフォーマット。 ファイル末尾にシークテーブルをつけて解凍しなくても任意のオフセットからデ…
terraformのjsonencode()には<, >, &を \u003c, \u003e, \u0026 に変換するよく知られた仕様がある。 developer.hashicorp.com When encoding strings, this function escapes some characters using Unicode escape sequences: replacing <, >, &, U+2028, …
gist758d768c2efb4b17b45ecb9d4e915c22 CLIも作った。 github.com 実はいにしえのgoamz(のフォーク?)が対応していて、それを使ったツールも作ったけど、SSOやAWS_PROFILEの対応が辛いので作り直した。リトライまわりは未対応
needs.job_id.result がいずれかのmatrixの結果しか返さない、っぽい。 GitHub ActionsのMatrix Jobsの結果を受け取るワークアラウンド Status check for a matrix jobs · community · Discussion #26822 Get status of parallel jobs into a single Webhook…
ssowrapというaws2-wrapのGolang製シングルバイナリ版を作った。 github.com Golang版のaws2-wrapは頑張って探せばありそうだったけれど ぱっとみ、見つけられなかった 以前作ったSSOクレデンシャル出力ツールの再設計がしたかった ssowrapを含むDockerイメ…
github.com
github.com
cronplanにそれなりにスターがついたので、go.modからテスト用パッケージを除いてみた。 以下、cronplanをv1.10.1→v1.10.4に変更したときのgo.sumの差分。 $ go get github.com/winebarrel/cronplan@v1.10.1 $ go mod tidy $ cp go.sum go.sum.bak $ go get …
https://github.com/winebarrel/cronplan?tab=readme-ov-file#cronskd-cli cronの時間の隙間を探すことがよくあるので… $ cat exprs.txt 0 10 * * ? * 15 12 * * ? * 0 18 ? * MON-FRI * 0 8 1 * ? * 5 8-10 ? * MON-FRI * $ cronskd -s '2024-11-11' exprs.…
以前作ったPagerDuty通知用のmacOSアプリを書き直してPagerCallというアプリを作った。 github.com 基本的な機能は前作のPDStatusとあんまり変わってなくて、メニューバーに常駐してインシデントの一覧を表示して通知を飛ばすだけのもの。 ただPDStatusは初…
BytebaseのようにSQLだけでなく任意のワンショットのコマンドの実行をAtlantisのワークフローに乗せられるのではないか…ということを思いついたので検証してみた。 まずワンショットのコマンドのterraform providerを作成。 github.com resource "oneshot_ru…
一年前のGoCon Kyotoの発表資料をどこにも載せていなかったので、書いておきます。 Golangを使ったDB用負荷テストツールの開発 by @winebarrel github.com
envchainのバックエンドにAWS Secrets Managerを使ったようなツールを作った。 github.com 使い方 Secrets Managerに秘匿値を設定した上で $ aws secretsmanager get-secret-value --secret-id foo/bar { ... "SecretString": "BAZ", ... $ aws secretsmanag…
aws_iam_policy_documentを使っていると、terraform planを実行したときに差分が大きくて変更がわかりにくくなることがあったので検証してみた。 具体的には以下のようなパターンで差分が大きくなった。 まず以下のようなtfがあったとして resource "aws_clo…
github.com
レビューアの立場で問題のスコープを広げすぎないように注意する
もうsedのコマンドの検索はしないぞ github.com
プルリクエストがマージ可能になったらいち早く知りたいので、承認+テストをパスしたら通知を送るmacOSのアプリを作った。 github.com approve不要なPRについてはテストが完了した時点で通知がくる(はず)。 テストがこけても通知が来る。rejectされても通…
Golangの構造体の情報をダンプするライブラリを作った。 github.com 使い方 こういう感じの設定用structがあったとして type config struct { Home string `env:"HOME,required"` Port int `env:"PORT" envDefault:"3000"` Bar *subconfig `envPrefix:"SUB_"…
https://chromewebstore.google.com/detail/github-hide-finish-commen/ejflccgjhcloeienodjdmngdhockjbdf github.com 10回に1回ぐらい「Approveしたと思ったらCommentだった」ということがあるので、Finish your reviewからCommentを消す拡張を作ってみた。
github.com 本体は ERB.new().result を呼ぶだけで、それをmrubyでdarwin/linuxのx86_64/aarch64向けにビルドした。 以下のようにシングルバイナリプログラムを通してテンプレートファイルを処理できる。 <%- to = ENV["MAIL_TO"] priorities = ENV["PRIORIT…