GitHub Copilot の 「Jumpstart your project with Copilot」 を使ってみた

記事タイトルとURLをコピーする

はじめに

こんにちは。アプリケーションサービス本部 ディベロップメントサービス3課の北出です。 今回は新しく始まるプロジェクト用の GitHub リポジトリを作るときに、GitHub Copilot の 「Jumpstart your project with Copilot」 を使ってみたのでどうだったかを共有します。

Jumpstart your project with Copilot とは

公式サイト

2025/09/25 にリリースされた機能で、リポジトリを作成する際に、Copilot にプロンプトを渡すことで、Copilot が希望に合わせたコードを作成し、プルリクエストを作成してくれる機能です。

新しいプロジェクトの開始が簡単になることが期待できます。

Copilot Pro、Copilot Pro+、Copilot Business、および Copilot Enterprise で利用できるようです。

利用方法

利用方法は簡単で、GitHub の GUI からリポジトリを作成する際に画像のように下の方でプロンプトのフォームがでるので、プロンプトを入れてからリポジトリを作成するだけです。

使ってみた

リポジトリの作成

プロンプトは下のものでだいぶ雑です。

- devcontainer で開発する
  - GitHubにSSH接続できるように、READMEにはdevcontainer利用上でのGitHub接続手順が明記されている。
  - フォーマッタはbiomeを使用する
  - markdown-all-in-one の拡張機能を利用する
- AWS CDK TypeScript でAWSにシステム構築する
  - ただし、最初の状態でIaC用のプロジェクトの作成は不要
- パッケージ管理にはpnpmを使用する
- READMEにはdevcontainerの利用手順、pnpmの利用・運用手順、AWS CDK TypeScriptのビルド・デプロイ手順が最低限記載されている。他にも、プロジェクト上必要と判断されるものに関して記述されている。
- .gitignoreも整備されている。

リポジトリ作成依頼後、約5分で新しいブランチが作成され、プルリクエストが発行されました。

新規ブランチのREADME(クリックすると展開されます)

# <リポジトリ名>

<リポジトリの説明>

## プロジェクト概要

このプロジェクトは、<機密情報のためマスキング>
AWS CDK TypeScriptを使用してAWS上にシステムを構築します。

## 開発環境のセットアップ

### devcontainer の利用

このプロジェクトは、Visual Studio Code の Dev Containers 機能を使用した開発環境を提供しています。

#### 前提条件

- Visual Studio Code
- Docker Desktop
- Dev Containers 拡張機能

#### devcontainer の起動手順

1. Visual Studio Code でプロジェクトのルートディレクトリを開く
2. コマンドパレット(`Ctrl+Shift+P` / `Cmd+Shift+P`)を開く
3. `Dev Containers: Reopen in Container` を選択
4. コンテナのビルドと起動を待つ

開発環境には以下が含まれます:

- Node.js 20
- pnpm(最新版)
- AWS CLI
- GitHub CLI
- Biome(コードフォーマッター)
- markdown-all-in-one 拡張機能

### GitHub への SSH 接続設定

devcontainer 内で GitHub に SSH 接続するには、以下の手順を実行してください:

#### 1. ホストマシンに SSH キーが設定されていることを確認

ホストマシン(Windows/Mac/Linux)で SSH キーが `~/.ssh/` ディレクトリに存在することを確認してください。

```bash
# ホストマシンで実行
ls ~/.ssh/
```

SSH キーが存在しない場合は、以下のコマンドで生成してください:

```bash
# ホストマシンで実行
ssh-keygen -t ed25519 -C "your_email@example.com"
```

#### 2. GitHub に SSH キーを登録

生成した公開鍵(`~/.ssh/id_ed25519.pub`)を GitHub に登録します:

1. 公開鍵の内容をコピー

   ```bash
   # ホストマシンで実行
   cat ~/.ssh/id_ed25519.pub
   ```

2. GitHub の設定ページ([https://github.com/settings/keys](https://github.com/settings/keys))にアクセス
3. "New SSH key" をクリックし、コピーした公開鍵を貼り付けて保存

#### 3. devcontainer での SSH 接続確認

devcontainer は、ホストマシンの `~/.ssh` ディレクトリを自動的にマウントします。

devcontainer 内で以下のコマンドを実行して、GitHub への接続を確認してください:

```bash
# devcontainer 内で実行
ssh -T git@github.com
```

成功すると、以下のようなメッセージが表示されます:

```
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
```

#### 4. Git の設定

devcontainer 内で Git のユーザー名とメールアドレスを設定してください:

```bash
# devcontainer 内で実行
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
```

## パッケージ管理

このプロジェクトでは、パッケージマネージャーとして pnpm を使用します。

### pnpm の基本的な使い方

#### パッケージのインストール

```bash
# package.json に記載されているすべての依存関係をインストール
pnpm install

# 特定のパッケージをインストール
pnpm add <package-name>

# 開発用の依存関係としてインストール
pnpm add -D <package-name>
```

#### パッケージのアップデート

```bash
# すべてのパッケージを最新版にアップデート
pnpm update

# 特定のパッケージをアップデート
pnpm update <package-name>
```

#### パッケージの削除

```bash
pnpm remove <package-name>
```

#### スクリプトの実行

```bash
# package.json の scripts セクションに定義されたスクリプトを実行
pnpm run <script-name>

# または短縮形
pnpm <script-name>
```

### pnpm のキャッシュ管理

```bash
# キャッシュをクリア
pnpm store prune
```

## AWS CDK TypeScript

このプロジェクトでは、AWS CDK を使用して AWS リソースを管理します。

### CDK プロジェクトの初期化

CDK プロジェクトを新規作成する場合は、以下のコマンドを実行してください:

```bash
# CDK プロジェクトの初期化(TypeScript)
pnpm cdk init app --language typescript

# または、カスタムディレクトリで初期化
mkdir infrastructure
cd infrastructure
pnpm cdk init app --language typescript
```

### 必要な依存関係のインストール

```bash
# AWS CDK のコアライブラリとよく使用される構成をインストール
pnpm add aws-cdk-lib constructs
pnpm add -D aws-cdk @types/node typescript
```

### CDK のビルド

```bash
# TypeScript のコンパイル
pnpm run build

# または、変更を監視して自動ビルド
pnpm run watch
```

### CDK のデプロイ

#### 初回デプロイ前の準備

初めて CDK を使用する AWS アカウント・リージョンでは、Bootstrap が必要です:

```bash
# AWS 認証情報を設定
export AWS_ACCESS_KEY_ID=your_access_key
export AWS_SECRET_ACCESS_KEY=your_secret_key
export AWS_DEFAULT_REGION=ap-northeast-1

# CDK Bootstrap の実行
pnpm cdk bootstrap
```

#### デプロイの実行

```bash
# スタックの差分を確認
pnpm cdk diff

# スタックをデプロイ
pnpm cdk deploy

# すべてのスタックをデプロイ
pnpm cdk deploy --all

# 承認なしで自動デプロイ
pnpm cdk deploy --require-approval never
```

#### その他の CDK コマンド

```bash
# スタックの一覧を表示
pnpm cdk list

# CloudFormation テンプレートを生成
pnpm cdk synth

# デプロイされたスタックを削除
pnpm cdk destroy
```

## コードフォーマット

このプロジェクトでは、Biome をコードフォーマッターとして使用します。

### Biome の設定

保存時に自動的にフォーマットされるように devcontainer が設定されています。

手動でフォーマットする場合:

```bash
# Biome のインストール(プロジェクトに追加する場合)
pnpm add -D @biomejs/biome

# フォーマットの実行
pnpm biome format --write .

# リントの実行
pnpm biome lint .

# フォーマットとリントを同時に実行
pnpm biome check --apply .
```

## 開発ワークフロー

1. devcontainer で開発環境を起動
2. pnpm で依存関係をインストール
3. コードを編集(Biome が自動的にフォーマット)
4. CDK でビルド・テスト
5. CDK でデプロイ

## トラブルシューティング

### devcontainer が起動しない

- Docker Desktop が起動していることを確認
- Docker Desktop のリソース設定(メモリ、CPU)を確認
- `.devcontainer/devcontainer.json` の設定を確認

### pnpm コマンドが見つからない

- devcontainer の postCreateCommand が正常に実行されたか確認
- 手動でインストール: `npm install -g pnpm`

### AWS CDK のデプロイに失敗する

- AWS 認証情報が正しく設定されているか確認
- IAM ユーザーに必要な権限があるか確認
- Bootstrap が実行されているか確認

## ライセンス

このプロジェクトのライセンスについては、組織のポリシーに従ってください。

プルリクエストの内容(クリックすると展開されます)

Sets up development environment and tooling for <プロジェクト概要> using AWS CDK TypeScript.

## Dev Environment
- **devcontainer**: Node.js 20 with AWS CLI, GitHub CLI, and SSH passthrough for git authentication
- **Extensions**: Biome formatter, markdown-all-in-one
- **Auto-setup**: pnpm installed on container creation

## Project Configuration
- **Package manager**: pnpm with workspace support enabled
- **Formatter**: Biome configured (2-space indent, single quotes, 100-char line width)
- **Gitignore**: Standard Node.js, CDK, IDE patterns

## Documentation (Japanese)
README covers:
- devcontainer startup and SSH key configuration for GitHub authentication
- pnpm installation, update, and script execution
- AWS CDK initialization, bootstrap, build, and deployment workflows
- Common troubleshooting scenarios

No IaC project scaffolding included - developers initialize CDK projects as needed per README instructions.

<!-- START COPILOT CODING AGENT SUFFIX -->



<!-- START COPILOT ORIGINAL PROMPT -->



<details>

<summary>Original prompt</summary>

> - devcontainer で開発する
>   - GitHubにSSH接続できるように、READMEにはdevcontainer利用上でのGitHub接続手順が明記されている。
>   - フォーマッタはbiomeを使用する
>   - markdown-all-in-one の拡張機能を利用する
> - AWS CDK TypeScript でAWSにシステム構築する
>   - ただし、最初の状態でIaC用のプロジェクトの作成は不要
> - パッケージ管理にはpnpmを使用する
> - READMEにはdevcontainerの利用手順、pnpmの利用・運用手順、AWS CDK TypeScriptのビルド・デプロイ手順が最低限記載されている。他にも、プロジェクト上必要と判断されるものに関して記述されている。
> - .gitignoreも整備されている。


</details>



<!-- START COPILOT CODING AGENT TIPS -->
---

💬 We'd love your input! Share your thoughts on Copilot coding agent in our [2 minute survey](https://gh.io/copilot-coding-agent-survey).

パッと見はREADME もプルリクエストの内容も問題なさそうです。 実際にREADMEに書いてある通りでできるか確認してみます。

動作確認

新規ブランチには以下が作成されていました。

.
├── biome.json
├── .devcontainer
│   └── devcontainer.json
├── .gitignore
├── package.json
├── pnpm-workspace.yaml
├── README.md
└── .vscode
    └── extensions.json

以下を確認してみます。

  • Dev Containers の起動
  • GitHub への接続
  • pnpmのインストール
  • AWS CLI と AWS CDK TypeScript
  • Biome の利用

Dev Containers の起動

VSCode のコマンドパレットで Dev Containers: Reopen in Container を選択したところ、10分程度でコンテナがビルドされ、エラーなくコンテナが起動できました。

GitHub への接続

以前 Dev Containers を使ったときに、GitHubへの接続がうまくできず結局諦めてしまったことがあったのでここはCopilotに特に期待しています。

前提として、DevContainer 起動前では、GitHub に問題なくアクセスでき、今回のリポジトリの clone もできています。

ssh -T git@github.com を実行したところ、Hi <ユーザー名>! You've successfully authenticated, but GitHub does not provide shell access. となったので問題なさそうです。

試しに、README の前提条件で Docker Desktop → Docker CLI に変更するコミットとプッシュをしたところ問題なくでき、リモートリポジトリに反映されたので、GitHubも使うことができます。

devcontainer.json をみたところ、以下があったのでこれが鍵になってそうです。ホストマシンの .ssh ディレクトリをマウントしてくれています

  "mounts": [
    "source=${localEnv:HOME}${localEnv:USERPROFILE}/.ssh,target=/home/node/.ssh,type=bind,consistency=cached"
  ],

pnpm のインストール

pnpm --version を実行したところ、9.1.0 と出力されたので、インストールはされてそうですが、バージョンが古い気がします。

おそらく、使用しているベースイメージが古く、npmも古いものを使っているためだと思います。
今後改善するとして、動作確認としてはOKとします。

(補足) package.json に "packageManager": "pnpm@9.1.0" があり、これが原因でした。これを削除したところ、最新バージョンが使えるようになりました。

AWS CLI と AWS CDK TypeScript

アクセスキーなどの設定後に、aws s3 ls を実行したところ、自分のアカウントのバケット一覧が見れたので問題なさそうです。 aws --version でも 2.33.27 と最新のがインストールされていました。

AWS CDK についても pnpm cdk --version でバージョンが出力されたので問題ありませんでした。

pnpm cdk init app --language typescript でプロジェクトディレクトリを作ることもできました。

Biome の利用

pnpm biome --version でバージョンの出力を確認できました。

pnpm biome lint . でリントを実行したところ、pnpm cdk init app --language typescript で作成されたファイルに対してフォーマットしていたので問題なく動作していました。

動作確認結果

  • ✅Dev Containers の起動
  • ✅GitHub への接続
  • 🔼pnpmのインストール
  • ✅AWS CLI と AWS CDK TypeScript
  • ✅Biome の利用

pnpm が古いバージョンを使う設定になっていたもの以外は問題ありませんでした。

まとめ

GitHub Copilot の 「Jumpstart your project with Copilot」 を使ってみましたが、雑なプロンプトでもおおむねそのまま使えるプロジェクトを作成してくれました。READMEもしっかりと書かれているので、メンバー入れ替わりがあってもロスなく対応できそうです。

北出 宏紀(執筆記事の一覧)

アプリケーションサービス本部ディベロップメントサービス3課

2024年9月中途入社です。