GitHubのプロフィールやリポジトリのQRコードを作る

アドレスを貼り、ステッカーやスライドに合わせてデザインを整えて印刷対応で書き出せます。次にリネームされても解決し続けるURLに向けて。

1 内容
https://
登録不要 QRコード無制限 ウォーターマークなし Free high-resolution downloads
2 デザイン
パターン
3 プレビュー
コピーしました

GitHub QRコードとは?

GitHub QRコードは、github.comのアドレス、つまりプロフィール、リポジトリ、リリース、gist、特定コミット時点のファイルを収めたQRコードです。スキャンするとそのページがスマホのブラウザで開きます。リポジトリを読むのにアプリは不要なので、どの端末でもスキャンは機能します。

KoloQRのデザイナーでQRコードのスタイルを調整している様子:形・色・中央のロゴ

コードに入れるべきGitHubのURLはどれか

GitHubは同じものに複数のアドレスを持っており、その古び方はまったく違います。

  • github.com/owner/repo/releases/latest - 常に最新の公開リリースへリダイレクトします。1か月で誤りになるバージョン番号ではなく、ハードウェアやドキュメントにはこれを刷ってください。
  • github.com/owner/repo/blob/<コミット>/path - 特定コミット時点のファイルへの恒久リンク。ファイルページでyを押すとブランチURLがこの形に書き換わります。腐らない唯一のファイルリンクです。
  • github.com/owner/repo/blob/main/README.md - ブランチへのリンク。手軽ですが、スキャンした時点のmainの内容を表示します。印刷された参照物なら、それは何年分もの変更のあとかもしれません。

GitHubはリポジトリやアカウントをリネームしてもリダイレクトを維持するので、印刷したコードがリネームで必ず死ぬわけではありません。ただしそのリダイレクトは、旧名が誰にも取得されていないことが前提で、解放されたユーザー名は他人が登録できます。大量に印刷するものについては、自分が管理するドメインの短いURLを符号化してGitHubに向けておく理由になります。そうすれば移転は刷り直しではなく、リダイレクトを1回編集するだけで済みます。

スキャンでスマホに実際に開くもの

スマホでのリポジトリページは細い1カラムです。ファイル一覧があり、その下にREADMEがレンダリングされます。これは十分読めるので、カンファレンスのステッカーや開発ボードのシルク印刷に載せたコードが役に立ちます。刷る前に知っておくべきことが2つ。プライベートリポジトリは、権限のない人にはログイン画面ではなく404を返します。つまり非公開の作業に向けたコードは、保護されているようには見えず壊れて見えます。ログアウトしたスマホでテストしてください。もう1つ、raw.githubusercontent.comの生ファイルURLは、リポジトリを開くのではなくダウンロードするかプレーンテキストとして表示されます。設定ファイルには適切で、人が読むためのものには不適切です。

QRコードを作成
本刷りの前に、印刷したQRコードをスマホでスキャンしてテストしている様子

GitHub QRコードが使われる場面

物理的な物の上のコードは、ハードウェア、紙、あるいは登壇の場から、その裏側のソースコードへの最短経路です。

カンファレンスのステッカーと名札

コード付きのステッカーは、壇上で読み上げられて帰り道にはうろ覚えになるリポジトリ名に勝ります。

ハードウェアと開発ボード

基板のシルクや箱に刷ったコードが、ファームウェアのリポジトリと最新リリースを指し続けます。その機器の寿命のあいだずっと。

印刷したドキュメントやマニュアル

マニュアルは刷った日に古くなります。リポジトリのdocsフォルダへのコードは、古くならないほうの版です。

スライドとワークショップの配布資料

最後のスライドに恒久リンクへのコードを1つ。人がコピーする例が、その人が見た例と同じになります。

開発者の名刺

プロフィールのコードは、仕事の説明ではなく仕事そのものを載せます。名刺の目的はまさにそこです。

ハッカソンやデモデーのポスター

審査員や来場者がポスターをスキャンすれば、次のテーブルに着く前にプロジェクトを開けています。

GitHub QRコードの作り方

リポジトリから印刷したステッカーまで4ステップです。

QRコードを作成
  1. 1

    いちばん長持ちするURLを選ぶ

    名刺にはプロフィール、ハードウェアやマニュアルには/releases/latest、コード断片にはコミットの恒久リンク。印刷物ではブランチリンクとバージョン番号を避けます。

  2. 2

    ログアウト状態で解決するか確かめる

    シークレットウィンドウでURLを開きます。プライベートリポジトリはログイン画面ではなく404を返し、読み手が見るのもそれです。

  3. 3

    リンクを貼ってコードをデザインする

    URLタイプを選んでアドレスを貼り、形と色を決めます。マットなステッカーには、反転させた配色より明るい地に濃いモジュールのほうが強いです。

  4. 4

    テストして書き出す

    スマホでスキャンし、ステッカーやシルク印刷にはSVGかPDF、スライドにはPNGを書き出します。

KoloQRの作成ツールでQRコードをデザインし、ダウンロードできる状態になっている様子

どのファイル形式をダウンロードすべき?

KoloQRはGitHub QRコードを3つの形式で書き出します。どこで見られるかで選んでください。

  • PNG スライド、README、ドキュメントサイトなど、コードが固定サイズで表示される場所に。
  • SVG ステッカー、シルク印刷の版下、印刷マニュアルに。拡大しても輪郭が甘くなりません。
  • PDF ステッカー印刷所や基板メーカーへの入稿に。印刷対応の品質のまま渡せます。

このページで気をつけるべきはデータ量です。github.com/ownerは25文字ほどで、小さく刷っても問題ありません。一方、ツリーの深い場所にあるファイルへのコミット恒久リンクは100文字を超えることがあり、より大きなシンボルか大きなステッカーが必要になります。長い恒久リンクを親指の爪ほどの面積に載せるなら、自分のドメインの短い転送URLを前に置いてください。

QRコードを作成

GitHub QRコードのベストプラクティス

コードベースへの印刷したリンクには、コード自身にはできない仕事が1つあります。あとになっても正しいままでいることです。

  • バージョン番号ではなく/releases/latestを刷る

    このアドレスは常に最新の公開リリースへリダイレクトするので、マニュアルや機器ラベルが古いバージョンを名指しすることはありません。

  • コード断片にはコミットの恒久リンクを使う

    ブランチ上のファイルへのリンクは、スキャン時点のそのブランチの内容を表示します。コミットの恒久リンクなら、隣に刷ったものと同じ内容が出ます。

  • プライベートリポジトリが404を返すことを確認する

    GitHubは、見る権限のないリポジトリについてログアウト中の訪問者にログインを促しません。非公開の作業へのコードは、組織外の全員には壊れて見えます。

  • 長寿命の印刷物でリネーム時のリダイレクトを当てにしない

    リポジトリやアカウントのリネームはリダイレクトを残しますが、それは旧名が取得されないあいだだけです。シルク印刷やパッケージはその保証より長く生きます。

  • URLは載せる面に見合う長さに保つ

    プロフィールのURLは15mmでも余裕で刷れます。同じサイズでの深い恒久リンクは、同じ面積により密なシンボルを詰め込むことになり、スキャンが失敗し始めるのはそこです。

  • 生ファイルよりリポジトリのページを選ぶ

    raw.githubusercontent.comのリンクは、スマホにプレーンテキストかダウンロードを渡します。リポジトリのページはREADMEをレンダリングし、人がスキャンしたのはそちらです。

  • コードの行き先を明示する

    コードの横の「ファームウェアとドキュメント」や「この発表のソース」は、スキャンされるか肩をすくめられるかの差になります。

  • 濃色ステッカーではコントラストに注意する

    スマホのカメラが前提とするのは、明るい地に濃いモジュールです。どうしてもステッカーを濃色にするなら、量産を発注する前に反転版を複数の端末で試してください。

  • クワイエットゾーンを守る

    四辺それぞれにモジュール4つ分の余白を。図柄が抜き型の線まで届く小さなステッカーでは簡単に失われます。

  • 読む距離に合わせたサイズに

    目安は読む距離の約10分の1です。ノートPCのステッカーなら約2cm、2mから読むポスターなら約20cm。

GitHub QRコードが動かないときは

このページでパターン自体が原因であることはまれです。たいていは背後のURLで、指し先の問題か、長さの問題かのどちらかです。

  • スキャンすると404ページが出る

    原因
    リポジトリがプライベートか、リネームまたは削除され、旧名を他人が取得したためリダイレクトが失われています。
    対処法
    リポジトリを公開にするか、コードを公開プロフィールやドキュメントページに向けます。大量に刷るものは、自分のドメインに転送を置いて符号化し、行き先を編集可能にしておきましょう。
  • 小さなステッカーでスキャンできない

    原因
    深い恒久リンクや長いファイルパスを符号化したため、15mmのステッカーで解像できる以上のモジュール数になっています。
    対処法
    行き先を短くします。プロフィール、リポジトリのルート、/releases/latestのいずれかにするか、長いURLの前に自分のドメインの短いURLを置いて作り直してください。
  • スキャンするとページではなくファイルがダウンロードされる

    原因
    URLがraw.githubusercontent.comのアドレスで、GitHubのレンダリング済みページではなくファイルそのものを返しています。
    対処法
    代わりにgithub.com/owner/repo/blob/... のアドレスを符号化します。生リンクは、カメラを持った人ではなく機械向けに、たとえばスクリプトが取得する設定ファイル用に残してください。
  • コードがプロジェクトの古いバージョンを指している

    原因
    タグ付きリリースのURLかブランチリンクを符号化し、プロジェクトが先へ進みました。コードは言われたとおりに動いています。
    対処法
    ダウンロードなら/releases/latest、ソースならリポジトリのルートで刷り直します。どちらもプロジェクトに追従し、デザインを作った日に固定しません。

問題がファイルにあるのか印刷にあるのか判断できない場合は、書き出した画像をQRコードスキャナーに読み込ませてください。パソコンでは読めて紙では読めないなら、原因はファイルより後の工程にあります。

Questions? Answered

GitHub QRコードはgithub.comのアドレス、つまりプロフィール、リポジトリ、リリース、特定コミットのファイルを収めたコードです。スキャンするとそのページがブラウザで開きます。公開リポジトリを読むのにアプリもアカウントも不要です。

名刺にはプロフィール、ハードウェアやマニュアルにはgithub.com/owner/repo/releases/latest、コード断片にはコミットの恒久リンクです。印刷物ではブランチリンクと固定バージョン番号を避けてください。

GitHubが旧アドレスから新アドレスへリダイレクトするので、印刷したコードはたいてい動き続けます。ただしそれは旧名が取得されないあいだだけで、他人が登録するとリダイレクトは止まります。

作れますが、ログアウト中の訪問者にはログイン画面ではなく404が出るため、組織外の全員にはコードが壊れて見えます。公開の印刷物は公開ページに向けてください。

github.com/owner/repo/releases/latestを符号化します。GitHubが最新の公開リリースへリダイレクトするので、機器やマニュアルに刷ったコードが古いバージョンを名指しすることはありません。

プロフィールやリポジトリのURL(25〜40文字ほど)なら約15mmから安定して刷れます。長いコミット恒久リンクはより大きなシンボルが必要なので、面積を増やすか、先に行き先を短くしてください。

raw.githubusercontent.comのURLを符号化しているからで、これはファイルそのものを返します。人がページを読むのが目的なら、github.com/owner/repo/blob/... のアドレスを使ってください。

入れられます。PNGで書き出して、ほかの画像と同じようにコミットするだけです。READMEがハードウェアを説明している場合は特に有効で、印刷した物とリポジトリが同じコードを持てます。

動きます。公開リポジトリはREADMEを含めてどのモバイルブラウザでも表示されます。スキャンが解決するかどうかに、アプリの有無は関係ありません。

コードからは分かりません。GitHubのトラフィック統計も自分が所有するリポジトリしか対象外です。特定のポスターやステッカーのスキャンを数える確実な方法は、自分のドメインに転送を置くことだけです。

KoloQRを選ぶ理由

  • ウェブサイト、メニュー、Wi-Fi、PDF、名刺用のQRコードを作成
  • 色・ロゴ・オリジナルの形をカスタマイズ
  • 高品質なPNG・SVGファイルをダウンロード
  • 印刷にもデジタルにも対応
QRコードを作成
シンプルな黒いQRコードと、同じコードをブランドカラーの円形にデザインし直したもの