メンテナンスが終了しているgithub.com/dgrijalva/jwt-goの脆弱性CVE-2020-26160に対応する

go.modでコミュニティメンテナンスバージョンの github.com/golang-jwt/jwt に replace すれば良さそうです。 replace github.com/dgrijalva/jwt-go => github.com/golang-jwt/jwt v3.2.2+incompatible github.com/dgrijalva/jwt-goは様々なパッケージで利用…

GitHub Actionsのサプライチェーンを構成しているDockerイメージやサードパーティActionのコード対して任意のコマンドを実行するツールを作ってみた

注意: 本エントリで紹介するツールは現時点でPoCな実装であり、効果や効率を保証するものではありません。 ちょっと前に社内でGitHub Actionsのサプライチェーン攻撃についての話題があがって、「なるほどー。今時は、リポジトリのコードだけの脆弱性や第三…

Pull Requestベースでgit revertできる pr-revert / pr-revert-action を作った

記事タイトルをみて「え?それもうあるじゃん」と思った方、半分正解で半分不正解かもしれません(私が知らないだけかもしれません)。 マージしたPull Requestをリバート(して新たなPull Requestを作成)する機能はあります。 マージ済みのPull Requestの…

第8回Web System Architecture研究会に参加して「システムの変化に追従可能でかつ理解し易いドキュメントシステムのモデル化」について発表した #wsa研

wsa.connpass.com オンライン開催に参加してきました。 予稿 github.com 発表資料 システムの変化に追従可能でかつ理解し易いドキュメントシステム 発表内容はドキュメントシステム(ドキュメンテーションツール)についてです。 私は、システムを理解するた…

任意のPull Requestの内容を複数のリポジトリに対して一括コピーするツールpr-bulletを作った

GitHub Actions便利ですよね。 ペパボではGitHub Enterprise Server(以下、GHES)が運用されており、GHESでもGitHub Actionsが利用できます。 uses: だけで利用できるリポジトリを横断で再利用可能なActionの存在はかなり生産性を上げていると思います。 そ…

`container:` でUbuntuのBionic以下のDockerイメージを指定してactions/checkout@v2を利用する場合は注意が必要

GitHub Actionsを使っているとき、あまり container: を指定することはないかもしれませんが、例えば以下のように ubuntu:bionic を指定して事前にGitをインストールした上で actions/checkout@v2 を実行したとき name: CI on: push: jobs: build: runs-on: …

GitHub Container RegistoryのDockerイメージをリポジトリに紐づける方法

GitHub Container Registoryにpushしたコンテナイメージをリポジトリに紐づけてPackages欄に出す方法がやっとわかった— k1LoW (@k1LoW) 2021年3月5日 GitHub Container Registoryは、GitHub Package Registryとは異なりPublicなDockerイメージのpullにGitHub…

GitHub Actionsを使用してバージョンを指定してパッチを当てたバイナリをビルドするというフローを自動化する

リポジトリはこちらです。 github.com 何をやっているかというと過去にも実施したWazuh agentにパッチを1行当ててビルドするだけです。 k1low.hatenablog.com ただ、GitHub Actionsの利用方法としてはなかなか面白い使い方かなと思ったのでエントリにしまし…

2020年の振り返りと2021年の抱負

年越しは子供の寝かしつけからの寝落ちでした— k1LoW (@k1LoW) 2020年12月31日 年が変わるタイミングは寝ていました。起きたら明けてました。 2020年の振り返り 内に籠もった年だったのかなと思います。これには様々な要因があるとは思いますが、あまりアク…

フォント周りで作成したGoパッケージの紹介

Go

Goでフォントを扱うことって(おそらく、たぶん、きっと)ほとんどないと思うのですが、私はなぜか文字が入っているpngファイルの生成とかER図とかを出すようなOSSを開発していることから、フォント周りのGoパッケージを作る機会がありました。 どれもパッケ…

Trivy DBを他のデータベースにマイグレーションするツール trivy-db-toを作った

Trivyは言わずと知れた脆弱性スキャナです。 私は最近までコンテナ専用のスキャナだと思っていましたがそんなことはなく、様々な環境に対してOSパッケージやアプリケーションの依存ライブラリの脆弱性を高速に検知してくれる汎用的なスキャナです。 k1low.ha…

サーバが抱えているCVEとパッケージアップグレードによって解決するCVEを確認する方法

Trivyがコンテナ専用のVulnerability Scannerだと思っていた時代が私にもありました(さっきまで— k1LoW (@k1LoW) 2020年12月1日 trivy fs / これだけ。 Trivy便利!コンテナにしか使ってなかったけど何にでも使っていけそう。 こちらからは以上です。 githu…

データベースドキュメント生成コマンド tbls 更新情報 (テンプレート変更機能/ドキュメント内リンクのbaseUrl変更機能/テーブルリレーション自動検出機能)

Go

https://t.co/bxDrGgWriy がマージされたらtblsの新機能紹介エントリ書く— k1LoW (@k1LoW) 2020年11月9日 無事マージされてさらに便利になったtblsの新機能紹介エントリです。ちなみに、自分が追加した機能は1つもありません。 tblsをさらに便利にしてくれる…

GitHubやSTNSと会話して公開鍵を取得・更新するツールkeypを作った

GMOペパボではLinuxユーザ、グループの管理にSTNSやOCTOPASSを利用しています*1。 stns.jp github.com これらは簡単に言うとそれぞれTOMLファイルやGitHub(GHE)のユーザ情報をデータソースとしてLinuxユーザ、グループ、さらに公開鍵の管理をするものです。…

~/.aws/(config|credentials)の設定情報を元にMFAを行い、一時的なセキュリティ認証情報を取得してコマンドを実行するawsdoを作った

久しぶりに使うAWSのprofileがありまして、そのprofileについての記憶が失われていた結果、コマンド実行成功までに時間を溶かしてしまいました。 というのも、私は普段使うprofileではaswrapでAssumeRole(と多要素認証)を透過的に便利に実行していた結果、…

生ログを構造化ログに変換するツールlrepに日時パース機能をつけた

Go

k1low.hatenablog.com の続きです。 ログからSQLiteのDDLやクエリを生成できるなら日時は日時としてパースできたほうが使い勝手がいいと思い実装しました*1。 github.com 名前付き正規表現でログの日時部分に名前をつけて(以下のサンプルだと time )、その…

正規表現を使ってログをカジュアルに構造化ログ/データに変換するツールlrepを作った

Go

正規表現でついつい頑張ってしまう人のための正規表現で頑張るどこかで見たことあるツールできた— k1LoW (@k1LoW) 2020年7月25日 tl;dr Fluentdのregexp parser pluginのCLI版っぽいツールを作りました(個人的に一番伝わりやすい言い方だと思っている)。 …

プロセスやファイルのケーパビリティを確認できるツールを再発明しつつLinux capabilitiesの理解を進めている

最近社内でLinux capabilitiesの話題がでていて「そういえばちゃんと理解していないな」と思ったので、夜ちょこちょこと技術エントリとかmanとかを読んでいました。 Linux Capability - ケーパビリティについての整理 - ローファイ日記 第42回 Linuxカーネル…

Elispのエラーを久しぶりにデバッグした

いつからか、goplsの起動時にいつも以下のようなエラーがでて、定義ジャンプができなくなってしまっていました。プライベートのMacBookでは発生していませんでした。 (file-error "Opening directory" "Permission denied" "//.PKInstallSandboxManager-Syst…

MySQL8.0.11からNO_TABLE_OPTIONSが削除されていた

あれ、もしかしてNO_TABLE_OPTIONSってMySQLから消えてる…? tbls でどうすればいいんだ…。— hamaco (@hamaco) 2020年6月11日 上記のツイートで知りました。 NO_TABLE_OPTIONSが削除されたVerのリリースノートは以下です。 docs.oracle.com NO_TABLE_OPTIONS…

spf13/cobraでサブコマンドとして外部コマンドを実行する

Go

tblsには、tbls-cacoo のような外部コマンドをtbls cacoo のようなサブコマンドとして実行できるような機能を実装しています。私はこれを取り敢えず”外部サブコマンド機能”と呼んでいます。 外部サブコマンド機能は、 コマンド名が tbls-XXX という命名規則…

GitHubに1コマンドでいろいろPUTできるツールghputを作った

ghput pr-comment ghput issue-comment のデフォルトの挙動について注意点を追記しました 最近はGitHubやGH:Eといったサービスのリポジトリと、そのリポジトリと連携するCI/CD環境がある前提で、様々なパイプラインを作ることが普通になってきています。 git…

Cacooのデータベーススキーマ機能で、例えばBigQueryのER図を出力する

Go

Cacooで「データベーススキーマを自動生成できる」という素晴らしい機能が先週発表されました。 cacoo.com Cacooが提供するSQLクエリをデータベースで実行して、その結果をCSVファイルとしてエクスポートしてCacooにアップロードするだけでER図が生成される…

データベースドキュメント生成コマンド tbls 更新情報 ( PostgreSQL publicスキーマ表示仕様変更/Amazon DynamoDB対応/goccy ware etc)

Go

ここ最近tblsのアップデートエントリを書いていなかったのですが、最近変更をいくつか行いました。 このまま放置するとちょっと紹介しきれなくなりそうなので、ここら辺で放出しておこうと思います。 紹介時点のtblsのバージョンはv1.29.0です。 PostgreSQL…

いつの間にか https://play.golang.org/ でサードパーティパッケージをimportできるように、なんならgo.modでバージョンやコミットハッシュを指定できるようになっていた(続きあり)

Go

結論は最後に書いてあります。 PTFという社内勉強会で、私が端々が間違っていたりするちょっと微妙な紹介をしてしまったので、改めてエントリに記載しておこうと思います。 PTFについては以下をご覧ください。 tech.pepabo.com The Go Playgroundでいつの間…

PHPerKaigi 2020で開発開始までのオーバーヘッドとその削減について発表をした #phperkaigi

PHPerKaigiに初参加してきました。 phperkaigi.jp 噂に違わぬ面白さでした。発表もとても面白かったのですが、それ以外の充実度が際立っていたカンファレンスでした。 まず、なんといってもトレーディングカードです。 まさか自分がカードになるとは思わなか…

MacBookの電源やWi-Fi、Bluetoothの接続が切れたのをトリガーにコマンドを実行しつづけるCLIツールを作った

Go

2014年のアイデアを実装している— k1LoW (@k1LoW) 2020年1月18日 2週に1度くらいFukuoka Growth Nextのコワーキングスペースを使わせてもらっています*1。 その時ちょっとだけ席を立ちたいときに、展開しているMacBookやバックパックを「置いておくか」「持…

2019年の振り返りと2020年の抱負

明けていました 2019年の振り返り 嵐のように過ぎ去った1年でした。 と言っても残念ながら私が何かを成し遂げたわけではなく、子供の成長についていくのと仕事面でも周りの変化/進化についていくのに精一杯だった受動的な1年だったような気がします。 その結…

bundle installされたgemのソースコードも含めてptで検索する

俺がずっと求めていたコマンドpt 'def logged_in?' . $(bundle show --paths) --color --group | less -R— k1LoW (@k1LoW) 2019年12月24日 $ pt 'def logged_in?' . $(bundle show --paths) --color --group | less -R ptは pt PATTERN [PATH1] [PATH2] ... …

Mackerel plugin (mackerel-plugin-prometheus-exporter) を書いてみた #mackerelio

この記事はMackerelアドベントカレンダー23日目の記事です。 22日はshiimaxxさんのMackerelで負荷テスト中のリソースモニタリングを行うでした! そして今日はMackerel Day #2ですね! Mackerel 5周年おめでとうございます! Mackerel pluginを書いたことが…