QualityForwardをAPIで自由に操ってプロジェクト管理をChatGPTと連携する

この記事は[QualityForwardを用いたテスト管理の体験談を投稿しよう！ by QualityForward Advent Calendar 2024](https://qiita.com/advent-calendar/2024/qualityforward02)の16日目の記事です。

# QualityForwardとは
:::note info
QualityForward（クオリティフォワード）はリリースサイクルの高速化を支え、プロジェクトの大規模複雑化にも対応可能な、テスト管理ツールです。 テスト・品質の可視化のための定常作業を自動化し、エンジニアを煩雑な集計・管理作業から解放します。
:::

![スクリーンショット 2024-12-25 23.19.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/320ceba1-a38b-953e-fed7-4e2f5685f91c.png)

# ChatGPT連携

ChatGPTにはGPTsという機能があります。簡単にいうとカスタマイズしたChatGPTを作ることが出来ます。また、APIを叩くことが出来るためChatGPTの使い方を拡張してリジナルのチャットAIサービスを開発作ることが出来ます。

# API Spec

https://qualityforward.github.io/api-spec/#section/API

まずはOpenAPIスキーマを読んでみましょう。
![スクリーンショット 2024-12-25 23.22.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/2597fa08-9daa-f3e7-f0e9-2ee99b245670.png)
からダウンロードすることが出来ます。

# 動かない
ダウンロードしたファイルはバージョンが古くChatGPTでは読みこむことが出来ませんでした。

# ChatGPTで変換
```
{
    "openapi": "3.1.0",
    "info": {
      "title": "Auth API",
      "version": "1.0.0"
    },
    "servers": [
      {
        "url": "https://cloud.veriserve.co.jp/api/v2/",
        "description": "API Server"
      }
    ],
    "paths": {
      "/createAuthToken": {
        "post": {
          "operationId": "createAuthToken",
          "summary": "Creates an authentication token.",
          "description": "Creates an authentication token.",
          "requestBody": {
            "required": true,
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "loginName": {
                      "type": "string",
                      "description": "Login name."
                    },
                    "password": {
                      "type": "string",
                      "description": "Password."
                    }
                  },
                  "required": ["loginName", "password"]
                }
              }
            }
          },
          "responses": {
            "200": {
              "description": "Returns the authentication token."
            }
          }
        }
      },
      "/deleteAuthToken": {
        "post": {
          "operationId": "deleteAuthToken",
          "summary": "Deletes the current authentication token (logs out).",
          "description": "Deletes the current authentication token (logs out).",
          "responses": {
            "200": {
              "description": "This endpoint does not return a response body."
            }
          }
        }
      }
    }
  }
  ```

  ![スクリーンショット 2024-12-25 23.26.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/08f4327c-9ba9-f808-5808-9484b52a2f55.png)

こちらの例のように読み込むことが出来ました。

# アカウントがない
個人ユーザーでも登録すればAPIが利用可能になるはずでしたが、無料枠ユーザーは利用できませんでした・・・
![スクリーンショット 2024-12-25 23.27.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/dd6b2deb-a8a6-02c3-a94e-572ca1faf1f0.png)

# QualityForwardで実現したかった場合
- QualityForwardのAPIドキュメントをOpenAPIスキーマ化
- GPTsに登録して、API経由で実行できるようにする
- GPTs(ChatGPT)上でチャット経由でプロジェクト内容の取得、表示
- チャット経由でデータを更新
- 日本語でチャットのやり取りでデータの更新を行う
- QualityForwardで更新されたデータの確認・運用

## 画面の確認
色々と触ってみましたが、画面のデザインも洗練されいて、これがそのままパートナーとして活用できると思うとすばらしいです。

![2024-12-25_23-31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129712/9b3278b8-bb04-f5fa-7fcc-718c5151d145.png)


# まとめ
APIが使えないのでやりたいことが出来ませんでした。もし出来るようになった暁にはチャットだけで基本的なカスタマイズが出来るようになるととても良いと思いました。時間があればまたの機会にお遊びに来て頂けるとうれしいです。