octokitでリポジトリのファイルを更新する(失敗の原因を知りたい)
先週は、P2HACKS2023協賛のため函館出張していました。学生の皆さんが「これ、もうサービスとして成立するでしょ👀」というハイレベルな成果物を次々に繰り出してくださったので、かなり良い刺激をいただきました。がんばろう。さて今日は、棚上げしていた、「関数でリポジトリのファイル情報を取得できなかった件」を調べたいと思います。
取得したはずのファイル情報がなぜ受け取れないのか?
前回、期待通りの処理ができるように修正したので、もとに戻して原因を調べたいと思います。
エラーを再現してみる
というわけで、ファイル情報を関数の戻り値として受け取ったあとに、リポジトリの対象ファイルのshaが取得できない状態を再現しました。
Cannot read properties of undefined (reading 'sha') status=undefined
どこに問題があるのか見当をつけたい
関数の戻り値は、リポジトリのファイル情報を持っていないので、shaがプロパティとして取得できなかったというエラーです。
VSCodeで対象の関数のパラメータを見てみると、octokitはanyなんですね。
でも、関数内でリポジトリのファイル情報は取得できている(shaは取得できている)ので、これは関係なさそうです。戻ってきた値がoctokit.repos.getContent()で取得した結果ではないというところが問題なわけです。関数内のオブジェクトを返却しても、呼び出し側にはオブジェクトが渡せていないということです。これ、何か方法がないのかな。
関数のパラメータとして渡して、パラメータに値を返却することができそうな気がします。
続きは、冬休みの課題に
と、ここまで考えたところで、今日は時間切れです。続きは、年末年始の宿題にしたいと思います。そもそもJavaScriptぜんぜんわかってないところが問題という話もあるので、そこからかも。
この記事が気に入ったらサポートをしてみませんか?