Skip to content

Commit 95e50d8

Browse files
fix(jira): Adds skips for empty string data (#78411)
1 parent 547a6b0 commit 95e50d8

File tree

2 files changed

+41
-5
lines changed

2 files changed

+41
-5
lines changed

src/sentry/integrations/jira/utils/create_issue_schema_transformers.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -103,10 +103,10 @@ def transform_fields(
103103
for field in jira_fields:
104104
field_data = data.get(field.key)
105105

106-
# We don't have a mapping for this field, so it's probably extraneous.
107-
# TODO(Gabe): Explore raising a sentry issue for unmapped fields in
108-
# order for us to properly filter them out.
109-
if field_data is None:
106+
# Skip any values that indicate no value should be provided.
107+
# We have some older alert templates with "" values, which will raise
108+
# if we don't skip them.
109+
if field_data is None or field_data == "":
110110
continue
111111

112112
field_transformer = get_transformer_for_field(
@@ -137,7 +137,7 @@ def transform_fields(
137137
except JiraSchemaParseError as e:
138138
raise IntegrationFormError(field_errors={field.name: str(e)}) from e
139139

140-
if transformed_value:
140+
if transformed_value is not None:
141141
transformed_data[field.key] = transformed_value
142142

143143
return transformed_data

tests/sentry/integrations/jira/utils/test_create_issue_schema_transformers.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,3 +158,39 @@ def test_sprint_custom_field(self):
158158
)
159159

160160
assert transformed_data == {"sprint": 2}
161+
162+
def test_version_custom_field(self):
163+
version_field = JiraField(
164+
schema=JiraSchema(
165+
schema_type=JiraSchemaTypes.version,
166+
),
167+
name="fixVersion",
168+
key="fixVersion",
169+
required=False,
170+
has_default_value=False,
171+
operations=[],
172+
)
173+
174+
transformed_data = transform_fields(
175+
self.client.user_id_field(),
176+
jira_fields=[version_field],
177+
**{"fixVersion": 2},
178+
)
179+
180+
assert transformed_data == {"fixVersion": {"id": 2}}
181+
182+
transformed_data = transform_fields(
183+
self.client.user_id_field(),
184+
jira_fields=[version_field],
185+
**{"fixVersion": ""},
186+
)
187+
188+
assert transformed_data == {}
189+
190+
transformed_data = transform_fields(
191+
self.client.user_id_field(),
192+
jira_fields=[version_field],
193+
**{"fixVersion": 0},
194+
)
195+
196+
assert transformed_data == {"fixVersion": {"id": 0}}

0 commit comments

Comments
 (0)