<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>GitHub on ゲンゾウ用ポストイット</title><link>https://genzouw.com/entry/category/github/</link><description>Recent content in GitHub on ゲンゾウ用ポストイット</description><generator>Hugo</generator><language>ja</language><lastBuildDate>Wed, 20 Dec 2023 11:08:33 +0900</lastBuildDate><atom:link href="https://genzouw.com/entry/category/github/index.xml" rel="self" type="application/rss+xml"/><item><title>Github Copilot in the CLI を使ってみる</title><link>https://genzouw.com/entry/2023/12/20/110833/3592/</link><pubDate>Wed, 20 Dec 2023 11:08:33 +0900</pubDate><guid>https://genzouw.com/entry/2023/12/20/110833/3592/</guid><description>&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;&#10;&lt;p&gt;先日Githubからメールが届きました。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;You have been granted access to GitHub Copilot in the CLI.&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;ようやく &lt;strong&gt;Github Copilot in the CLI&lt;/strong&gt; が利用できるようになりました。&lt;/p&gt;&#10;&lt;p&gt;今までは Vim 環境でだけGithub Copilot を使うことができましたが、コマンドライン環境からCopilotの力を利用できることになるのでしょうか？と思い早速試してみました。&lt;/p&gt;&#10;&lt;h2 id="検証環境"&gt;検証環境&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ uname -moi&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;arm64 unknown Darwin&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ bash -version &lt;span class="p"&gt;|&lt;/span&gt; head -n &lt;span class="m"&gt;1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;GNU bash, バージョン 5.2.15&lt;span class="o"&gt;(&lt;/span&gt;1&lt;span class="o"&gt;)&lt;/span&gt;-release &lt;span class="o"&gt;(&lt;/span&gt;aarch64-apple-darwin22.1.0&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="作業の流れ--作業ログ-"&gt;作業の流れ ( 作業ログ )&lt;/h2&gt;&#10;&lt;p&gt;まずはメールのリンクに書かれていたドキュメントページから概要や使い方を学んでいくことにしました。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://docs.github.com/en/copilot/github-copilot-in-the-cli/about-github-copilot-in-the-cli"&gt;About GitHub Copilot in the CLI - GitHub Docs&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="github-copilot-in-the-cli-の概要"&gt;Github Copilot in the CLI の概要&lt;/h3&gt;&#10;&lt;p&gt;Github Copilot in the CLI を使うと、ターミナル操作中にコマンドの候補を提示してくれたり、コマンドの説明を提示してくれたりするそうです。&lt;/p&gt;</description></item><item><title>OIDCを使ってGithub ActionsからAWSにアクセスする仕組みについて理解を整理してみた</title><link>https://genzouw.com/entry/2023/08/16/174745/3549/</link><pubDate>Wed, 16 Aug 2023 17:47:45 +0900</pubDate><guid>https://genzouw.com/entry/2023/08/16/174745/3549/</guid><description>&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;&#10;&lt;p&gt;Github Actions から AWS クラウドリソースを操作するために&lt;code&gt;ACCESS_KEY&lt;/code&gt;、&lt;code&gt;SECRET_ACCESS_KEY&lt;/code&gt;を使う方法はもう古い、OIDCを使うのが一般的といわれましたが理解していなかったため整理しました。&lt;/p&gt;&#10;&lt;h2 id="検証環境"&gt;検証環境&lt;/h2&gt;&#10;&lt;p&gt;今回取り上げる &lt;strong&gt;CI/CD ( ビルド ) パイプライン&lt;/strong&gt; は &lt;strong&gt;Github Actions&lt;/strong&gt; に限定しています。&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;クラウドプロバイダー&lt;/strong&gt; に関しても、 &lt;strong&gt;AWS&lt;/strong&gt; に限定しています。&lt;/p&gt;&#10;&lt;p&gt;ただしアーキテクチャはCI/CDパイプラインがCircleCIやCloudBuild、クラウドプロバイダーがGCPやAzureに置き換えられたとしても適用可能なものと考えられます。&lt;/p&gt;&#10;&lt;h2 id="パスワードやアクセストークンを使ってgithub-actionsからクラウドへ認証する方法の問題点"&gt;パスワードやアクセストークンを使ってGithub Actionsからクラウドへ認証する方法の問題点&lt;/h2&gt;&#10;&lt;p&gt;Github ActionsのようなCI/CDパイプラインから、クラウド環境 ( AWS、Azure、GCP&amp;hellip; ) にアクセスするケースは多いはずです。&lt;/p&gt;&#10;&lt;p&gt;ビルドされたソフトウェアやコンテナイメージはいずれデプロイされますし、デプロイ環境としてクラウド環境 ( ex: AWS ) が利用されることが多いからです。&lt;/p&gt;&#10;&lt;p&gt;Github Actionsがクラウド上のリソースにアクセスするために、事前にパスワードやアクセストークンといった認証情報を取得しておく必要があります。&lt;/p&gt;&#10;&lt;p&gt;これらの認証情報はGithubの &lt;strong&gt;secrets&lt;/strong&gt; に保存することが多いでしょう。&#10;Github Actionsワークフローは実行のたびに &lt;strong&gt;secrets&lt;/strong&gt; から認証情報を取り出し、これを使ってクラウド環境へのアクセスを可能にします。&lt;/p&gt;&#10;&lt;p&gt;しかし、このような &lt;strong&gt;secrets&lt;/strong&gt; を使う方法には問題があります。&#10;以下のような手間が発生します。&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;クラウド上のIAMサービスで認証情報を生成する&lt;/li&gt;&#10;&lt;li&gt;生成した認証情報をGithubのsecretsに登録する&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;&lt;strong&gt;つまり、認証情報が二重管理されることになります&lt;/strong&gt; 。&lt;/p&gt;&#10;&lt;h2 id="oidc--openid-connect--を使うメリット"&gt;OIDC ( OpenID Connect ) を使うメリット&lt;/h2&gt;&#10;&lt;p&gt;そこで登場するのがOIDC ( OpenID Connect ) です。&lt;/p&gt;&#10;&lt;p&gt;OIDCを使うと、Github Actionsワークフローがクラウドプロバイダーに対して要求するアクセストークンは、有効期限の短いものとなります。&lt;/p&gt;&#10;&lt;p&gt;もちろんOIDC認証による認証をサポートされているクラウドプロバイダーでしか利用できない方式ではありますが、現在はほとんどのクラウドプロバイダー ( AWS、Azune、GCP、HashiCorp Vault&amp;hellip; ) がOIDCをサポートしています。&lt;/p&gt;</description></item><item><title>Github Actions入門その5-式と関数</title><link>https://genzouw.com/entry/2023/05/07/081025/3519/</link><pubDate>Sun, 07 May 2023 08:10:25 +0900</pubDate><guid>https://genzouw.com/entry/2023/05/07/081025/3519/</guid><description>&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;&#10;&lt;p&gt;以下のエントリに引き続き、Github Actions を学習して学んだことをまとめて見ました。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://genzouw.com/entry/2023/04/22/082900/3490/"&gt;Github Actions 入門その 1-概要と用語の整理 | ゲンゾウ用ポストイット&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://genzouw.com/entry/2023/04/26/062946/3498/"&gt;Github Actions 入門その 2-簡単なワークフローを作成してみる | ゲンゾウ用ポストイット&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://genzouw.com/entry/2023/04/27/104439/3501/"&gt;Github Actions 入門その 3-アクションを探す・使う・自作する | ゲンゾウ用ポストイット&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://genzouw.com/entry/2023/04/30/082333/3508/"&gt;Github Actions 入門その 4-環境変数/スクリプト/Artifacts を使う | ゲンゾウ用ポストイット&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;今回は Github Actions の学習シリーズの第 5 弾として、ワークフローの YAML 設定ファイル内で使用可能な式について解説します。&#10;その後、式の種類や使い方について説明していきます。&lt;/p&gt;&#10;&lt;h2 id="式について"&gt;式について&lt;/h2&gt;&#10;&lt;p&gt;環境変数の設定や実行中のワークフローの状態を取得するために「式」を利用できます。&lt;/p&gt;&#10;&lt;p&gt;式を使うと、以下のようなことができます。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;リテラルの結合&lt;/li&gt;&#10;&lt;li&gt;実行中の環境情報の取得 ( 実行者、仮想マシン、等 )&lt;/li&gt;&#10;&lt;li&gt;関数呼び出し ( 値の加工等 )&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;算術計算のために演算子を使うこともできます。&lt;/p&gt;&#10;&lt;p&gt;式は &lt;code&gt;if&lt;/code&gt; キーワードと一緒に利用されることが多いです。&#10;プログラミング言語のように、 &lt;code&gt;if&lt;/code&gt; で指定した式の値が &lt;code&gt;true&lt;/code&gt; となったときに、該当のステップが実行されます。&lt;/p&gt;&#10;&lt;p&gt;「文字列」ではなく「式」であると Github Actions に認識させるためには、以下の構文を使います。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;${{ &amp;lt;式&amp;gt; }}&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;&lt;code&gt;if&lt;/code&gt; キーワードの値として式を使用した場合は、 &lt;code&gt;${{ ... }}&lt;/code&gt; の構文を指定しないこともあります。&#10;というのも、Github Actions は &lt;code&gt;if: &lt;/code&gt; 以降に指定した記述を「式」として評価・処理するためです。&#10;&lt;code&gt;if: &lt;/code&gt; 以降の記述に関しては、冗長かもしれませんが &lt;code&gt;${{ ... }}&lt;/code&gt; の形式で記述しておくのが間違いないでしょうし、チームメンバにとってもわかりやすいでしょう。&lt;/p&gt;</description></item><item><title>ローカルPC内でGithub Actionsを実行する - 'nekos/act'</title><link>https://genzouw.com/entry/2023/05/02/083434/3510/</link><pubDate>Tue, 02 May 2023 08:34:34 +0900</pubDate><guid>https://genzouw.com/entry/2023/05/02/083434/3510/</guid><description>&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;&#10;&lt;p&gt;Github Actions の設定ファイルを記述した後、正しく動作するかを確認するために毎回リモートリポジトリにプッシュするのが面倒だなと思ったので良い方法が無いかと調べてみました。&#10;すると、ローカルで Github Actions の実行が可能なツールが見つかったので、検証してみました。&lt;/p&gt;&#10;&lt;h2 id="検証環境"&gt;検証環境&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ uname -moi&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;arm64 unknown Darwin&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ bash -version &lt;span class="p"&gt;|&lt;/span&gt; head -n &lt;span class="m"&gt;1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;GNU bash, version 5.2.15&lt;span class="o"&gt;(&lt;/span&gt;1&lt;span class="o"&gt;)&lt;/span&gt;-release &lt;span class="o"&gt;(&lt;/span&gt;aarch64-apple-darwin22.1.0&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="見つけたツール--nektosact"&gt;見つけたツール : &lt;code&gt;nektos/act&lt;/code&gt;&lt;/h2&gt;&#10;&lt;p&gt;利用するツールは以下になります。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://github.com/nektos/act"&gt;GitHub - nektos/act: Run your GitHub Actions locally ?&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;概要を見る限りは自分の目的にフィットしています。&lt;/p&gt;&#10;&lt;h2 id="nektosact-ってどんなツール"&gt;&lt;code&gt;nektos/act&lt;/code&gt; ってどんなツール？&lt;/h2&gt;&#10;&lt;p&gt;Github Actions をローカルで実行するためのツールとのことです。&lt;/p&gt;&#10;&lt;p&gt;このツールを導入するメリットは以下となります。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;.github/workflows&lt;/code&gt; ディレクトリ配下に設定ファイルを作成、変更した後、 commit/push しなくてもテストできるため開発効率が上がる&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;Makefile&lt;/code&gt; でタスクを管理することもできますが、 &lt;code&gt;.github/worflows&lt;/code&gt; とタスクが重複し DRY ではなくなります。&#10;ローカルで実行できれば &lt;code&gt;Makefile&lt;/code&gt; が不要となります。&#10;&lt;ul&gt;&#10;&lt;li&gt;(この点については、 Github Actions から &lt;code&gt;make&lt;/code&gt; を呼ぶことで回避できると思いますが公式ページのメリットとして書かれていました )&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="nektosact-って何をしてくれるに"&gt;&lt;code&gt;nektos/act&lt;/code&gt; って何をしてくれるに？&lt;/h2&gt;&#10;&lt;p&gt;&lt;code&gt;act&lt;/code&gt; コマンドが提供されます。&lt;/p&gt;</description></item><item><title>Github Actions入門その4-環境変数/スクリプト/Artifactsを使う</title><link>https://genzouw.com/entry/2023/04/30/082333/3508/</link><pubDate>Sun, 30 Apr 2023 08:23:33 +0900</pubDate><guid>https://genzouw.com/entry/2023/04/30/082333/3508/</guid><description>&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;&#10;&lt;p&gt;以下のエントリに引き続き、Github Actions を学習して学んだことをまとめて見ました。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://genzouw.com/entry/2023/04/22/082900/3490/"&gt;Github Actions 入門その 1-概要と用語の整理 | ゲンゾウ用ポストイット&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://genzouw.com/entry/2023/04/26/062946/3498/"&gt;Github Actions 入門その 2-簡単なワークフローを作成してみる | ゲンゾウ用ポストイット&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://genzouw.com/entry/2023/04/27/104439/3501/"&gt;Github Actions 入門その 3-アクションを探す・使う・自作する | ゲンゾウ用ポストイット&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;このエントリでは、カスタマイズのテクニックについて触れていきます。&#10;変数の使用方法、スクリプトの実行方法、ジョブとジョブの間をつなぐための方法により、カスタマイズが可能です。&lt;/p&gt;&#10;&lt;h2 id="ワークフローの中で変数を使う"&gt;ワークフローの中で変数を使う&lt;/h2&gt;&#10;&lt;p&gt;Github Actions では、ワークフローが実行されるたびに &lt;a href="https://docs.github.com/en/actions/learn-github-actions/variables#default-environment-variables"&gt;割り当てられるデフォルトの環境変数&lt;/a&gt; があります。&#10;デフォルトの環境変数だけで不十分であれば、独自に環境変数を追加することも可能です。&#10;ワークフローの YAML 設定ファイルに定義することでこれを実現できます。&lt;/p&gt;&#10;&lt;p&gt;サンプルコードを見ていきましょう。&#10;以下のサンプルコードでは、 &lt;code&gt;POSTGRES_HOST&lt;/code&gt; と &lt;code&gt;POSTGRES_PORT&lt;/code&gt; という 2 つの環境変数を作成しています。&#10;環境変数は &lt;code&gt;node client.js&lt;/code&gt; の中で参照可能です( Github Actions のなかでは、 Node.js はデフォルトで利用可能みたいです )。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 2&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 3&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 4&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 5&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 6&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 7&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 8&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 9&#10;&lt;/span&gt;&lt;span class="lnt"&gt;10&#10;&lt;/span&gt;&lt;span class="lnt"&gt;11&#10;&lt;/span&gt;&lt;span class="lnt"&gt;12&#10;&lt;/span&gt;&lt;span class="lnt"&gt;13&#10;&lt;/span&gt;&lt;span class="lnt"&gt;14&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nn"&gt;---&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;use-environment-variables&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;run-name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;use-environment-variables&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;on&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="l"&gt;push&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;jobs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;use-environment-variables&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;runs-on&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;ubuntu-22.04&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;steps&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;uses&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;actions/checkout@v3&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="nt"&gt;run&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;node .github/scripts/use_environment_variables.js&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;POSTGRES_HOST&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;postgres_host&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;POSTGRES_PORT&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;5432&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;呼び出している JavaScript のコードは以下のようになっています。&lt;/p&gt;</description></item><item><title>Github Actions入門その3-アクションを探す・使う・自作する</title><link>https://genzouw.com/entry/2023/04/27/104439/3501/</link><pubDate>Thu, 27 Apr 2023 10:44:39 +0900</pubDate><guid>https://genzouw.com/entry/2023/04/27/104439/3501/</guid><description>&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;&#10;&lt;p&gt;前々回、前回と Github Actions に登場する用語の整理した後、実際の YAML 設定ファイルの各項目と用語の対応を見てきました。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://genzouw.com/entry/2023/04/22/082900/3490/"&gt;Github Actions 入門その 1-概要と用語の整理 | ゲンゾウ用ポストイット&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://genzouw.com/entry/2023/04/26/062946/3498/"&gt;Github Actions 入門その 2-簡単なワークフローを作成してみる | ゲンゾウ用ポストイット&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;アクション ( Action ) は１つ以上のステップで構成されたブロックです。&lt;/p&gt;&#10;&lt;p&gt;ワークフローは、１つ以上のジョブを持ち、ジョブは１つ以上のステップを持ちます。&#10;( 詳細は以下を参照 )&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://genzouw.com/entry/2023/04/22/082900/3490/"&gt;Github Actions 入門その 1 ( 概要と用語の整理 ) | ゲンゾウ用ポストイット&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;ステップは独自のシェルコマンドを記述しても良いのですが、アクションを指定できます。&#10;アクションは Github で公開されているものを指定したり、自作したものを利用することもできます。&lt;/p&gt;&#10;&lt;p&gt;今回はアクションの探し方、使い方、自作方法について紹介します。&lt;/p&gt;&#10;&lt;h2 id="概要"&gt;概要&lt;/h2&gt;&#10;&lt;p&gt;ワークフローの中で利用するアクションは以下のいずれかの方法で提供されます。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;ワークフローが実行される Github リポジトリ内(当然、 &lt;code&gt;git commit &amp;amp;&amp;amp; git push&lt;/code&gt; されています)&lt;/li&gt;&#10;&lt;li&gt;Github の公開リポジトリ&lt;/li&gt;&#10;&lt;li&gt;Docker Hub 上の公開 Docker イメージ&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="公開されているアクションの探し方"&gt;公開されているアクションの探し方&lt;/h2&gt;&#10;&lt;p&gt;Github コミュニティで作成されたアクションを探す場合は、 &lt;a href="https://github.com/marketplace?type=actions"&gt;Github Marketplace&lt;/a&gt; というサイトを利用するのが良いでしょう。&#10;キーワード検索もできますし、カテゴリ分類されているので役割の観点から探すこともできます。&lt;/p&gt;&#10;&lt;h2 id="github-marketplace-で見つけたアクションを追加"&gt;Github Marketplace で見つけたアクションを追加&lt;/h2&gt;&#10;&lt;p&gt;実際に &lt;a href="https://github.com/marketplace?type=actions"&gt;Github Marketplace&lt;/a&gt; から検索したアクションを使ってみましょう。&lt;/p&gt;</description></item><item><title>Github Actions入門その2-簡単なワークフローを作成してみる</title><link>https://genzouw.com/entry/2023/04/26/062946/3498/</link><pubDate>Wed, 26 Apr 2023 06:29:46 +0900</pubDate><guid>https://genzouw.com/entry/2023/04/26/062946/3498/</guid><description>&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;&#10;&lt;p&gt;前回は Github Actions の概要と用語の整理をしました。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://genzouw.com/entry/2023/04/22/082900/3490/"&gt;Github Actions 入門その 1-概要と用語の整理 | ゲンゾウ用ポストイット&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Github 上で実行できるワークフローを構築するためのサービスです。&#10;Github 上でのソースコードの変更をトリガーにして、自動的にビルドやテストなどのワークフローを実行できます。&#10;Unbutu、Windows、macOS などの環境で実行でき、必要なリソースを設定することで、ビルドなどのタスクを実行できます。&lt;/p&gt;&#10;&lt;p&gt;今回は、サンプルコードを触って Github Actions を実際に操作してみます。&lt;/p&gt;&#10;&lt;h2 id="簡単なワークフローを作成してみる"&gt;簡単なワークフローを作成してみる&lt;/h2&gt;&#10;&lt;p&gt;Github Actions では、ワークフローの設定を YAML 形式で記述します。&lt;/p&gt;&#10;&lt;p&gt;それぞれのワークフローは YAML 形式のファイル 1 つで表現されます。&#10;その YAML をワークフローを実行させたい Github リポジトリの &lt;code&gt;.github/workflows&lt;/code&gt; というディレクトリに配置します。&lt;/p&gt;&#10;&lt;p&gt;ワークフローは、トリガーとなるイベント ( 例えば git push ) が発生したタイミングで実行されます。&lt;/p&gt;&#10;&lt;p&gt;ここからは実際にワークフロー設定ファイルを見ていきます。&lt;/p&gt;&#10;&lt;p&gt;以下のようなワークフローを作成してみます。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;プッシュのタイミングで実行される&lt;/li&gt;&#10;&lt;li&gt;Node.js のツールである &lt;code&gt;bats&lt;/code&gt; をインストールする&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;bats -v&lt;/code&gt; コマンドを実行する&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;まずはローカルに Git ワークスペースを作成します。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ mkdir learning-github-actions&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ &lt;span class="nb"&gt;cd&lt;/span&gt; learning-github-actions&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ git init&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;対応する Git リモートリポジトリを作成します。&#10;ここでは Github CLI ( &lt;code&gt;gh&lt;/code&gt; コマンド) を使って作成しますが、もちろんブラウザ経由で作成しても構いません。&lt;/p&gt;</description></item><item><title>Github Actions入門その1-概要と用語の整理</title><link>https://genzouw.com/entry/2023/04/22/082900/3490/</link><pubDate>Sat, 22 Apr 2023 08:29:00 +0900</pubDate><guid>https://genzouw.com/entry/2023/04/22/082900/3490/</guid><description>&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;&#10;&lt;p&gt;今の組織で CICD のプラットフォームとして &lt;strong&gt;Github Actions&lt;/strong&gt; メインに切り替えています。&lt;/p&gt;&#10;&lt;p&gt;今後更にこの流れが進みそうなので Github Actions について一から学びなおしてみようと思いました。&lt;/p&gt;&#10;&lt;h2 id="github-actions-とは"&gt;Github Actions とは&lt;/h2&gt;&#10;&lt;p&gt;Github が提供している CI ( continuous integration ) と CD ( continuous delivery ) を実現するためのプラットフォームです。&lt;/p&gt;&#10;&lt;h3 id="cicd-パイプラインとは"&gt;CI/CD パイプラインとは&lt;/h3&gt;&#10;&lt;p&gt;CI とはビルド、テスト、静的解析などの開発パイプラインを示します。&#10;過去には各作業者の PC 内で実行していましたが、環境差異による実行結果の違いや実行忘れなどの問題があることから、現在のほぼすべての開発組織で導入されている仕組みです。&lt;/p&gt;&#10;&lt;p&gt;CD とは CI に加えてアプリケーションのデプロイの流れまでを含めた用語となっています。&lt;/p&gt;&#10;&lt;h3 id="github-actions-が実行されるタイミング--イベント-"&gt;Github Actions が実行されるタイミング ( イベント )&lt;/h3&gt;&#10;&lt;p&gt;実行のトリガは「Git ブランチに対して push されたタイミング」「プルリクが作成されたタイミング」「プルリクが &lt;code&gt;main&lt;/code&gt; ブランチにマージされたタイミング」など任意のタイミングが指定できます。&lt;/p&gt;&#10;&lt;p&gt;具体的な例として、「誰かが Github リポジトリに新しい Issue を作成したタイミングで、ラベルを付与する」ことができます。&lt;/p&gt;&#10;&lt;h3 id="実行環境"&gt;実行環境&lt;/h3&gt;&#10;&lt;p&gt;Linxu、Windows、macOS の仮想マシンが用意されています。&lt;/p&gt;&#10;&lt;p&gt;Github 上のマネージド環境だけでなく、オンプレ環境や他のクラウドを実行環境とすることもできます。&lt;/p&gt;&#10;&lt;p&gt;また、仮想マシンではなくコンテナ環境を利用することもできます。&lt;/p&gt;&#10;&lt;h2 id="概要"&gt;概要&lt;/h2&gt;&#10;&lt;p&gt;Github Actions の構成要素について、概要を掴んでおきます。&lt;/p&gt;&#10;&lt;p&gt;「ワークフロー」と呼ばれるものを設定します。&#10;ワークフローは Github リポジトリの中で何らかの「イベント」が発生 ( トリガー ) したときに実行されます。&#10;例えば「プルリクエストの作成」や「Issue の作成」といったイベントがあります。&lt;/p&gt;</description></item><item><title>Gitの作業ディレクトリからコマンドでデフォルトブランチ名を取得する</title><link>https://genzouw.com/entry/2022/08/06/080046/3071/</link><pubDate>Sat, 06 Aug 2022 08:00:46 +0900</pubDate><guid>https://genzouw.com/entry/2022/08/06/080046/3071/</guid><description>&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;&#10;&lt;p&gt;&lt;code&gt;git clone&lt;/code&gt; した作業ディレクトリで作業中しているとき、デフォルトブランチに切り替えたいのですが、デフォルトブランチ名を取得する方法がわかりませんでした。&lt;/p&gt;&#10;&lt;p&gt;以前は &lt;code&gt;master&lt;/code&gt; ブランチをデフォルトブランチとしているケースがほとんどでしたが、最近では &lt;code&gt;main&lt;/code&gt; ブランチや 中には &lt;code&gt;develop&lt;/code&gt; ブランチをデフォルトブランチに設定しているリポジトリにも出会うようになりました。&lt;/p&gt;&#10;&lt;p&gt;なんとか取得できないかと調べて、取得する方法が見つかったのでメモを残しておきます。&lt;/p&gt;&#10;&lt;h2 id="検証環境"&gt;検証環境&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;span class="lnt"&gt;6&#10;&lt;/span&gt;&lt;span class="lnt"&gt;7&#10;&lt;/span&gt;&lt;span class="lnt"&gt;8&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ uname -moi&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;arm64 unknown Darwin&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ bash -version &lt;span class="p"&gt;|&lt;/span&gt; head -n &lt;span class="m"&gt;1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;GNU bash, バージョン 5.1.16&lt;span class="o"&gt;(&lt;/span&gt;1&lt;span class="o"&gt;)&lt;/span&gt;-release &lt;span class="o"&gt;(&lt;/span&gt;aarch64-apple-darwin21.1.0&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ git --version&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git version 2.37.1&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="github-cli-を使う"&gt;GitHub CLI を使う&lt;/h2&gt;&#10;&lt;p&gt;GitHub を使っていることが前提となりますが、 Git の作業ディレクトリに対応するリモートリポジトリからデフォルトブランチ名を取得します。&lt;/p&gt;&#10;&lt;p&gt;GitHub リポジトリの情報にアクセスするため &lt;strong&gt;GitHub CLI&lt;/strong&gt; を使います。&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;&lt;em&gt;GitHub CLI については、インストール方法や使い方を過去のエントリで紹介しています。&lt;/em&gt;&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://genzouw.com/entry/2020/04/03/225419/1952/"&gt;GitHub CLI を使ってコマンドラインからイシュー、プルリクを検索、表示してみる | ゲンゾウ用ポストイット&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;GitHub CLI でインストールされた &lt;code&gt;gh&lt;/code&gt; コマンドを使えば、作業ディレクトリに対応する GitHub 上のリポジトリの設定情報を取得する事ができます。&lt;/p&gt;</description></item><item><title>Gitでローカルブランチ、リモートブランチの名前を変更(リネーム)する方法</title><link>https://genzouw.com/entry/2022/07/19/171240/3027/</link><pubDate>Tue, 19 Jul 2022 17:12:40 +0900</pubDate><guid>https://genzouw.com/entry/2022/07/19/171240/3027/</guid><description>&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;&#10;&lt;p&gt;今更のエントリではありますが、Git でブランチ名を変更する方法を毎回忘れてわざわざ以下のステップを実行しているのでいいかげん整理しておこうと思いました。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 2&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 3&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 4&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 5&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 6&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 7&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 8&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 9&#10;&lt;/span&gt;&lt;span class="lnt"&gt;10&#10;&lt;/span&gt;&lt;span class="lnt"&gt;11&#10;&lt;/span&gt;&lt;span class="lnt"&gt;12&#10;&lt;/span&gt;&lt;span class="lnt"&gt;13&#10;&lt;/span&gt;&lt;span class="lnt"&gt;14&#10;&lt;/span&gt;&lt;span class="lnt"&gt;15&#10;&lt;/span&gt;&lt;span class="lnt"&gt;16&#10;&lt;/span&gt;&lt;span class="lnt"&gt;17&#10;&lt;/span&gt;&lt;span class="lnt"&gt;18&#10;&lt;/span&gt;&lt;span class="lnt"&gt;19&#10;&lt;/span&gt;&lt;span class="lnt"&gt;20&#10;&lt;/span&gt;&lt;span class="lnt"&gt;21&#10;&lt;/span&gt;&lt;span class="lnt"&gt;22&#10;&lt;/span&gt;&lt;span class="lnt"&gt;23&#10;&lt;/span&gt;&lt;span class="lnt"&gt;24&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 間違ったブランチ ブランチが現在のブランチ&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ git branch&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; main&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;* 間違ったブランチ&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 正しいブランチ ブランチを新規作成&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ git checkout -b 正しいブランチ&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Switched to a new branch &lt;span class="s1"&gt;&amp;#39;正しいブランチ&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 正しいブランチ ブランチが現在のブランチ&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ git branch&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; main&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;* 正しいブランチ&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 間違ったブランチ&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 間違ったブランチ ブランチは不要なため削除&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ git branch -d 間違ったブランチ&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Deleted branch 間違ったブランチ &lt;span class="o"&gt;(&lt;/span&gt;was 3c3b0a1&lt;span class="o"&gt;)&lt;/span&gt;.&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# ブランチを確認&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ git branch&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; main&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;* 正しいブランチ&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;この方法でブランチはリネーム出来ますが、面倒であることや &lt;strong&gt;&lt;code&gt;git push&lt;/code&gt; しリモートブランチとして反映されてしまった場合に対応でき&lt;/strong&gt; ません。&lt;/p&gt;</description></item><item><title>"GitHub CLI"でOrganization内のリポジトリを一覧表示する方法</title><link>https://genzouw.com/entry/2022/03/04/105932/2948/</link><pubDate>Fri, 04 Mar 2022 10:59:32 +0900</pubDate><guid>https://genzouw.com/entry/2022/03/04/105932/2948/</guid><description>&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;&#10;&lt;p&gt;&lt;strong&gt;GitHub CLI&lt;/strong&gt; が便利で愛用しています。&#10;&lt;strong&gt;GitHub CLI&lt;/strong&gt; をインストールすると使えるようになる &lt;code&gt;gh&lt;/code&gt; コマンドと、 別ツールである &lt;code&gt;ghq&lt;/code&gt; コマンドを組み合わせるとコマンドラインライフ（？）がとても快適になります。&lt;/p&gt;&#10;&lt;p&gt;さて、GitHub にて新しい組織（Organizations）に所属したとき、この組織が所有するリポジトリの一覧を取得したかったのですが、 ほんの少しハマったのでやり方を紹介します。&lt;/p&gt;&#10;&lt;h2 id="検証環境"&gt;検証環境&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;span class="lnt"&gt;6&#10;&lt;/span&gt;&lt;span class="lnt"&gt;7&#10;&lt;/span&gt;&lt;span class="lnt"&gt;8&#10;&lt;/span&gt;&lt;span class="lnt"&gt;9&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ uname -moi&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;arm64 MacBookPro18,3 Darwin&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ bash -version &lt;span class="p"&gt;|&lt;/span&gt; head -n &lt;span class="m"&gt;1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;GNU bash, バージョン 5.1.16&lt;span class="o"&gt;(&lt;/span&gt;1&lt;span class="o"&gt;)&lt;/span&gt;-release &lt;span class="o"&gt;(&lt;/span&gt;aarch64-apple-darwin21.1.0&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ gh --version&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;gh version 2.5.2 &lt;span class="o"&gt;(&lt;/span&gt;2022-03-01&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;https://github.com/cli/cli/releases/tag/v2.5.2&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="gh-コマンドで普通にリポジトリを一覧"&gt;&lt;code&gt;gh&lt;/code&gt; コマンドで普通にリポジトリを一覧&lt;/h2&gt;&#10;&lt;p&gt;&lt;code&gt;gh&lt;/code&gt; コマンドで普通にリポジトリを一覧出力してみましょう。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 2&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 3&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 4&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 5&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 6&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 7&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 8&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 9&#10;&lt;/span&gt;&lt;span class="lnt"&gt;10&#10;&lt;/span&gt;&lt;span class="lnt"&gt;11&#10;&lt;/span&gt;&lt;span class="lnt"&gt;12&#10;&lt;/span&gt;&lt;span class="lnt"&gt;13&#10;&lt;/span&gt;&lt;span class="lnt"&gt;14&#10;&lt;/span&gt;&lt;span class="lnt"&gt;15&#10;&lt;/span&gt;&lt;span class="lnt"&gt;16&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ gh repo list&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Showing &lt;span class="m"&gt;30&lt;/span&gt; of &lt;span class="m"&gt;200&lt;/span&gt; repositories in @genzouw&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;genzouw/docker-minecraft-server Docker image that provides a Minecraft Server that will automatical... public, fork 1d&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;genzouw/bin private 1d&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;genzouw/setup_scripts private 3d&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;genzouw/myconfig private 4d&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;genzouw/kanji private 4d&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;genzouw/golly private 4d&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;genzouw/haldata-apollo-client private 4d&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;genzouw/backend private 4d&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;genzouw/hyakuninissyu private 4d&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;genzouw/aws-cognito-example-custom-page public 5d&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;genzouw/ubuntu-sandbox Dockerfile &lt;span class="k"&gt;for&lt;/span&gt; Ubuntu public 6d&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;...&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;自分の所有するリポジトリが一覧表示されます。&#10;&lt;strong&gt;200 リポジトリも所有しているんですね。びっくりしました。&lt;/strong&gt; 掃除しないと。&lt;/p&gt;</description></item><item><title>direnvと環境変数を使ってGitのユーザ名、メールアドレス、SSH KEYをリポジトリ毎に切り替える</title><link>https://genzouw.com/entry/2021/08/04/153026/2750/</link><pubDate>Wed, 04 Aug 2021 15:30:26 +0900</pubDate><guid>https://genzouw.com/entry/2021/08/04/153026/2750/</guid><description>&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;&#10;&lt;p&gt;Github を使って複数のプロジェクトを兼任していると、Git の複数アカウントを切り替えて使う必要がある場合があります。&lt;/p&gt;&#10;&lt;p&gt;僕は諸事情により Github アカウントを仕事用 x2、個人用 x1 を所有しています。&lt;/p&gt;&#10;&lt;p&gt;よく知られている方法としては、&#10;以下のように &lt;code&gt;git config --local&lt;/code&gt; コマンドで切り替えるやり方があります。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ git config --local user.name &lt;span class="s2"&gt;&amp;#34;アカウント&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ git config --local user.email &lt;span class="s2"&gt;&amp;#34;メールアドレス&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ git config --local core.sshCommand&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;ssh -i ~/.ssh/ANOTHER_ID_RSA&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;こういったマルチアカウント利用ケースにて、 環境変数を使って Git の &lt;strong&gt;ユーザ名(username)&lt;/strong&gt; 、 &lt;strong&gt;e-mail(email)&lt;/strong&gt; 、 &lt;strong&gt;SSH KEY&lt;/strong&gt; の切り替え作業を効率化するための方法について紹介します。&lt;/p&gt;&#10;&lt;h2 id="検証環境"&gt;検証環境&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;span class="lnt"&gt;6&#10;&lt;/span&gt;&lt;span class="lnt"&gt;7&#10;&lt;/span&gt;&lt;span class="lnt"&gt;8&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ uname -moi&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;x86_64 MacBookPro16,1 Darwin&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ bash -version &lt;span class="p"&gt;|&lt;/span&gt; head -n &lt;span class="m"&gt;1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;GNU bash, version 5.1.8&lt;span class="o"&gt;(&lt;/span&gt;1&lt;span class="o"&gt;)&lt;/span&gt;-release &lt;span class="o"&gt;(&lt;/span&gt;x86_64-apple-darwin20.3.0&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ git --version&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git version 2.32.0&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="前提条件必要なツール"&gt;前提条件（必要なツール）&lt;/h2&gt;&#10;&lt;p&gt;今回は &lt;a href="https://github.com/direnv/direnv"&gt;direnv&lt;/a&gt; というツールを利用することを前提としています。&lt;/p&gt;</description></item><item><title>"git diff"コマンドの実行結果をGithub風に表示できる"git-split-diffs"</title><link>https://genzouw.com/entry/2021/05/24/104932/2640/</link><pubDate>Mon, 24 May 2021 10:49:32 +0900</pubDate><guid>https://genzouw.com/entry/2021/05/24/104932/2640/</guid><description>&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;&#10;&lt;p&gt;&lt;code&gt;git diff&lt;/code&gt; コマンドの実行結果を Github の diff 表示のようなスタイルに変更できる &lt;strong&gt;「&lt;a href="https://github.com/banga/git-split-diffs"&gt;git-split-diffs&lt;/a&gt;」&lt;/strong&gt; というツールを見つけたので紹介します。&lt;/p&gt;&#10;&lt;h2 id="検証環境"&gt;検証環境&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 2&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 3&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 4&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 5&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 6&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 7&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 8&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 9&#10;&lt;/span&gt;&lt;span class="lnt"&gt;10&#10;&lt;/span&gt;&lt;span class="lnt"&gt;11&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ uname -moi&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;x86_64 MacBookPro16,1 Darwin&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ bash -version &lt;span class="p"&gt;|&lt;/span&gt; head -n &lt;span class="m"&gt;1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;GNU bash, version 5.1.8&lt;span class="o"&gt;(&lt;/span&gt;1&lt;span class="o"&gt;)&lt;/span&gt;-release &lt;span class="o"&gt;(&lt;/span&gt;x86_64-apple-darwin20.3.0&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ node --version&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;v15.12.0&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ yarn --version&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;1.22.10&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="git-split-diffs-とはなに"&gt;git-split-diffs とはなに？&lt;/h2&gt;&#10;&lt;p&gt;ターミナル上で &lt;code&gt;git diff&lt;/code&gt; したときに、実行結果を &lt;strong&gt;Github&lt;/strong&gt; 風に表示してくれるツールです。&lt;/p&gt;&#10;&lt;p&gt;はじめはターミナル上で実行するのに Github 風にとは一体？と思いましたが、実際に使ってみたいと思います。&lt;/p&gt;&#10;&lt;h2 id="前提環境"&gt;前提環境&lt;/h2&gt;&#10;&lt;p&gt;&lt;strong&gt;node 1.12&lt;/strong&gt; 以上がインストールされている必要があります。&lt;/p&gt;</description></item><item><title>Gitリポジトリ作成時のデフォルトブランチ名がmainとなるように設定する</title><link>https://genzouw.com/entry/2021/05/23/082707/2636/</link><pubDate>Sun, 23 May 2021 08:27:07 +0900</pubDate><guid>https://genzouw.com/entry/2021/05/23/082707/2636/</guid><description>&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;&#10;&lt;p&gt;こちらもいずれやらないとなぁと思ったままお座なりになっていたローカル環境の設定です。&lt;/p&gt;&#10;&lt;p&gt;「 &lt;a href="https://genzouw.com/entry/2021/05/22/090213/2631/"&gt;シェルで Github リポジトリの master ブランチの名前を main ブランチに変更する&lt;/a&gt;」というエントリでもお話しましたが、&#10;Github リポジトリを新規に作成した場合のデフォルトブランチ名が &lt;code&gt;master&lt;/code&gt; から &lt;code&gt;main&lt;/code&gt; に変更となっています。（もう随分前の話ですね。）&lt;/p&gt;&#10;&lt;p&gt;そんな時代の流れとは裏腹に、自分の PC で &lt;code&gt;git init&lt;/code&gt; し Git リポジトリを新規作成した際のデフォルトブランチ名が未だに &lt;code&gt;master&lt;/code&gt; となっています。&lt;/p&gt;&#10;&lt;p&gt;少しでもおっさん化の流れに抵抗する必要があるということで、 &lt;code&gt;git init&lt;/code&gt; したときに作られるデフォルトブランチ名を &lt;code&gt;main&lt;/code&gt; にするための設定をしようと思いました。&lt;/p&gt;&#10;&lt;h2 id="検証環境"&gt;検証環境&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;span class="lnt"&gt;6&#10;&lt;/span&gt;&lt;span class="lnt"&gt;7&#10;&lt;/span&gt;&lt;span class="lnt"&gt;8&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ uname -moi&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;x86_64 MacBookPro16,1 Darwin&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ bash -version &lt;span class="p"&gt;|&lt;/span&gt; head -n &lt;span class="m"&gt;1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;GNU bash, version 5.1.8&lt;span class="o"&gt;(&lt;/span&gt;1&lt;span class="o"&gt;)&lt;/span&gt;-release &lt;span class="o"&gt;(&lt;/span&gt;x86_64-apple-darwin20.3.0&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ git --version&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git version 2.31.1&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="今回の作業の前提"&gt;今回の作業の前提&lt;/h2&gt;&#10;&lt;p&gt;当然のことながら &lt;code&gt;git&lt;/code&gt; コマンドが使えるようになっている必要があります。&lt;/p&gt;&#10;&lt;p&gt;加えて、 Git のバージョンが &lt;strong&gt;2.28&lt;/strong&gt; 以降でなければいけません。&lt;/p&gt;</description></item><item><title>シェルでGithubリポジトリのmasterブランチの名前をmainブランチに変更する</title><link>https://genzouw.com/entry/2021/05/22/090213/2631/</link><pubDate>Sat, 22 May 2021 09:02:13 +0900</pubDate><guid>https://genzouw.com/entry/2021/05/22/090213/2631/</guid><description>&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;&#10;&lt;p&gt;随分前のことですが、新規に作成される Github リポジトリのデフォルトブランチ名が &lt;code&gt;master&lt;/code&gt; から &lt;code&gt;main&lt;/code&gt; に変更となりました。&lt;/p&gt;&#10;&lt;p&gt;ところが既存の Github リポジトリは当然 &lt;code&gt;master&lt;/code&gt; というブランチ名のままです。&lt;/p&gt;&#10;&lt;p&gt;機会があれば昨今の風潮にのって一括修正しようかなぁ、と思っていましたが、ブログネタについでにシェルでブランチ名の変更を行ってみました。&lt;/p&gt;&#10;&lt;p&gt;&lt;em&gt;大量に Github リポジトリを持っている組織などでも利用できるのではないでしょうか。&lt;/em&gt;&lt;/p&gt;&#10;&lt;h2 id="検証環境"&gt;検証環境&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 2&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 3&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 4&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 5&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 6&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 7&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 8&#10;&lt;/span&gt;&lt;span class="lnt"&gt; 9&#10;&lt;/span&gt;&lt;span class="lnt"&gt;10&#10;&lt;/span&gt;&lt;span class="lnt"&gt;11&#10;&lt;/span&gt;&lt;span class="lnt"&gt;12&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ uname -moi&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;x86_64 MacBookPro16,1 Darwin&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ bash -version &lt;span class="p"&gt;|&lt;/span&gt; head -n &lt;span class="m"&gt;1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;GNU bash, version 5.1.8&lt;span class="o"&gt;(&lt;/span&gt;1&lt;span class="o"&gt;)&lt;/span&gt;-release &lt;span class="o"&gt;(&lt;/span&gt;x86_64-apple-darwin20.3.0&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ git --version&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git version 2.31.1&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ gh --version&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;gh version 1.10.2 &lt;span class="o"&gt;(&lt;/span&gt;2021-05-19&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;https://github.com/cli/cli/releases/tag/v1.10.2&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="今回利用するツール"&gt;今回利用するツール&lt;/h2&gt;&#10;&lt;p&gt;今回は以下のツールを利用します。&lt;/p&gt;</description></item><item><title>"Prevent Public Repos"を導入してPublicなGithubリポジトリが作成されたら通知させる</title><link>https://genzouw.com/entry/2021/05/21/164152/2625/</link><pubDate>Fri, 21 May 2021 16:41:52 +0900</pubDate><guid>https://genzouw.com/entry/2021/05/21/164152/2625/</guid><description>&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;&#10;&lt;p&gt;お恥ずかしながら、Github 上の Organization 内にメンバーが意図せず Public なリポジトリを作成してしまい、それに気づけなかったことがありました。&lt;/p&gt;&#10;&lt;p&gt;プロダクトコードをガシガシコミットされる前に気づけたのですが、「これは危ないな」と思い良い方法を探していたところ、 &lt;strong&gt;Github Apps&lt;/strong&gt; に良さそうなアプリがあったので導入してみました。&lt;/p&gt;&#10;&lt;h2 id="検証環境"&gt;検証環境&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;span class="lnt"&gt;6&#10;&lt;/span&gt;&lt;span class="lnt"&gt;7&#10;&lt;/span&gt;&lt;span class="lnt"&gt;8&#10;&lt;/span&gt;&lt;span class="lnt"&gt;9&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ uname -moi&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;x86_64 MacBookPro16,1 Darwin&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ bash -version &lt;span class="p"&gt;|&lt;/span&gt; head -n &lt;span class="m"&gt;1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;GNU bash, version 5.1.8&lt;span class="o"&gt;(&lt;/span&gt;1&lt;span class="o"&gt;)&lt;/span&gt;-release &lt;span class="o"&gt;(&lt;/span&gt;x86_64-apple-darwin20.3.0&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ gh --version&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;gh version 1.10.2 &lt;span class="o"&gt;(&lt;/span&gt;2021-05-19&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;https://github.com/cli/cli/releases/tag/v1.10.2&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="prevent-public-repos-を利用する"&gt;&amp;ldquo;Prevent Public Repos&amp;rdquo; を利用する&lt;/h2&gt;&#10;&lt;p&gt;以下の Github Apps が今回の用途にピッタリでした。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://probot.github.io/apps/prevent-public-repos/"&gt;Prevent Public Repos | Probot&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Public な Github リポジトリが作成されたタイミングで、Critical な Issue を作成してくれます。&lt;/p&gt;&#10;&lt;p&gt;&lt;em&gt;Issue が作成されたことで気付けるのか？というのも含めて試してみます。&lt;/em&gt;&lt;/p&gt;&#10;&lt;h2 id="prevent-public-repos-導入方法"&gt;&amp;ldquo;Prevent Public Repos&amp;rdquo; 導入方法&lt;/h2&gt;&#10;&lt;h3 id="1-github-apps-を追加"&gt;1. Github Apps を追加&lt;/h3&gt;&#10;&lt;p&gt;&lt;a href="https://probot.github.io/apps/prevent-public-repos/"&gt;Prevent Public Repos&lt;/a&gt; のページ右上にある &lt;strong&gt;Add to Github&lt;/strong&gt; ボタンをクリックします。&lt;/p&gt;</description></item><item><title>GitHub CLIでIssue(イシュー)やPull-Request(プルリクエスト)にコメントがつけられるようになりました。</title><link>https://genzouw.com/entry/2021/01/29/192636/2153/</link><pubDate>Fri, 29 Jan 2021 19:26:36 +0900</pubDate><guid>https://genzouw.com/entry/2021/01/29/192636/2153/</guid><description>&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;&#10;&lt;p&gt;GitHubに対する操作をコマンドラインから実行するためのコマンドとして、 &lt;strong&gt;GitHub CLI&lt;/strong&gt; を愛用しています。&lt;/p&gt;&#10;&lt;p&gt;昔は &lt;a href="https://github.com/github/hub"&gt;hub&lt;/a&gt; コマンドを使っていましたが、 &lt;strong&gt;GitHub CLI&lt;/strong&gt; がリリースされてからはこちらを使っています。&lt;/p&gt;&#10;&lt;p&gt;つい先日、GitHub CLIでIssue(イシュー)やプルリクエストにコメントがつけられるようになりました。&lt;/p&gt;&#10;&lt;p&gt;早速使ってみたいと思います。&lt;/p&gt;&#10;&lt;h2 id="検証環境"&gt;検証環境&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;span class="lnt"&gt;6&#10;&lt;/span&gt;&lt;span class="lnt"&gt;7&#10;&lt;/span&gt;&lt;span class="lnt"&gt;8&#10;&lt;/span&gt;&lt;span class="lnt"&gt;9&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ uname -moi&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;x86_64 MacBookPro16,1 Darwin&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ bash -version &lt;span class="p"&gt;|&lt;/span&gt; head -n &lt;span class="m"&gt;1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;GNU bash, version 5.0.18&lt;span class="o"&gt;(&lt;/span&gt;1&lt;span class="o"&gt;)&lt;/span&gt;-release &lt;span class="o"&gt;(&lt;/span&gt;x86_64-apple-darwin19.5.0&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ brew --version&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Homebrew 2.7.7-32-gebcd56c&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Homebrew/homebrew-core &lt;span class="o"&gt;(&lt;/span&gt;git revision ce8c6c&lt;span class="p"&gt;;&lt;/span&gt; last commit 2021-01-29&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="github-cliのインストール-or-アップグレード"&gt;Github CLIのインストール or アップグレード&lt;/h2&gt;&#10;&lt;h3 id="まだインストールされていない場合"&gt;まだインストールされていない場合&lt;/h3&gt;&#10;&lt;p&gt;インストールされていない場合には、以下のコマンドを実行します。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ brew install gh&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h3 id="すでにインストールされている場合"&gt;すでにインストールされている場合&lt;/h3&gt;&#10;&lt;p&gt;インストール済みでバージョンが古い場合はアップグレードしましょう。&lt;/p&gt;&#10;&lt;p&gt;バージョンを確認してみます。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ gh --version&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;gh version 1.3.1 &lt;span class="o"&gt;(&lt;/span&gt;2020-12-03&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;https://github.com/cli/cli/releases/latest&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;最新版は &lt;strong&gt;1.5&lt;/strong&gt; であり、このバージョンでないとIssueやPull Requestにコメントを付けられない。&#10;そこでアップグレードを行います。&lt;/p&gt;</description></item><item><title>シェルを使って、Gitワークスペース内でリモートリポジトリのURLのみを抽出する</title><link>https://genzouw.com/entry/2020/05/25/141647/2026/</link><pubDate>Mon, 25 May 2020 14:16:47 +0900</pubDate><guid>https://genzouw.com/entry/2020/05/25/141647/2026/</guid><description>&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;&#10;&lt;p&gt;github.com上のソースコードに対して何らかの作業を実施する際には、まず &lt;code&gt;git clone&lt;/code&gt; を行います。&#10;&lt;code&gt;git clone&lt;/code&gt; したGitワークスペース上でソースを閲覧したりコードを改変します。&#10;この時点で、 &lt;code&gt;origin&lt;/code&gt; リモートリポジトリにプッシュ先のURL情報などが格納されます。&lt;/p&gt;&#10;&lt;p&gt;今回、このGitワークスペースと紐付けられている &lt;code&gt;origin&lt;/code&gt; リモートリポジトリのURL部分を抽出したいと思いました。&lt;/p&gt;&#10;&lt;p&gt;抽出する方法について紹介します。&lt;/p&gt;&#10;&lt;h2 id="検証環境"&gt;検証環境&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ uname -moi&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;x86_64 MacBookPro11,4 Darwin&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ bash -version &lt;span class="p"&gt;|&lt;/span&gt; head -n &lt;span class="m"&gt;1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;GNU bash, バージョン 5.0.17&lt;span class="o"&gt;(&lt;/span&gt;1&lt;span class="o"&gt;)&lt;/span&gt;-release &lt;span class="o"&gt;(&lt;/span&gt;x86_64-apple-darwin18.7.0&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="リモートリポジトリの情報をurl部分も含め出力"&gt;リモートリポジトリの情報をURL部分も含め出力&lt;/h2&gt;&#10;&lt;p&gt;リモートリポジトリの情報を一式表示するには以下のコマンドを利用します。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ git remote -v&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;origin git@github.com:genzouw/ec-cube.git &lt;span class="o"&gt;(&lt;/span&gt;fetch&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;origin git@github.com:genzouw/ec-cube.git &lt;span class="o"&gt;(&lt;/span&gt;push&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;upstream git@github.com:EC-CUBE/ec-cube.git &lt;span class="o"&gt;(&lt;/span&gt;fetch&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;upstream git@github.com:EC-CUBE/ec-cube.git &lt;span class="o"&gt;(&lt;/span&gt;push&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;ここでは、 &lt;code&gt;origin&lt;/code&gt; リモートリポジトリに加えて、 &lt;code&gt;upstream&lt;/code&gt; リモートリポジトリも紐付けられていることがわかります。&lt;/p&gt;&#10;&lt;p&gt;また、URL部分以外も出力されているため、 **URLだけが欲しい場合は余分を除去する必要があります。&lt;/p&gt;&#10;&lt;p&gt;また、便利なコマンドではありますがリモートリポジトリへの通信が発生します。&lt;/p&gt;&#10;&lt;h2 id="リモートリポジトリのurl部分のみを出力"&gt;リモートリポジトリのURL部分のみを出力&lt;/h2&gt;&#10;&lt;p&gt;URL部分だけが欲しい場合には以下のコマンドが利用できます。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# originリモートリポジトリのURLを出力&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ git remote get-url origin&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git@github.com:genzouw/ec-cube.git&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;以下のコマンドでも同様の結果が取得できます。&lt;/p&gt;</description></item><item><title>GitHub CLIを使ってコマンドラインからイシュー、プルリクを検索、表示してみる</title><link>https://genzouw.com/entry/2020/04/03/225419/1952/</link><pubDate>Fri, 03 Apr 2020 22:54:19 +0900</pubDate><guid>https://genzouw.com/entry/2020/04/03/225419/1952/</guid><description>&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;&#10;&lt;p&gt;今年の 2 月に公開されたばかりの &lt;strong&gt;GitHub CLI&lt;/strong&gt; というコマンドラインツールについて使ってみたので紹介してみます。&lt;/p&gt;&#10;&lt;p&gt;今までは &lt;a href="https://github.com/github/hub"&gt;hub&lt;/a&gt;コマンド を使っていましたが、話題になっているぐらいなので比較して有用性が高いはず、と思って使ってみました。&lt;/p&gt;&#10;&lt;p&gt;EC-CUBE の GitHub リポジトリのイシューを覗き見することが最近何度かあったため、イシューを検索、表示してみます。&lt;/p&gt;&#10;&lt;h2 id="検証環境"&gt;検証環境&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ uname -moi&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;x86_64 MacBookPro11,4 Darwin&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ zsh --version&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;zsh 5.8 &lt;span class="o"&gt;(&lt;/span&gt;x86_64-apple-darwin18.7.0&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="インストール"&gt;インストール&lt;/h2&gt;&#10;&lt;p&gt;Mac はかんたんですね。&lt;/p&gt;&#10;&lt;p&gt;今日現在、&lt;a href="https://cli.github.com/"&gt;公式ページ&lt;/a&gt;には以下のコマンドでインストールできるとありました。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ brew install github/gh/gh&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="セットアップ"&gt;セットアップ&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ gh issue list&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;初めてコマンドを実行する場合は、 &lt;strong&gt;GitHub CLI&lt;/strong&gt; が GitHubAPI を呼び出すための権限を付与する必要があるようです。&#10;以下のメッセージが表示されます。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Notice: authentication required&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Press Enter to open github.com in your browser...&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;&lt;em&gt;Enter&lt;/em&gt; キーを押すとブラウザが起動し、以下のようなページが表示されます。&lt;/p&gt;</description></item><item><title>Github上のOSSにプルリクエストをあげるための手順をまとめました</title><link>https://genzouw.com/entry/2019/05/08/233820/1442/</link><pubDate>Wed, 08 May 2019 23:38:20 +0900</pubDate><guid>https://genzouw.com/entry/2019/05/08/233820/1442/</guid><description>&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;&#10;&lt;p&gt;以下のOSSに対して、プルリクエストを上げたいと思ったのですが、「この作業以前もやっていたよな？」と思いました。&#10;いい機会なのでプルリクエストの上げ方を整理してみました。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://github.com/simonwhitaker/gibo"&gt;GitHub - simonwhitaker/gibo: Easy access to gitignore boilerplates&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="手順"&gt;手順&lt;/h2&gt;&#10;&lt;h3 id="1-リポジトリをforkします"&gt;1. リポジトリをForkします&lt;/h3&gt;&#10;&lt;p&gt;ターゲットとなるリポジトリのトップページを開き、ページ右上の &lt;strong&gt;「Fork」&lt;/strong&gt; のボタンを押します。&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://docs.google.com/uc?id=1_DXcyOtq7nM1g6a2g--AlYy7Aon3Ixkj" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;以下のようなダイアログが表示された場合はフォーク後のリポジトリの所有者となる「ユーザ」 or 「チーム」を選択してください。&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://docs.google.com/uc?id=1_UT5UyZy_Kv-hM3ubG39ZJSkmeGEahmO" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;Forkが始まったらしばし待ちましょう。&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://docs.google.com/uc?id=1pNN9I8s7ppuhwyAtkISguMcZ0R-itXBH" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;Forkが完了すれば、以下のようなページが表示されるはずです。（リポジトリ名のスラッシュの前、所有者名が &lt;strong&gt;genzouw&lt;/strong&gt; という僕のアカウント名に変わっていますね。）&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://docs.google.com/uc?id=1cCIbchWCLNCs34ezkHAr36W8pFELU2XQ" alt=""&gt;&lt;/p&gt;&#10;&lt;h3 id="2-リポジトリをクローンします"&gt;2. リポジトリをクローンします&lt;/h3&gt;&#10;&lt;p&gt;ここからはブラウザ上の操作から変わって、コンソールの作業となります。&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;git&lt;/code&gt; コマンドを使ってプロジェクトをクローンします。&lt;/p&gt;&#10;&lt;p&gt;リポジトリのURLは、先程の「Fork済みリポジトリページ」の右上にある「Clone or download」というボタンからクリップボードにコピーできます。&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://docs.google.com/uc?id=1xFlgV-cTWKB96l_kC4bxX8r-vJvxoaVE" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="https://docs.google.com/uc?id=1DviGh3o5SxG-3ojhEMOAaqfvN4NyCLc3" alt=""&gt;&lt;/p&gt;&#10;&lt;p&gt;今回のリポジトリは以下のようなURLになりました。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git@github.com:genzouw/gibo.git&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;&lt;code&gt;git&lt;/code&gt; コマンドでクローンし、フォルダに移動します。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ git clone git@github.com:genzouw/gibo.git &lt;span class="se"&gt;\&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd&lt;/span&gt; gibo&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h3 id="3-変更内容をコミットするためのブランチを作成します"&gt;3. 「変更内容をコミットするためのブランチ」を作成します&lt;/h3&gt;&#10;&lt;p&gt;「変更内容をコミットするためのブランチ」を作成します。&lt;/p&gt;&#10;&lt;p&gt;今回は「GitFlow」を参考に &lt;code&gt;feature/find_files_in_subdirectories&lt;/code&gt; というブランチ名にしています。&#10;&lt;code&gt;find_files_in_subdirectories&lt;/code&gt; の部分には改修内容がわかるようにスネークケースで名前をつけています。&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ git checkout -b feature/find_files_in_subdirectories&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h3 id="4-ファイルの編集追加を行う"&gt;4. ファイルの編集・追加を行う&lt;/h3&gt;&#10;&lt;p&gt;適宜変更しましょう。&#10;省略します。&lt;/p&gt;</description></item><item><title>シェルスクリプトで任意のオーナーが所有するGithubリポジトリを一覧表示する（ワンライナー）</title><link>https://genzouw.com/entry/2019/03/20/075915/1216/</link><pubDate>Wed, 20 Mar 2019 07:59:15 +0900</pubDate><guid>https://genzouw.com/entry/2019/03/20/075915/1216/</guid><description>&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;&#10;&lt;p&gt;Githubで任意のオーナーが所有するリポジトリを全て確認したいのですが、Githubのリポジトリ一覧ページに到達するまで面倒ですよね。&#10;（ 僕がGithub不慣れなだけなのでしょうか？ )&lt;/p&gt;&#10;&lt;p&gt;そこで、シェルスクリプト化していつでも一覧を表示できるようにしてみました。&lt;/p&gt;&#10;&lt;h2 id="スクリプト"&gt;スクリプト&lt;/h2&gt;&#10;&lt;h3 id="hub-repossh"&gt;&lt;code&gt;hub-repos.sh&lt;/code&gt;&lt;/h3&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#!/usr/bin/env bash&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;set&lt;/span&gt; -o nounset&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;set&lt;/span&gt; -o noclobber&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl &lt;span class="s2"&gt;&amp;#34;https://api.github.com/users/&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;1&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;SNS_USERNAME&lt;/span&gt;&lt;span class="si"&gt;}}&lt;/span&gt;&lt;span class="s2"&gt;/repos?per_page=100&amp;#34;&lt;/span&gt; 2&amp;gt;/dev/null &lt;span class="p"&gt;|&lt;/span&gt; jq -r &lt;span class="s1"&gt;&amp;#39;.[].name&amp;#39;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h3 id="必要なもの"&gt;必要なもの&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; &lt;a href="https://stedolan.github.io/jq/"&gt;jq&lt;/a&gt; コマンドが使えること&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h3 id="使い方"&gt;使い方&lt;/h3&gt;&#10;&lt;p&gt;以下のいずれかで所有者を設定できます。&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;環境変数 &lt;code&gt;SNS_USERNAME&lt;/code&gt; を設定する。 ( ex : &lt;code&gt;export SNS_USERNAME=genzouw&lt;/code&gt; )&lt;/li&gt;&#10;&lt;li&gt;スクリプトの第一引数を指定する ( ex : &lt;code&gt;hub-repos.sh genzouw&lt;/code&gt; )&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;パスの通っている場所に配置してあげてください。&lt;/p&gt;&#10;&lt;h2 id="ひとこと"&gt;ひとこと&lt;/h2&gt;&#10;&lt;p&gt;ずいぶん昔に作ったスクリプトの整理をしていて見つけました。&#10;当時のスクリプトは、 &lt;code&gt;jq&lt;/code&gt; を使っている部分に &lt;code&gt;ruby -rjson -e 'JSON.parse(STDIN.read).each{|r|puts r[&amp;quot;name&amp;quot;]}'&lt;/code&gt; と記述されていました。&#10;ruby触っていた記憶なんてほとんど無いんですけどね。&lt;/p&gt;</description></item><item><title>Githubで無料アカウントでもPrivateリポジトリ作成が無制限になったのでコマンドで操作するための環境を整える</title><link>https://genzouw.com/entry/2019/01/22/085412/565/</link><pubDate>Tue, 22 Jan 2019 08:54:12 +0900</pubDate><guid>https://genzouw.com/entry/2019/01/22/085412/565/</guid><description>&lt;h2 id="はじめに"&gt;はじめに&lt;/h2&gt;&#10;&lt;p&gt;Githubの無料アカウントユーザにもPrivateリポジトリ作成が無制限となりましたね。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://thenextweb.com/dd/2019/01/05/github-now-gives-free-users-unlimited-private-repositories/"&gt;GitHub now gives free users unlimited private repositories&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;今まで &lt;a href="https://bitbucket.org/"&gt;Bitbucket&lt;/a&gt; を利用し横目で &lt;strong&gt;Githubユーザいいなぁ&lt;/strong&gt; と思っていたが、Githubどんどん使っていこうかなと思った次第です。&lt;br&gt;&#10;とはいえ、今まで使っていた &lt;a href="https://bitbucket.org/zhemao/bitbucket-cli"&gt;bitbucket-cli&lt;/a&gt; の &lt;code&gt;bb&lt;/code&gt; コマンドのように、CUIで &lt;strong&gt;リポジトリを作成し&lt;/strong&gt; たり &lt;strong&gt;プルリクエストあげ&lt;/strong&gt; たり &lt;strong&gt;削除し&lt;/strong&gt; たりはできるようにしたいです。&lt;/p&gt;&#10;&lt;p&gt;以下のツールを導入してみます。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://github.com/github/hub"&gt;GitHub - github/hub: hub helps you win at git.&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="特徴"&gt;特徴&lt;/h2&gt;&#10;&lt;p&gt;一部抜粋&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;hub is a command line tool that wraps git in order to extend it with extra features and commands that make working with GitHub easier.&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;日本語訳すると以下のようになります。&lt;/p&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;hubはGitHubでの作業を容易にする追加機能やコマンドでgitを拡張するためにgitをラップするコマンドラインツールです。&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;ラッパーツールということで &lt;strong&gt;Git&lt;/strong&gt; は必須。&lt;/p&gt;&#10;&lt;h2 id="環境"&gt;環境&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;span class="lnt"&gt;4&#10;&lt;/span&gt;&lt;span class="lnt"&gt;5&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ uname -moi&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;x86_64 MacBookPro10,1 Darwin&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ zsh --version&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;zsh 5.6.2 &lt;span class="o"&gt;(&lt;/span&gt;x86_64-apple-darwin17.7.0&lt;span class="o"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;h2 id="インストール"&gt;インストール&lt;/h2&gt;&#10;&lt;p&gt;以下を参照&lt;/p&gt;</description></item></channel></rss>