GCPのgcloudコマンドからGoogle Issue TrackerにIssueを登録してみる

## 概要

GCPを利用するのに欠かせない```gcloud``` コマンドですが、最近、不具合を見つけて原因もわからなくて詰んだときに```gcloud feedback``` コマンドを使ってみたって話です。

## 使い方

```gcloud``` コマンド実行時にクラッシュした場合に```gcloud feedback``` を実行してみます。

例として、先日見つけた不具合を再現してみます。

Google Cloud Buildのビルドステップ定義に日本語を含めるとエラーになる
https://qiita.com/kai_kou/items/e1f2aee5ac9be805f156

※GCPプロジェクト、```gcloud``` コマンドが利用できる前提です。

エラー内容は上記記事のタイトルまま。

```sh
> mkdir 任意のディレクトリ
> cd 任意のディレクトリ
> cat <<EOF > cloudbuild.yaml
steps:
- name: 'gcr.io/cloud-builders/docker'
  entrypoint: 'bash'
  args: ['-c', 'echo "ほげ!"']
EOF

> gcloud builds submit --config=cloudbuild.yaml --no-source
```

とすると、エラーになります。

```sh
ERROR: gcloud crashed (error): bad character range

If you would like to report this issue, please run the following command:
  gcloud feedback

To check gcloud for common problems, please run the following command:
  gcloud info --run-diagnostics
```

上記にあるとおり、このエラーを報告したい場合に、```gcloud feedback``` コマンドを利用します。

実行すると、Stack OverflowやGoogle グループのリンクの案内が表示されます。
既知の問題かもしれないので、先にエラーメッセージを頼りに探すのは普段からしますよね^^

```sh
> gcloud feedback

We appreciate your feedback.

If you have a question, post it on Stack Overflow using the "gcloud" tag at
[http://stackoverflow.com/questions/tagged/gcloud].

For general feedback, use our groups page
[https://groups.google.com/forum/?fromgroups#!forum/google-cloud-dev],
send a mail to [google-cloud-dev@googlegroups.com] or visit the [#gcloud] IRC
channel on freenode.

Which recent gcloud invocation would you like to provide feedback
about? This will open a new browser tab.
 [1] [gcloud builds submit] (crash detected): 2 minutes ago
 [2] [gcloud builds list]: 18 hours ago
 [3] [gcloud builds list]: 18 hours ago
 [4] [gcloud builds list]: 18 hours ago
 [5] [gcloud builds list]: 18 hours ago
 [6] None of these
Please enter your numeric choice (1):
```

```Which recent gcloud invocation would you like to provide feedback about?``` から、過去に実行したgcloudコマンドについて、どれを報告したいのかが選択ができます。

先程のエラーを報告したいので、```1``` を選択します。

```sh
Please enter your numeric choice (1):  1

Opening your browser to a new Google Cloud SDK issue.
If your browser doesn't open, please file an issue: https://issuetracker.google.com/issues?q=componentid:187143%2B
```

すると、Google Issue TrackerのNew Issueページが表示されて、ComponentやDescription項目に、選択したコマンドに関する情報が初期設定されます。

<img width="994" alt="スクリーンショット 2018-10-05 11.03.21.png" src="https://qiita-image-store.s3.amazonaws.com/0/48549/098cf6b7-2480-ec6d-151c-125542dfc686.png">


Issueのタイトルに関しては初期設定されないので、エラーの内容を端的かつ、英語でまとめてましょう。私は英語ができないので、Google翻訳さんに頼っています。


Google Isseue Trackerは誰でも見れるサイトなので、初期設定された情報に公開されたくない情報がないか確認を促されます。
Traceログがあれば、そこにローカルのファイルパスが含まれている可能性が高いので、公開したくないものがあれば、伏せ字に置き換えるのがよいと思います。

>WARNING: This is a PUBLIC issue tracker, and as such, anybody can read the
information in the report you file. In order to help diagnose the issue,
we've included some installation information in this report. Please look
through and redact any information you consider personal or sensitive
before submitting this issue.

また、不具合の再現手順やエラー時の出力結果などを入力してね。とあります。

>What steps will reproduce the problem?

>What is the expected output? What do you see instead?

>Please provide any additional information below.

エラーについては再現できないと、原因調査もへったくれもないのはご承知のとおりなので、可能であれば、手順について取りまとめて書き込みましょう。

ここでは、最初に上げたコマンドが、再現性が高いと思います。

```sh
> cat <<EOF > cloudbuild.yaml
steps:
- name: 'gcr.io/cloud-builders/docker'
  entrypoint: 'bash'
  args: ['-c', 'echo "ほげ!"']
EOF

> gcloud builds submit --config=cloudbuild.yaml --no-source
```


登録すると、早ければ、数時間後にはGoogleの中の人が反応してくれて、コメントをくれるみたいです。

今回のエラーについても前に登録しており、「再現はできたから、Cloud SDKのチームに連絡したよ。現時点で修正プログラムはないから、更新があったらコメントするね」的なコメントがあったので、待つしかなさそうです^^

https://issuetracker.google.com/issues/117105234
(要Googleアカウントでログイン)

## まとめ

エラーが出たときに情報もなくて詰みそうになったら```gcloud feedback``` からIssue登録してみたらなんとかなるかも？