はじめに
この春入社したメディア事業本部サービス開発部の田中です。大学ではメディア学を専攻し、サイト制作に興味を持ったことをきっかけに、学内プログラムやサークル活動に参加していました。本格的に技術的な知識を学び始めたのは、入社後の研修からです。
今年8月に現在のチームに配属され、いくつかのサイトの構築や保守・運用に取り組んでいます。
担当することになったサイトでは、バージョン管理にGithub等のメジャーなGitサービスではなく、BacklogのGitを使用していました。
Backlogをタスク管理ツールとして使用している会社は多いと思いますが、BacklogのGitを使っているプロジェクトは珍しいケースかもしれません。研修ではGitHubを使ってGitの基本操作を学んでいましたが、もちろん私もBacklogのGitを使うのは初めてでした。
先輩から伺った話では、このプロジェクトでBacklogのGitを選んだ理由として、以下が挙げられます。
- 既存の環境を活用できた
→すでにBacklogでタスク管理をしており、アカウントや設定が整っていて追加準備なしで始められた - サービス規模に合っていた
→プロジェクト規模が小さく、GitHubほどの高度な機能は不要と判断した - 利用開始が楽だった
今回は、BacklogのGitを使った感想と、いざ使い始めようとしたらこんなつまずきがあったという話をします。
Backlog Gitを使ってみて
実際にBacklog Gitを使ってみて、良かったところと困ったところをまとめます。
良かったところ:
- 日々のプロジェクト管理と合わせて使える
- よりビジネス側との調整がしやすい
- シンプルで必要最低限の機能がある
- 既存のBacklogアカウントで使える
困ったところ:
- 情報が少ない
- 公式ドキュメントが限られている
使ってみた感想
GitHubはエンジニアに特化した使い方ができるのに対し、BacklogのGitは1つのツールでプロジェクト管理とGitリポジトリの管理ができるため、ビジネス側とエンジニア側の調整をする上でやりやすいと感じました。例えば、ビジネス側からの依頼内容とエンジニア側の開発作業を同じチケットで確認でき、依頼から実装までの流れを追いやすい点が良かったです。小規模プロジェクトには十分だと思います。
使い方についてはチーム内で手順化されていない部分があり、自分で調べたり、先輩に相談したりする中で、学ぶ機会になりました。
つまずき 〜SSH接続の設定〜
Gitを使うために、BacklogのGitリポジトリをクローンする必要がありました。最初はHTTPS接続で試みましたが、うまくいきませんでした。
記事を書くにあたって調べ直したところ、2段階認証(2FA)を設定している場合、通常のパスワードではなく「特別なパスワード」を発行すればHTTPS接続でもクローンできることがわかりました。
同じサイトを担当している先輩から、Gitの勉強を兼ねて「SSH接続を設定してクローンするまで」をタスクとして依頼されました。先輩に共有いただいたサイトや手順を参考に取り組みました。
GitやSSH接続の設定は入社後の研修で触れましたが、実際に作業するにあたってつまずいてしまう部分もありました。今回は、同じような状況の方が参考にできるよう、手順をまとめます。
前提条件
- Backlogのアカウントを持っていること
- Gitがインストールされていること
- ターミナル(コマンドライン)が使えること
作業環境
この記事では、macOSのターミナルを使用した手順を記載しています。
設定手順
1. SSH鍵ペアの作成
BacklogのSSH接続では公開鍵認証方式を使用しており、サーバー側に公開鍵を登録し、クライアント側の秘密鍵で認証します。そのため、まず秘密鍵と公開鍵のペアを作成する必要があります。
サル先生のGit入門 SSH接続設定の「SSH接続を設定したい(コンソール)」の手順に沿って行いました。
まず、以下のコマンドを実行します。
ssh-keygen
実行すると、以下のような質問が表示されます。
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/username/.ssh/id_rsa): [Enter]
Enter passphrase (empty for no passphrase): [Enter]
Enter same passphrase again: [Enter]
-
ファイルの保存場所 : デフォルト(
~/.ssh/id_rsa)のままEnterキーを押すか、任意の名前を指定できます(例:~/.ssh/backlog_key) - パスフレーズ : 空のままEnterキーを押すか、パスフレーズを設定します。
作成された鍵は、指定した名前で ~/.ssh/ 配下に保存されます。
- デフォルトの場合:秘密鍵
~/.ssh/id_rsa、公開鍵~/.ssh/id_rsa.pub - 名前を指定した場合:秘密鍵
~/.ssh/[指定した名前]、公開鍵~/.ssh/[指定した名前].pub
2. 公開鍵をBacklogで設定
作成した公開鍵(~/.ssh/[公開鍵ファイル名].pub)の内容をBacklogに登録します。
サル先生のGit入門 SSH接続設定の「BacklogにSSH鍵を設定したい」の手順に沿って行いました。
① 公開鍵の内容をコピー
cat ~/.ssh/[公開鍵ファイル名].pub
② Backlogにログインし、 個人設定 → SSH公開鍵 のページを開く
③ コピーした公開鍵の内容を貼り付けて登録
メモは任意ですが、何の鍵かわかるように記載しておくことをおすすめします。
3. SSH設定ファイル(config)の作成
~/.ssh/config ファイルを作成(または編集)し、Backlogへの接続設定を追加します。
このファイルを使うことで、接続時にホスト名や秘密鍵のパスを毎回指定しなくて済みます。また、社内ネットワーク経由で接続する場合にプロキシ設定を指定する際にも使います。
Backlogのホスト名を確認
BacklogのGitリポジトリページで、SSH URLを確認します。URLは以下の形式です。
[サブドメイン]@[Backlogのホスト名]:[プロジェクト名]/[リポジトリ名].git
- サブドメイン:Backlogで使用する識別子
- Backlogのホスト名:BacklogのGitリポジトリに接続するためのアドレス
configファイルに設定を追加
~/.ssh/config ファイルを開き(存在しない場合は作成)、以下の設定を追加します。
社外ネットワークやVPN経由で接続する場合:
Host [任意の名前] [Backlogのホスト名]
HostName [Backlogのホスト名]
IdentityFile ~/.ssh/[秘密鍵ファイル名]
社内ネットワーク経由で接続する場合:
※ プロキシサーバーを使用している環境の場合に必要です。
Host [任意の名前] [Backlogのホスト名]
ProxyCommand nc -X connect -x [プロキシサーバー]:[ポート番号] %h %p
HostName [Backlogのホスト名]
IdentityFile ~/.ssh/[秘密鍵ファイル名]
設定項目の説明
-
Host: 最初の値は任意の名前(例:backlog)。この名前を使って接続できる。2つ目は実際のホスト名で、HostNameと同じ値を指定する -
ProxyCommand: 社内ネットワーク経由で接続する場合のみ必要。[プロキシサーバー]:[ポート番号]の部分を実際のプロキシサーバーのアドレスとポートに置き換える -
HostName: 実際に接続するホスト名(BacklogのGitリポジトリに接続するためのアドレス) -
IdentityFile: 使用する秘密鍵のパス(手順1で作成した秘密鍵ファイルのパスを指定)
4. 接続テスト
設定が正しく行われているか確認します。configファイルでHost backlogのように任意の名前を指定している場合、その名前を使って接続できます。
ssh -T [サブドメイン]@[任意の名前]
例:Host backlog example.git.backlog.comと設定している場合、ssh -T example@backlogのように、exampleにはBacklogのサブドメイン、backlogにはconfigファイルのHostで指定した任意の名前を入れます。
成功すると、以下のメッセージが表示されます。
You've successfully authenticated, but Backlog does not provide shell access.
このメッセージが表示されれば、設定は正常です。
5. Gitリポジトリのクローン
① BacklogのGitリポジトリ一覧から、該当するリポジトリのURLをコピーする
その際、プルダウンでHTTPSではなく、SSHを選択すること。最初はHTTPSのURLでgit cloneを試していましたが、うまくいきませんでした。SSHのURLを使う必要があることに気づき、解決できました。
② git clone [コピーしたSSH URL] で最新のGitリポジトリをローカルにクローンできる
設定中にいくつかつまずく場面はありましたが、Cursorに質問したり調べたりしながら、なんとか設定を完了できました。
おわりに
今回の設定手順は、今後ほかの担当者も同じ作業を行う可能性があるため、BacklogのWikiにまとめました。Backlogは開発経験の浅い私でも見やすく、使いやすいと感じています。今はGitのコマンド周りを学びつつ、Webhookなども活用できると聞いたので、今後試してみたいです。
アドベントカレンダーに参加したきっかけは、チームの先輩からのお誘いでした。
もともと文章を書くことは好きな方ですが、技術的なテーマとなると「何を書けばいいのだろう…」「こんな初歩的な内容でもいいのかな…」と悩みました。そこで、学んだことを整理し、説明できるようになることを目指して記事を書きました。曖昧だった部分が整理できて、理解度を深める良い機会になったと感じています。
配属後は、優しく頼もしいチームの方々に支えられながら、初学者の私でも挑戦しやすい環境で日々学んでいます。この環境に感謝しつつ、来年はさらに学びを深めて、また記事を書いてみようかなと思います。
最後までお読みいただき、ありがとうございました。