Skip to content

Commit 5512042

Browse files
dependabot[bot]Alex Finder
authored and
Alex Finder
committed
Backend changes for change culprit revision
1 parent 2f3b639 commit 5512042

File tree

4 files changed

+46
-40
lines changed

4 files changed

+46
-40
lines changed

Diff for: package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060
"react-tabs": "6.0.2",
6161
"reactstrap": "8.10.1",
6262
"redoc": "2.1.5",
63-
"redux": "4.0.5",
63+
"redux": "4.2.1",
6464
"redux-debounce": "1.0.1",
6565
"redux-mock-store": "1.5.5",
6666
"redux-thunk": "2.3.0",

Diff for: tests/webapp/api/test_performance_alertsummary_api.py

+33
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ def test_alert_summaries_get(
8888
"related_alerts",
8989
"repository",
9090
"push_id",
91+
"original_revision",
9192
"status",
9293
"revision",
9394
"push_timestamp",
@@ -167,6 +168,7 @@ def test_alert_summaries_get_onhold(
167168
"related_alerts",
168169
"repository",
169170
"push_id",
171+
"original_revision",
170172
"status",
171173
"revision",
172174
"push_timestamp",
@@ -238,6 +240,37 @@ def test_alert_summaries_put(
238240
assert PerformanceAlertSummary.objects.get(id=1).assignee == test_user
239241

240242

243+
def test_performance_alert_summary_change_revision(
244+
client, test_perf_alert_summary, test_sheriff, test_push
245+
):
246+
client.force_authenticate(user=test_sheriff)
247+
248+
# verify we can set revision
249+
assert PerformanceAlertSummary.objects.get(id=1).push.revision != test_push.revision
250+
resp = client.put(
251+
reverse("performance-alert-summaries-list") + "1/",
252+
{"revision": test_push.revision},
253+
)
254+
assert resp.status_code == 200
255+
assert PerformanceAlertSummary.objects.get(id=1).push.revision == test_push.revision
256+
257+
# verify we can set non-existing revision
258+
resp = client.put(
259+
reverse("performance-alert-summaries-list") + "1/",
260+
{"revision": "no-push-revision"},
261+
)
262+
assert resp.status_code == 400
263+
264+
# revert revision
265+
original_revision = PerformanceAlertSummary.objects.get(id=1).original_push.revision
266+
resp = client.put(
267+
reverse("performance-alert-summaries-list") + "1/",
268+
{"revision": original_revision},
269+
)
270+
assert resp.status_code == 200
271+
assert PerformanceAlertSummary.objects.get(id=1).push.revision == original_revision
272+
273+
241274
def test_auth_for_alert_summary_post(
242275
client,
243276
test_repository,

Diff for: treeherder/webapp/api/performance_serializers.py

+6-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
PerformanceFramework,
1818
PerformanceSignature,
1919
PerformanceTag,
20+
Push,
2021
)
2122
from treeherder.webapp.api.utils import to_timestamp, FIVE_DAYS
2223

@@ -104,9 +105,11 @@ class PerformanceSignatureSerializer(serializers.ModelSerializer):
104105
option_collection_hash = serializers.SlugRelatedField(
105106
read_only=True, slug_field="option_collection_hash", source="option_collection"
106107
)
108+
107109
machine_platform = serializers.SlugRelatedField(
108110
read_only=True, slug_field="platform", source="platform"
109111
)
112+
110113
tags = WordsField(read_only=True, allow_blank=True)
111114
extra_options = WordsField(read_only=True, allow_blank=True)
112115
measurement_unit = serializers.CharField(read_only=True)
@@ -272,7 +275,8 @@ class PerformanceAlertSummarySerializer(serializers.ModelSerializer):
272275
)
273276
repository = serializers.SlugRelatedField(read_only=True, slug_field="name")
274277
framework = serializers.SlugRelatedField(read_only=True, slug_field="id")
275-
revision = serializers.SlugRelatedField(read_only=True, slug_field="revision", source="push")
278+
revision = serializers.SlugRelatedField(read_only=False, slug_field="revision", source="push", required=False, queryset=Push.objects.all())
279+
original_revision = serializers.SlugRelatedField(read_only=True, slug_field="revision", source="original_push")
276280
push_timestamp = TimestampField(source="push", read_only=True)
277281
prev_push_revision = serializers.SlugRelatedField(
278282
read_only=True, slug_field="revision", source="prev_push"
@@ -308,6 +312,7 @@ class Meta:
308312
"id",
309313
"push_id",
310314
"prev_push_id",
315+
"original_revision",
311316
"created",
312317
"first_triaged",
313318
"triage_due_date",

Diff for: yarn.lock

+6-38
Original file line numberDiff line numberDiff line change
@@ -1489,34 +1489,13 @@
14891489
resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310"
14901490
integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==
14911491

1492-
"@babel/runtime@^7.1.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7":
1493-
version "7.16.3"
1494-
resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.3.tgz"
1495-
integrity sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==
1496-
dependencies:
1497-
regenerator-runtime "^0.13.4"
1498-
1499-
"@babel/runtime@^7.17.8":
1500-
version "7.22.15"
1501-
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.15.tgz#38f46494ccf6cf020bd4eed7124b425e83e523b8"
1502-
integrity sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==
1503-
dependencies:
1504-
regenerator-runtime "^0.14.0"
1505-
1506-
"@babel/runtime@^7.4.5":
1492+
"@babel/runtime@^7.1.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.8", "@babel/runtime@^7.4.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2":
15071493
version "7.24.7"
15081494
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.7.tgz#f4f0d5530e8dbdf59b3451b9b3e594b6ba082e12"
15091495
integrity sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==
15101496
dependencies:
15111497
regenerator-runtime "^0.14.0"
15121498

1513-
"@babel/runtime@^7.9.2":
1514-
version "7.18.9"
1515-
resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz"
1516-
integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==
1517-
dependencies:
1518-
regenerator-runtime "^0.13.4"
1519-
15201499
"@babel/template@^7.16.0", "@babel/template@^7.18.10", "@babel/template@^7.18.6", "@babel/template@^7.3.3":
15211500
version "7.18.10"
15221501
resolved "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz"
@@ -10061,13 +10040,12 @@ [email protected]:
1006110040
resolved "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.3.0.tgz"
1006210041
integrity sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw==
1006310042

10064-
redux@4.0.5:
10065-
version "4.0.5"
10066-
resolved "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz"
10067-
integrity sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==
10043+
redux@4.2.1:
10044+
version "4.2.1"
10045+
resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.1.tgz#c08f4306826c49b5e9dc901dee0452ea8fce6197"
10046+
integrity sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==
1006810047
dependencies:
10069-
loose-envify "^1.4.0"
10070-
symbol-observable "^1.2.0"
10048+
"@babel/runtime" "^7.9.2"
1007110049

1007210050
reflect.ownkeys@^0.2.0:
1007310051
version "0.2.0"
@@ -10096,11 +10074,6 @@ regenerator-runtime@^0.11.0:
1009610074
resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz"
1009710075
integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
1009810076

10099-
regenerator-runtime@^0.13.4:
10100-
version "0.13.9"
10101-
resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz"
10102-
integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
10103-
1010410077
regenerator-runtime@^0.14.0:
1010510078
version "0.14.0"
1010610079
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45"
@@ -11066,11 +11039,6 @@ swagger2openapi@^7.0.8:
1106611039
yaml "^1.10.0"
1106711040
yargs "^17.0.1"
1106811041

11069-
symbol-observable@^1.2.0:
11070-
version "1.2.0"
11071-
resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz"
11072-
integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==
11073-
1107411042
symbol-tree@^3.2.4:
1107511043
version "3.2.4"
1107611044
resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz"

0 commit comments

Comments
 (0)