GitHub

[GitHub] Git LFSで巨大なファイルを扱う

Gitでバイナリや巨大なファイルを扱う場合に活躍するのが「LFS(Large File Storage)」。
詳細な説明は様々なページで行われていますので、今回はGitHubの利用を前提とした基本的な使い方についてだけまとめておきます。

簡単に言うとLFSを利用するとファイルの実際のデータは専用のストレージに、リポジトリ内部には200byteにも満たないハッシュ値等を保存することでリポジトリを軽量化することができるという仕組みです。

Gitはバイナリファイルに更新がある度に全データがリポジトリに保管されるため油断しているとあっという間にリポジトリが肥大化してしまいます。またGitHubでは通常100Mbyte以上のファイルをpushすることができません。それに加えリポジトリのサイズは1G程度が推奨されていることから「LFS(Large File Storage)」が必要とされているというわけです。

続きを読む

[Git] GitHubにGPG鍵を登録し署名付きcommit/tagを行う

Gitの初期設定で自分の名前やメールアドレスを入力するわけですが、特に認証などが入るわけではないので簡単に他人になりすましが出来てしまいます。そこで確かに自分がコミットまたはタグを付けたことを証明するために、署名を付けることができます。

GitHubを眺めていると見かける、コミットログの横に「Verified」バッジが表示されているのがそれです。

例えばプルリクを受け取った人が、なりすましを行った悪意のある第三者から送られてきたかどうか判断する手助けになるというわけですね。また同様にコミットやタグが改ざんされているかも検知することができます。
続きを読む

[GitHub Actions] 実行結果をSlackへ通知する

GitHub Actionsの実行結果を毎回GitHub上で確認するのも面倒ですよね。一応失敗したときはメールでお知らせしてくれますが、できればSlackに投げてくれるといろいろ都合が良かったりもします。

そこで今回はActionsの実行結果をSlackへ通知する設定を行います。
続きを読む

[GitHub Actions] AWS S3へファイルを自動的に転送する

GitHub上にリポジトリを作成し、いつも通りpushすると自動的に仮想マシンが起動しこちらが指定した処理を行ってくれる「Actions」という機能があります。なんとパプリックリポジトリは無料、プライベートリポジトリも月間2000分(約33時間)までは無料で使えるという夢のような機能ですw

主にアプリをビルド(コンパイル)したり、テストコードを自動的に実行するといった用途に使われていますが、ここでは特定のブランチを更新しpushすると、そのファイルをAWS S3へ自動的に転送する設定を行ってみます。
続きを読む

Docusaurusでドキュメントを作成しGitHub Pagesへ公開する

facebookが開発しているDocusaurusドキュサウルスを利用すると、Markdownを書いてちょちょいと設定すればナウい感じのドキュメントを作成することができるという噂を聞きつけ、今回はインストールから簡単な設定を行い、GitHub Pagesへ公開するところまでを駆け足でたどります。

具体的な事例は公式サイトに一覧が掲載されていますが、facebook製だけあってReact関連のプロジェクトはほとんどがDocusaurusみたいですね。

なおDocusaurusには現行バージョンの1.x系と、開発中の2.x系がありますが、今回は1.x系を利用します。2系はコマンドや設定が異なりますのでご注意ください。
続きを読む

[GitHub] SSHの鍵を登録しパスワード入力を不要にする

GitHubを利用している際に、HTTPSでリポジトリをcloneしているとpushやpullをする際に毎回IDとパスワードの入力を求められます。一時的にメモリ上などにキャッシュすることも出来るのですが、一定期間が経過すると再び入力する必要があるため根本的な解決になりません。

$ git push
Username for 'https://github.com': katsube      
Password for 'https://katsube@github.com': 

そこで今回はGitHubにSSHで利用する公開鍵を登録し、アカウント情報を毎回入力せずに済む設定を行います。
続きを読む

[Quora] GitHubでスターをもらったら自慢したくならないの?

Quora回答シリーズです。

質問

同僚のプログラマーで目立つ存在でもない人のGitHubを見つけたところ、スター100以上のEmacs Packageを開発していました。私なら自慢したくなるものの、プログラマーは爪を隠すのでしょうか?
https://qr.ae/pNyMyU

後述しますがこの回答が高評価もPVも自己ベストとなりましたw どうして……(;´∀`)
続きを読む

[Quora] GitHubを会社で使う場合セキュリティが不安

Quora回答シリーズです。

質問

社内でGitHub等のクラウド上のコード管理の利用を検討中です。開発は使用したいのですが、セキュリティ委員がセキュリティ面で納得しません。皆さんの会社ではどうのようなセキュリティ対策をしていますか?
https://qr.ae/TVeSyv

GitHubに限らずクラウドサービスはどこまで第三者のサービスを信じるのか…という話に帰結する気がしますね。
続きを読む

[GitHub] Markdownの「シンタックスハイライト」に対応している言語一覧

Markdownでプログラムのソースコードを記述する場合に使うバッククォート3つで囲う「コードブロック」ですが、気の利いた環境だと自動的にシンタックスハイライトによって予約語やコメント分などを色分けして見やすく表示してくれます。

GitHubも例外ではなく、各リポジトリに常設されているWikiやREADMEなどをMarkdownで記述した場合は自動的にシンタックスハイライトされます。

メジャーな言語であればそのまま記述すればよいのですが、例えばYAMLやJSONなどのデータ形式や、Apacheの設定ファイルなどそもそもカラーシンタックスに対応しているのか、対応している場合キーワードはなんだろうと迷いますよね。

今回はGitHubが対応しているカラーシンタックスの設定一覧をまとめておきます。
続きを読む

[Firebase] AuthenticationでGitHub認証 (Web編)

Firebaseへメールアドレス認証Twitter認証Facebook認証Google認証匿名認証、お次はGitHubです。

AuthenticationでGitHubログイン

エンジニア向けのサイトだとGitHubでログインさせたくなりますよね。

Firebase Webコンソールの設定

FirebaseのWebコンソールへログインしたら、メニュー「Authentication」→「ログイン方法」とたどります。

画面の真ん中あたりにある「GitHub」のアコーディオンメニューを開き、「有効にする」にチェックしたあと、コールバックAPIをメモします。

ここまで出来たらGitHubへ移動します。

続きを読む

GitHubの2段階認証の設定をする(SMS編)

GitHubの利用頻度が上がってきたのもあって、2段階認証かけました。

brute forceアタックなどに対する最低限のセキュリティはGitHub側でやってくれているとは思いますが、どこからパスワードが漏れるかわからないのですからねw

設定

設定自体は5分もあれば終了します。

設定画面へ

まずはWebからGitHubにログインをし、「Setting」から設定画面へ遷移。

左側のメニューにある「Security」をクリック。

「Enable two-factor authentication」ボタンをクリック。

続きを読む

GitHub APIでIssueを操作する with PHP

GitHubへ一度に大量のIssueの登録をしなければならない、プロジェクト開始時などよくあるシチュエーションかと思います。10件や20件程度なら手作業でも良いのですが、数十個を超えてくるとさすがに人間でやるのは大変すぎるので機械にお願いしたいところ。

今回はGitHub APIをPHPから利用し、Issueの登録と更新、一覧の取得を行いたいと思います。

GitHub API

GitHubには開発者用に各種APIが整備されており、RESTful APIGraphQLを用いて様々な操作を行うことができます。

おとこらしくcurlなどで実装してもよいのですが、すでに公開されているライブラリの中から好みの物を用いてIssueの操作を行います。本来の目的は楽をするはずなのに、ここで苦労してはよくわからないことになりますしねw


続きを読む

npmのパッケージ公開入門

Node.jsを使うメリットは膨大なモジュールを備えるnpmの存在が大きいところです。既存の物を利用するだけでも良いのですが、npmには誰でも簡単にモジュールを公開することができる仕組みが備わっています。

続きを読む