kakakakakku blog

Weekly Tech Blog: Keep on Learning!

GitHub

ghq で「複数の root ディレクトリ」からリポジトリを探す

ghq は「複数の root 設定」に対応している.例えば GitHub と CodeCommit と ${GOROOT}/src など,それぞれのディレクトリを対象に ghq list コマンドでリポジトリを探せる(個人的には ghq list + peco).最高すぎる!設定自体は gitconfig (~/.gitconfig…

2020年のプルリクエストを振り返る

2016年から毎年 OSS に送ったプルリクエストを振り返る記事を書いている.2019年と比較すると,2020年は大きく減って「計4件」だった.GitHub は毎日のように使っているし,多くあるプライベートリポジトリに定期的にコミットもしているけど,OSS への貢献に…

よく使う "hub" コマンドを調べて "gh" コマンドに移行した

最近まで GitHub リポジトリを操作するときに ghq コマンドと hub コマンドを使っていた.リポジトリを git clone したり ~/ghq 直下のディレクトリに移動する場合に ghq コマンドと peco を使って,その他の操作は hub コマンドと git コマンドを使っていた…

gibo コマンドを使って .gitignore のテンプレートを簡単に作成する

ブログに載せるサンプルコードを管理したり,仕事でプロトタイプを実装することが多かったり,とにかく Git リポジトリを新しく作る機会が多くある.そのときに毎回似たような .gitignore を作ることになり,面倒だった.共通的な設定はホームディレクトリの…

GitHub Actions と hadolint を組み合わせて Dockerfile の静的解析を自動化しよう!

GitHub Actions と hadolint (Haskell Dockerfile Linter) を組み合わせて,今まで雑に実装してきた Dockerfile の静的解析を自動化する環境を作った.できる限り Dockerfile Best Practices を意識していることもあり,警告はあまり多く出なかったけど,や…

GitHub Actions に入門するなら GitHub Learning Lab の Hello World コースを受講しよう

GitHub を学ぶときに「GitHub Learning Lab」を使うと便利!という紹介記事を6月に書いた.最近 GitHub Actions を使う機会があり,入門するために「GitHub Learning Lab」の「GitHub Actions: Hello World」コースを受講した.今回も非常に良かった! kakak…

Bot と一緒にインタラクティブに GitHub を学べる GitHub Learning Lab は素晴らしい学習体験だった

新しく技術を学ぶときに「どんな第一歩」を踏み出すか.僕は「体系的に学ぶ」ことが好きで,技術書を読むことが多い.全体感を把握することで安心できる性格であることも関係していると思う.さらに「実際に体験する」ことも好きで「学習コンテンツ」をよく…

Dependabot の config.yml に「Automatic PR merging」を設定する

Dependabot を使うと「依存パッケージ」の更新を自動化できる.対応言語も幅広く,個人的には JavaScript / Ruby / Python / Docker をよく使っている.最高に便利なんだけど,例えば JavaScript などはリリース頻度が高く,すぐにプルリクエストが溜まって…

モノリポ時代に知っておくと便利な「git sparse-checkout」

今まで使っていなかった Git コマンドを学んでいく.今回は git sparse-checkout を試す. git-scm.com git sparse-checkout とは? コマンド名にある sparse は「わずかな」という意味で,Git リポジトリの「一部」を取得できる.git clone --depth を使っ…

リモートモブプログラミングで Git Handover をシュッと実現する「mob」コマンド

「モブプログラミング」を採用すると「全員で同じタスクに取り組む (WIP 1)」ため,複雑な Git ブランチ戦略は必要なくなる.例えば master ブランチと develop ブランチだけで運用することもできる.今回紹介する mob コマンドを使うと,モブセッションで繰…

git diff の結果を HTML に変換する「diff2html-cli」

最近 git diff の結果を GitHub プルリクエストのようなインタフェース (HTML) に変換する必要があった.既にツールがあるだろうと思って調べたところ「diff2html-cli」を使えば git diff の結果を HTML に変換できるとわかった.今回は diff2html-cli を紹…

「ghq handbook」を読んで ghq を使った最高のリポジトリ管理を体験しよう

2020年1月に Leanpub で出版された「ghq handbook」を読んだ.本書は Leanpub で $4.99 から購入できる. leanpub.com リポジトリ管理を楽にするコマンドラインツール ghq 自体は前から知っていたけど,今までの運用(特定のディレクトリ直下にひたすら git …

Git リポジトリ URL を書き換える git-config の設定 "insteadOf" と "pushInsteadOf"

git-config(~/.gitconfig など)に url.<base>.insteadOf もしくは url.<base>.pushInsteadOf を設定すると,Git リポジトリ URL(プロトコル含む)を書き換えることができる.例えば GitHub リポジトリを git pull するときは HTTPS URL を強制し,git push するときは</base></base>…

2019年(7-12月)のプルリクエストを振り返る

OSS に送ったプルリクエストを振り返ろうと思う.プルリクエストの振り返りは2016年からしているけど,2019年は前半に多く送った背景もあり,既に「2019年(1-6月)」の期間で記事を書いている.今回は後半として「2019年(7-12月)」を振り返ろうと思う.後半の…

includeIf を使って git config をプロジェクトごとに読み替える

GitHub と AWS CodeCommit を併用したり,プロジェクトごとに別アカウントを使ったり,リポジトリごとに git config を変える場面もある.今までは個人用 GitHub を global 設定とし,別アカウントはリポジトリごとに git config --local コマンドで設定をし…

2019年(1-6月)のプルリクエストを振り返る

2016年から OSS に送ったプルリクエストを振り返る記事を書いている.今までは毎年年末に振り返っていたけど,今年は既にプルリクエストの件数が多いため,2019年(1-6月)の期間で振り返ることにした.過去の振り返りは以下にある.そして,2019年(1-6月)で「…

WIP プルリクエストの誤った merge を避ける GitHub Apps「WIP」と GitHub 新機能「Draft pull requests」

チーム開発をしていると,プルリクエストを WIP (Work In Progress) として送る場面は多くある.例えば,コードを書く前に設計相談をしたり,レビュー依頼をする前にパッケージ構成など全体感を相談したり,プロトタイプなどを一時的に公開することもある.…

2018年のプルリクエストを振り返る

今年も OSS に送ったプルリクエストを振り返る.過去2年間の振り返りは以下の記事にある. kakakakakku.hatenablog.com kakakakakku.hatenablog.com プルリクエストを振り返るための検索 GitHub には Issue / プルリクエストを検索するための条件式があり,…

依存パッケージを更新するサービス「Depfu」で package.json の更新をチェックする

Depfu は依存パッケージの更新を定期的にチェックし,更新があった場合にプルリクエストを作成してくれるサービスで,現時点で「Ruby, JavaScript」をサポートしている.導入企業に Cookpad も載っている.今回 Depfu を JavaScript で試した. depfu.com De…

依存パッケージを更新するサービス「Dependabot」で Dockerfile の更新をチェックする

Dependabot は依存パッケージの更新を定期的にチェックし,更新があった場合にプルリクエストを作成してくれるサービスで,現時点で「Ruby, JavaScript, Python, PHP」など,多くのプログラミング言語がサポートされている.他にも「Go, .NET」などは BETA &…

GitHub の README.md をバッジでオシャレにできる Shields.io と dockeri.co

最近 GitHub リポジトリに「バッジ」を設定するため「Shields.io」というサービスを使った.README.md をオシャレにできて,とても便利だったので紹介しようと思う.ただ数年前からあったサービスらしく,今まで使ったことがなかった! shields.io バッジの…

2017年のプルリクエストを振り返る

年末なので,今年も OSS に送ったプルリクエストを振り返っておこうと思う.ちなみに去年からプルリクエストの振り返りをしている. kakakakakku.hatenablog.com 2017/01 alexanderzobnin/grafana-zabbix 運用している Zabbix のダッシュボード部分を改善す…

GitHub 新作パーカー : Reflective Hoodie を安く購入した

11月に発売された GitHub 新作パーカー : Reflective Hoodie が欲しくて,3年振りに GitHub Shop で購入してみた.予想以上に安く,スムーズに購入できて驚いたので,紹介も兼ねて整理しておこう. GitHub Shop で注文した新作グッツが届いたぞー pic.twitte…

知っておくと便利な git clone --depth と git diff --indent-heuristic

コミット履歴が無駄に多く,黒歴史のある Git リポジトリで開発をする場合,初回の git clone が非常に遅いという問題がある.コミット数に依存せずに素早く落とせる方法を探していて,最近(今さら...!) git clone の --depth オプションのことを知った.…

アクセスキーのコミットを抑止できて安全便利な awslabs/git-secrets

GitHub で awslabs のリポジトリを眺めてたら git-secrets という便利なツール(シェルで実装されてる)を発見した. どんなものかを簡単に説明すると,アクセスキーなどを誤ってコミットすることを Git の hooks を使って未然に防ぐツールで,誤って GitHub…

2016年のプルリクエストを振り返る

2016/02 Repository : fiveisprime/marvel-api Language : Node.js アイアンマンなどで有名な Marvel が公式に提供してる API のラッパーで,Node.js で実装されている.Hubot で Marvel のキャラクター情報を返すボットを作ったときに使った.Hubot を実装…

Git で特定のブランチからファイルをコピーする

今日は Git コマンドの奥深さを感じた! 結構 Git には詳しい方だと自負していたけど,全然知らないことあるなーと痛感した. git show git show で「特定のブランチにあるファイル」や「特定のコミットでのファイル」を見ることができる.コロンを忘れずに…

新年早々 GitHub のユーザー名を変更した

2012年(IBM 時代で OSS とは真反対の世界にいた頃)に取った GitHub のユーザー名 Kakakakakku を今までずっと使ってきたんだけど,頭文字を大文字にしてしまったことをずっと悔やんでいて,ユーザーを作り直したいけど業務影響も大きいしなーという感じで…

GitHub Issue 管理ツールの超新星 Zube を試してみた

GitHub Issue 管理ツールと言えば HuBoard / ZenHub.io / Waffle.io などが有名で多くの競合サービスが存在する市場だけど,そんな中 Zube が今月にローンチされたので,さっそく試してみた. zube.io メリット 基本的な機能はあまり大差が無いけど,細かい…

HuBoard とラストマイルの話

HuBoard - GitHub issues made awesome. 現在のプロダクトでは,今までタスク管理に Redmine + Backlogs を使っていたんだけど,最近 HuBoard に移行した. 移行して1ヶ月経ったので,使ってみた正直な感想や Tips などを雑にまとめてみる. 専用リポジトリ …