Repository: compose-spec/compose-go (go)

Issue:
service.pull_policy is ignored
`service.pull_policy` seems ignored.

The following test (base: e35895260882863269f36758f30b538101716841) does not work:
```diff
diff --git a/loader/loader_test.go b/loader/loader_test.go
index 49fa36e..5448520 100644
--- a/loader/loader_test.go
+++ b/loader/loader_test.go
@@ -1730,3 +1730,16 @@ services:
 `)
        assert.ErrorContains(t, err, "invalid string value for 'count' (the only value allowed is 'all')")
 }
+
+func TestServicePullPolicy(t *testing.T) {
+       actual, err := loadYAML(`
+services:
+  hello-world:
+    image: redis:alpine
+    pull_policy: always
+`)
+       assert.NilError(t, err)
+       svc, err := actual.GetService("hello-world")
+       assert.NilError(t, err)
+       assert.Equal(t, "always", svc.PullPolicy)
+}
```

```console
$ go test -run TestServicePullPolicy ./loader
--- FAIL: TestServicePullPolicy (0.01s)
    loader_test.go:1744: assertion failed: always (string) !=  (svc.PullPolicy string)
FAIL
FAIL    github.com/compose-spec/compose-go/loader       0.015s
FAIL
```

Pull request:
fix service.pull_policy
service.pull_policy was previously ignored.

Fix #121


Patch:
diff --git a/types/types.go b/types/types.go
index 6dac871..5440cc4 100644
--- a/types/types.go
+++ b/types/types.go
@@ -148,7 +148,7 @@ type ServiceConfig struct {
 	Platform        string                           `yaml:",omitempty" json:"platform,omitempty"`
 	Ports           []ServicePortConfig              `yaml:",omitempty" json:"ports,omitempty"`
 	Privileged      bool                             `yaml:",omitempty" json:"privileged,omitempty"`
-	PullPolicy      string                           `yaml:",omitempty" json:"pull_policy,omitempty"`
+	PullPolicy      string                           `mapstructure:"pull_policy" yaml:"pull_policy,omitempty" json:"pull_policy,omitempty"`
 	ReadOnly        bool                             `mapstructure:"read_only" yaml:"read_only,omitempty" json:"read_only,omitempty"`
 	Restart         string                           `yaml:",omitempty" json:"restart,omitempty"`
 	Runtime         string                           `yaml:",omitempty" json:"runtime,omitempty"`


Test patch:
diff --git a/loader/loader_test.go b/loader/loader_test.go
index 49fa36e..5448520 100644
--- a/loader/loader_test.go
+++ b/loader/loader_test.go
@@ -1730,3 +1730,16 @@ services:
 `)
 	assert.ErrorContains(t, err, "invalid string value for 'count' (the only value allowed is 'all')")
 }
+
+func TestServicePullPolicy(t *testing.T) {
+	actual, err := loadYAML(`
+services:
+  hello-world:
+    image: redis:alpine
+    pull_policy: always
+`)
+	assert.NilError(t, err)
+	svc, err := actual.GetService("hello-world")
+	assert.NilError(t, err)
+	assert.Equal(t, "always", svc.PullPolicy)
+}