Linear + Claude Code GitHub Actionsを組み合わせてDevinみたいな開発体験を得る
はじめに
先日正式リリースとなったClaude CodeのGitHub連携とタスク管理ツールであるLinearを組み合わせて、Linearでタスクを作成するだけでClaudeがコードを書いてくれるワークフローを試してみました。
リポジトリの準備
今回はFlutterを使うことにします。
flutter create
して、リポジトリを初期化します。
$ flutter create claude_linear_integration
$ cd claude_linear_integration
$ git init
$ git branch -m main
プライベートリポジトリを作成してpushします。
$ gh repo create
? What would you like to do? Push an existing local repository to github.com
? Path to local repository .
? Repository name claude_linear_integration
? Repository owner ayatr
? Description
? Visibility Private
✓ Created repository ayatr/claude_linear_integration on github.com
https://github.com/ayatr/claude_linear_integration
? Add a remote? Yes
? What should the new remote be called? origin
✓ Added remote git@github.com:ayatr/claude_linear_integration.git
$ git add .
$ git commit -m 'Initial commit'
$ git push -u origin main
Claude CodeのGitHub Appをインストールする
Claude Codeの公式ドキュメントによると、Claude Code上に /install-github-app
コマンドが用意されているみたいです。
ということで、リポジトリのルートでClaude Codeを起動します。
そのディレクトリで初めて claude
を実行したときに「このディレクトリを信頼しますか?」的なダイアログが出てくるのでそのままEnterします。
無事起動できたら、/install-github-app
を実行します。
どのリポジトリにインストールするか?と聞かれますが、カレントディレクトリなのでそのままEnterします。
するとWebブラウザが開きます。どうやらClaudeのGitHub Appをインストールする必要があるようです。
「Configure」をクリックします。
アカウントとリポジトリを選択し、いい感じに権限を与えます(スクショを撮り忘れました)
ターミナルに戻ると「Press Enter once you've installed the app...」とあるのでEnterを入力します。
どのAPIキーを使用するか?と聞かれるのでそのままEnterします。GitHub Workflow上では別のAPIキーを使用したいといった場合は下を選択するとよさそうです。
ここまで完了すると、ブラウザでPull Requestの作成画面が開きます。
.github/workflows
にClaude Codeを動作させるためのActionを書いてくれたみたいです。便利。
そのままマージしちゃいます。
これでGitHub Appの導入は完了です。
ターミナル上のClaude Codeは使わないので終了します。
リポジトリの「Actions」にも「Claude」が追加されていることが分かります。
Linearとの連携
さて、ここまで完了すると既にGitHub上のIssueやPull Requestから @claude
をメンションすることでClaude Codeにタスクを依頼したり、Pull Requestのレビューを行ってもらうことができます。
しかし、私たちが望むのはベッドからスマホで指示するだけの、SlackからDevinにタスクを依頼していたような開発(?)体験です。
そこで、今回は最近話題のタスク管理ツールであるLinearを活用してこれを実現します。
Linearの登録は完了していることとして、新たにワークスペースを作成するところからやっていきます。
まだ使用したことのない方は公式サイトからいい感じに登録してください。
アプリの紹介は「タスク管理にLinearを使ってみたらめちゃくちゃ良い体験だった」がとても分かりやすいです。
私は既にLinearを使っているので、画面左上から「Create or join a workspace...」でワークスペースを作成します。
適当にワークスペースを作成します。
ワークスペースを作成したら、左下の「Link GitHub」からGitHubの連携を行うことができます。
「Enable」をクリックします。
(Linearの登録時に連携した方はこの手順を飛ばして大丈夫です)
Claude同様、画面に従ってGitHub Appをインストールします。
インストールが完了するとこのような表示になります。
LinearにはGitHubのIssuesと連携する機能があり、今回はこれを活用するので「GitHub Issues」をクリックします。
リポジトリとプロジェクトを選択します。
その下にある「Two-way sync Linear issues to GitHub」は、GitHub上で作成したIssueをLinear上に作るだけか、逆にLinear上で作成したタスクもGitHub上にIssueとして作成するかを選択できるオプションです。私は両方が同期されていてほしいので下の「Two-way...」を選びました。
このような表示になると連携完了です。
タスクの作成
それではいよいよ、Claudeに実行してもらうタスクを作成しましょう!
Linearを開き C
キーを押すとタスクを作成できます。
今回はお試しなので簡単な内容にしてみます。
本文も読んでいるか確認したいのでDescriptionにも適当に記述します。
タスクを作成すると、LinearとGitHub Issuesの両方に同じ内容のものができていることが確認できます。
Linear側のタスクにはコメント欄が2つありますが、上はGitHubのIssueと同期されているコメント欄で、下はLinearのコメント欄です。(分かりづらい)
GitHub側のコメント欄が見当たらない場合
このように「Connect your GitHub account to leave a reply」と表示されている場合、「Connect」ボタンからアカウントを接続してください。
上のコメント欄(か、GitHubのIssue)に @claude
をメンションする形でコメントします。
Linear側で書いたコメントもちゃんとGitHubに送信されています。
少し待つとClaudeが起きます。
「View job run」をクリックすると実際にどのようなツール呼び出しを行っているか、どういった出力をしているかを確認できます。
CLIのほうと同じように、Todoを計画して遂行していくみたいです。
しばらく待つと作業が完了し、Issueのコメントもこのようになります。
Claudeの初コミットです🎉
Linearと連携しているので、完了したタイミングでメンションの通知が届きます。スマートフォン版をインストールしていればスマホにも通知が届くため、寝転がっていても安心です。
完了報告のコメントには「Create PR」のリンクがあるので、ここからPull Requestをワンクリックで作成できます。
diffもいい感じです。
一応実際の画面も見てみましょう。
Before | After |
---|---|
![]() |
![]() |
良さそうです 🎉
おわりに
今回はお試しといった感じのリポジトリとタスクの内容でしたが、LinearからClaude Codeにタスクを依頼する体験は分かっていただけたかと思います。
皆さんもぜひ寝転がってタスクを投げるだけの生活を始めてみてはいかがでしょうか。
Discussion