scriptworker 63.4.2__tar.gz → 63.4.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. {scriptworker-63.4.2 → scriptworker-63.4.4}/HISTORY.rst +17 -0
  2. {scriptworker-63.4.2 → scriptworker-63.4.4}/PKG-INFO +1 -1
  3. {scriptworker-63.4.2 → scriptworker-63.4.4}/pyproject.toml +1 -1
  4. {scriptworker-63.4.2 → scriptworker-63.4.4}/src/scriptworker/constants.py +16 -3
  5. {scriptworker-63.4.2 → scriptworker-63.4.4}/src/scriptworker/cot/verify.py +3 -0
  6. {scriptworker-63.4.2 → scriptworker-63.4.4}/src/scriptworker/github.py +2 -0
  7. {scriptworker-63.4.2 → scriptworker-63.4.4}/.gitignore +0 -0
  8. {scriptworker-63.4.2 → scriptworker-63.4.4}/CONTRIBUTING.rst +0 -0
  9. {scriptworker-63.4.2 → scriptworker-63.4.4}/LICENSE +0 -0
  10. {scriptworker-63.4.2 → scriptworker-63.4.4}/README.rst +0 -0
  11. {scriptworker-63.4.2 → scriptworker-63.4.4}/renovate.json +0 -0
  12. {scriptworker-63.4.2 → scriptworker-63.4.4}/scripts/gen_ed25519_key.py +0 -0
  13. {scriptworker-63.4.2 → scriptworker-63.4.4}/scriptworker.yaml.tmpl +0 -0
  14. {scriptworker-63.4.2 → scriptworker-63.4.4}/src/scriptworker/__init__.py +0 -0
  15. {scriptworker-63.4.2 → scriptworker-63.4.4}/src/scriptworker/artifacts.py +0 -0
  16. {scriptworker-63.4.2 → scriptworker-63.4.4}/src/scriptworker/client.py +0 -0
  17. {scriptworker-63.4.2 → scriptworker-63.4.4}/src/scriptworker/config.py +0 -0
  18. {scriptworker-63.4.2 → scriptworker-63.4.4}/src/scriptworker/context.py +0 -0
  19. {scriptworker-63.4.2 → scriptworker-63.4.4}/src/scriptworker/cot/__init__.py +0 -0
  20. {scriptworker-63.4.2 → scriptworker-63.4.4}/src/scriptworker/cot/generate.py +0 -0
  21. {scriptworker-63.4.2 → scriptworker-63.4.4}/src/scriptworker/data/cot_v1_schema.json +0 -0
  22. {scriptworker-63.4.2 → scriptworker-63.4.4}/src/scriptworker/data/scriptworker_task_schema.json +0 -0
  23. {scriptworker-63.4.2 → scriptworker-63.4.4}/src/scriptworker/ed25519.py +0 -0
  24. {scriptworker-63.4.2 → scriptworker-63.4.4}/src/scriptworker/exceptions.py +0 -0
  25. {scriptworker-63.4.2 → scriptworker-63.4.4}/src/scriptworker/log.py +0 -0
  26. {scriptworker-63.4.2 → scriptworker-63.4.4}/src/scriptworker/task.py +0 -0
  27. {scriptworker-63.4.2 → scriptworker-63.4.4}/src/scriptworker/task_process.py +0 -0
  28. {scriptworker-63.4.2 → scriptworker-63.4.4}/src/scriptworker/utils.py +0 -0
  29. {scriptworker-63.4.2 → scriptworker-63.4.4}/src/scriptworker/worker.py +0 -0
  30. {scriptworker-63.4.2 → scriptworker-63.4.4}/tox.ini +0 -0
@@ -4,7 +4,24 @@ Change Log
4
4
  All notable changes to this project will be documented in this file.
5
5
  This project adheres to `Semantic Versioning <http://semver.org/>`__.
6
6
 
7
+ 63.4.4 - 2026-09-08
8
+ -------------------
9
+
10
+ Fixed
11
+ ~~~~~
12
+
13
+ - Add chain-of-trust check against generic-worker's "interactive" feature (#828)
14
+
15
+ 63.4.3 - 2026-09-02
16
+ -------------------
17
+
18
+ Fixed
19
+ ~~~~~
20
+
21
+ - Added 'thunderbird' as a secondary owner for enterprise repos
22
+
7
23
  63.4.2 - 2026-08-12
24
+ -------------------
8
25
 
9
26
  Fixed
10
27
  ~~~~~
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: scriptworker
3
- Version: 63.4.2
3
+ Version: 63.4.4
4
4
  Summary: Taskcluster scriptworker
5
5
  Author-email: Mozilla Release Engineering <releng@mozilla.com>
6
6
  License-File: LICENSE
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "scriptworker"
3
- version = "63.4.2"
3
+ version = "63.4.4"
4
4
  description = "Taskcluster scriptworker"
5
5
  authors = [
6
6
  { name = "Mozilla Release Engineering", email = "releng@mozilla.com" },
@@ -335,7 +335,10 @@ DEFAULT_CONFIG: immutabledict[str, Any] = immutabledict(
335
335
  {
336
336
  "schemes": ("https", "ssh"),
337
337
  "netlocs": ("github.com",),
338
- "path_regexes": (r"^(?P<path>/mozilla/enterprise-firefox)(/|.git|$)",),
338
+ "path_regexes": (
339
+ r"^(?P<path>/mozilla/enterprise-firefox)(/|.git|$)",
340
+ r"^(?P<path>/thunderbird/thunderbird-desktop)(/|.git|$)",
341
+ ),
339
342
  }
340
343
  ),
341
344
  ),
@@ -500,7 +503,10 @@ DEFAULT_CONFIG: immutabledict[str, Any] = immutabledict(
500
503
  {
501
504
  "adhoc": "mozilla-releng",
502
505
  "app-services": "mozilla",
503
- "enterprise": "mozilla",
506
+ "enterprise": (
507
+ "mozilla",
508
+ "thunderbird",
509
+ ),
504
510
  "firefox": "",
505
511
  "glean": "mozilla",
506
512
  "mobile": "mozilla-mobile",
@@ -650,7 +656,14 @@ DEFAULT_CONFIG: immutabledict[str, Any] = immutabledict(
650
656
  }
651
657
  ),
652
658
  "app-services": immutabledict({"app-services-repo": ("/mozilla/application-services",)}),
653
- "enterprise": immutabledict({"enterprise-firefox-repo": ("/mozilla/enterprise-firefox",)}),
659
+ "enterprise": immutabledict(
660
+ {
661
+ "enterprise-firefox-repo": (
662
+ "/mozilla/enterprise-firefox",
663
+ "/thunderbird/thunderbird-desktop",
664
+ )
665
+ }
666
+ ),
654
667
  "firefox": immutabledict(
655
668
  {
656
669
  # Which repos can perform release actions?
@@ -493,6 +493,7 @@ def check_interactive_docker_worker(link):
493
493
  def check_interactive_generic_worker(link):
494
494
  """Given a task, make sure the task was not defined as interactive.
495
495
 
496
+ * ``task.payload.features.interactive`` must be absent or False.
496
497
  * ``task.payload.rdpInfo`` must be absent or False.
497
498
  * ``task.payload.scopes`` must not contain a scope starting with ``generic-worker:allow-rdp:``
498
499
 
@@ -506,6 +507,8 @@ def check_interactive_generic_worker(link):
506
507
  errors = []
507
508
  log.info("Checking for {} {} interactive generic-worker".format(link.name, link.task_id))
508
509
  try:
510
+ if link.task["payload"].get("features", {}).get("interactive"):
511
+ errors.append("{} is interactive: task.payload.features.interactive!".format(link.name))
509
512
  if link.task["payload"].get("rdpInfo"):
510
513
  errors.append("{} is interactive: task.payload.rdpInfo!".format(link.name))
511
514
  for scope in link.task["scopes"]:
@@ -296,6 +296,8 @@ def is_github_repo_owner_the_official_one(context, repo_owner):
296
296
  'This worker does not have a defined owner for official GitHub repositories. Given "official_github_repos_owner": {}'.format(official_repo_owner)
297
297
  )
298
298
 
299
+ elif isinstance(official_repo_owner, tuple):
300
+ return repo_owner in official_repo_owner
299
301
  return official_repo_owner == repo_owner
300
302
 
301
303
 
File without changes
File without changes
File without changes
File without changes