こういうのがあったとする
hoge-workflow.yaml
name: hoge-workflow
on:
workflow_dispatch:
inputs:
required_string:
description: 必須な値
type: string
required: true
optional_boolean:
description: オプショナルな値
type: boolean
default: false
required: false
これをgoから呼び出すとき、こんな感じにしたとする
github.Actions.CreateWorkflowDispatchEventByFileName(ctx, "your-org", "your-repo", "hoge-workflow.yaml", github.CreateWorkflowDispatchEventRequest{
Ref: branch,
Inputs: map[string]interface{}{
"required_value": "hoge",
},
})
optional_boolean
が必須ではないから渡さなくていいはずだという理屈はわかるが、これだと422エラーを受け取ることになる(え、optionalじゃないの?という気持ちはあるが...)
試しに明示的にoptional_boolean
へnil
を渡してみるも、今度はFor 'additionalProperties', nil is not a string.
というエラーで422エラーになる。
仕方ないのでoptionalだが値を渡すしかないっぽい。
Inputs: map[string]interface{}{
"required_value": "hoge",
"optional_value": false,
},
これなら動きそうだが、実はこれもダメで正解はひとつしかない。
Inputs: map[string]interface{}{
"required_value": "hoge",
"optional_value": "false",
},
はい、これで動きます。booleanの値を文字列にして渡すのが正解でした〜... わかるかこんなもん。
optionalなのにoptionalな挙動じゃないのも解せないわ