LoginSignup
0
0

More than 1 year has passed since last update.

GoでGithub Actionを起動するときのoptional値の挙動

Last updated at Posted at 2022-06-14

こういうのがあったとする

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_booleannilを渡してみるも、今度は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な挙動じゃないのも解せないわ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0