taskcluster 108.0.0__tar.gz → 109.0.0__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.
- {taskcluster-108.0.0 → taskcluster-109.0.0}/PKG-INFO +2 -2
- {taskcluster-108.0.0 → taskcluster-109.0.0}/README.md +1 -1
- {taskcluster-108.0.0 → taskcluster-109.0.0}/pyproject.toml +1 -1
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/aio/auth.py +0 -111
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/aio/githubevents.py +46 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/aio/queue.py +29 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/auth.py +0 -107
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/githubevents.py +46 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/queue.py +27 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/test/base.py +1 -1
- {taskcluster-108.0.0 → taskcluster-109.0.0}/uv.lock +4 -4
- {taskcluster-108.0.0 → taskcluster-109.0.0}/.gitignore +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/CODE_OF_CONDUCT.md +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/CONTRIBUTING.md +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/LICENSE +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/release.sh +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/__init__.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/aio/__init__.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/aio/asyncclient.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/aio/asyncutils.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/aio/auth.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/aio/authevents.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/aio/awsprovisioner.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/aio/download.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/aio/ec2manager.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/aio/github.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/aio/githubevents.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/aio/hooks.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/aio/hooksevents.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/aio/index.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/aio/login.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/aio/notify.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/aio/notifyevents.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/aio/purgecache.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/aio/queue.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/aio/queueevents.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/aio/reader_writer.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/aio/retry.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/aio/secrets.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/aio/upload.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/aio/workermanager.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/aio/workermanagerevents.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/auth.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/authevents.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/awsprovisioner.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/client.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/download.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/ec2manager.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/exceptions.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/__init__.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/_client_importer.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/aio/__init__.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/aio/_client_importer.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/aio/authevents.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/aio/github.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/aio/hooks.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/aio/hooksevents.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/aio/index.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/aio/notify.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/aio/notifyevents.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/aio/object.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/aio/purgecache.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/aio/queueevents.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/aio/secrets.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/aio/webserver.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/aio/workermanager.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/aio/workermanagerevents.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/authevents.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/github.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/hooks.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/hooksevents.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/index.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/notify.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/notifyevents.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/object.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/purgecache.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/queueevents.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/secrets.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/webserver.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/workermanager.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/workermanagerevents.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/github.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/githubevents.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/helper.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/hooks.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/hooksevents.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/index.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/login.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/notify.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/notifyevents.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/purgecache.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/queue.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/queueevents.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/retry.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/secrets.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/upload.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/utils.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/workermanager.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/workermanagerevents.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/test/aio/__init__.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/test/aio/test_client.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/test/aio/test_reader_writer.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/test/aio/test_upload_download.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/test/aio/test_upload_download_real.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/test/conftest.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/test/public.key +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/test/secret.key +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/test/test_client.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/test/test_exceptions.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/test/test_imports.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/test/test_upload_download.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/test/test_upload_download_real.py +0 -0
- {taskcluster-108.0.0 → taskcluster-109.0.0}/test/test_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: taskcluster
|
|
3
|
-
Version:
|
|
3
|
+
Version: 109.0.0
|
|
4
4
|
Summary: Python client for Taskcluster
|
|
5
5
|
Project-URL: Homepage, https://github.com/taskcluster/taskcluster
|
|
6
6
|
Project-URL: Repository, https://github.com/taskcluster/taskcluster
|
|
@@ -452,7 +452,7 @@ Here is a sample usage:
|
|
|
452
452
|
```python
|
|
453
453
|
from taskcluster.helper import Taskcluster config
|
|
454
454
|
|
|
455
|
-
tc = TaskclusterConfig('https://
|
|
455
|
+
tc = TaskclusterConfig('https://firefox-ci-tc.services.mozilla.com')
|
|
456
456
|
```
|
|
457
457
|
|
|
458
458
|
2. in `project/boot.py`, we authenticate on Taskcuster with provided credentials, or environment variables, or taskcluster proxy (in that order):
|
|
@@ -419,7 +419,7 @@ Here is a sample usage:
|
|
|
419
419
|
```python
|
|
420
420
|
from taskcluster.helper import Taskcluster config
|
|
421
421
|
|
|
422
|
-
tc = TaskclusterConfig('https://
|
|
422
|
+
tc = TaskclusterConfig('https://firefox-ci-tc.services.mozilla.com')
|
|
423
423
|
```
|
|
424
424
|
|
|
425
425
|
2. in `project/boot.py`, we authenticate on Taskcuster with provided credentials, or environment variables, or taskcluster proxy (in that order):
|
|
@@ -396,75 +396,6 @@ class Auth(AsyncBaseClient):
|
|
|
396
396
|
self.funcinfo["awsS3Credentials"], *args, **kwargs
|
|
397
397
|
)
|
|
398
398
|
|
|
399
|
-
async def azureAccounts(self, *args, **kwargs):
|
|
400
|
-
"""
|
|
401
|
-
List Accounts Managed by Auth
|
|
402
|
-
|
|
403
|
-
Retrieve a list of all Azure accounts managed by Taskcluster Auth.
|
|
404
|
-
|
|
405
|
-
This method is ``deprecated``
|
|
406
|
-
"""
|
|
407
|
-
|
|
408
|
-
return await self._makeApiCall(self.funcinfo["azureAccounts"], *args, **kwargs)
|
|
409
|
-
|
|
410
|
-
async def azureTables(self, *args, **kwargs):
|
|
411
|
-
"""
|
|
412
|
-
List Tables in an Account Managed by Auth
|
|
413
|
-
|
|
414
|
-
Retrieve a list of all tables in an account.
|
|
415
|
-
|
|
416
|
-
This method is ``deprecated``
|
|
417
|
-
"""
|
|
418
|
-
|
|
419
|
-
return await self._makeApiCall(self.funcinfo["azureTables"], *args, **kwargs)
|
|
420
|
-
|
|
421
|
-
async def azureTableSAS(self, *args, **kwargs):
|
|
422
|
-
"""
|
|
423
|
-
Get Shared-Access-Signature for Azure Table
|
|
424
|
-
|
|
425
|
-
Get a shared access signature (SAS) string for use with a specific Azure
|
|
426
|
-
Table Storage table.
|
|
427
|
-
|
|
428
|
-
The `level` parameter can be `read-write` or `read-only` and determines
|
|
429
|
-
which type of credentials are returned. If level is read-write, it will create the
|
|
430
|
-
table if it doesn't already exist.
|
|
431
|
-
|
|
432
|
-
This method is ``deprecated``
|
|
433
|
-
"""
|
|
434
|
-
|
|
435
|
-
return await self._makeApiCall(self.funcinfo["azureTableSAS"], *args, **kwargs)
|
|
436
|
-
|
|
437
|
-
async def azureContainers(self, *args, **kwargs):
|
|
438
|
-
"""
|
|
439
|
-
List containers in an Account Managed by Auth
|
|
440
|
-
|
|
441
|
-
Retrieve a list of all containers in an account.
|
|
442
|
-
|
|
443
|
-
This method is ``deprecated``
|
|
444
|
-
"""
|
|
445
|
-
|
|
446
|
-
return await self._makeApiCall(
|
|
447
|
-
self.funcinfo["azureContainers"], *args, **kwargs
|
|
448
|
-
)
|
|
449
|
-
|
|
450
|
-
async def azureContainerSAS(self, *args, **kwargs):
|
|
451
|
-
"""
|
|
452
|
-
Get Shared-Access-Signature for Azure Container
|
|
453
|
-
|
|
454
|
-
Get a shared access signature (SAS) string for use with a specific Azure
|
|
455
|
-
Blob Storage container.
|
|
456
|
-
|
|
457
|
-
The `level` parameter can be `read-write` or `read-only` and determines
|
|
458
|
-
which type of credentials are returned. If level is read-write, it will create the
|
|
459
|
-
container if it doesn't already exist.
|
|
460
|
-
|
|
461
|
-
This method is ``deprecated``
|
|
462
|
-
"""
|
|
463
|
-
|
|
464
|
-
return await self._makeApiCall(
|
|
465
|
-
self.funcinfo["azureContainerSAS"], *args, **kwargs
|
|
466
|
-
)
|
|
467
|
-
|
|
468
399
|
async def sentryDSN(self, *args, **kwargs):
|
|
469
400
|
"""
|
|
470
401
|
Get DSN for Sentry Project
|
|
@@ -651,48 +582,6 @@ class Auth(AsyncBaseClient):
|
|
|
651
582
|
"route": "/aws/s3/<level>/<bucket>/<prefix>",
|
|
652
583
|
"stability": "stable",
|
|
653
584
|
},
|
|
654
|
-
"azureAccounts": {
|
|
655
|
-
"args": [],
|
|
656
|
-
"method": "get",
|
|
657
|
-
"name": "azureAccounts",
|
|
658
|
-
"output": "v1/azure-account-list-response.json#",
|
|
659
|
-
"route": "/azure/accounts",
|
|
660
|
-
"stability": "deprecated",
|
|
661
|
-
},
|
|
662
|
-
"azureContainerSAS": {
|
|
663
|
-
"args": ["account", "container", "level"],
|
|
664
|
-
"method": "get",
|
|
665
|
-
"name": "azureContainerSAS",
|
|
666
|
-
"output": "v1/azure-container-response.json#",
|
|
667
|
-
"route": "/azure/<account>/containers/<container>/<level>",
|
|
668
|
-
"stability": "deprecated",
|
|
669
|
-
},
|
|
670
|
-
"azureContainers": {
|
|
671
|
-
"args": ["account"],
|
|
672
|
-
"method": "get",
|
|
673
|
-
"name": "azureContainers",
|
|
674
|
-
"output": "v1/azure-container-list-response.json#",
|
|
675
|
-
"query": ["continuationToken"],
|
|
676
|
-
"route": "/azure/<account>/containers",
|
|
677
|
-
"stability": "deprecated",
|
|
678
|
-
},
|
|
679
|
-
"azureTableSAS": {
|
|
680
|
-
"args": ["account", "table", "level"],
|
|
681
|
-
"method": "get",
|
|
682
|
-
"name": "azureTableSAS",
|
|
683
|
-
"output": "v1/azure-table-access-response.json#",
|
|
684
|
-
"route": "/azure/<account>/table/<table>/<level>",
|
|
685
|
-
"stability": "deprecated",
|
|
686
|
-
},
|
|
687
|
-
"azureTables": {
|
|
688
|
-
"args": ["account"],
|
|
689
|
-
"method": "get",
|
|
690
|
-
"name": "azureTables",
|
|
691
|
-
"output": "v1/azure-table-list-response.json#",
|
|
692
|
-
"query": ["continuationToken"],
|
|
693
|
-
"route": "/azure/<account>/tables",
|
|
694
|
-
"stability": "deprecated",
|
|
695
|
-
},
|
|
696
585
|
"client": {
|
|
697
586
|
"args": ["clientId"],
|
|
698
587
|
"method": "get",
|
|
@@ -113,6 +113,52 @@ class GithubEvents(AsyncBaseClient):
|
|
|
113
113
|
}
|
|
114
114
|
return self._makeTopicExchange(ref, *args, **kwargs)
|
|
115
115
|
|
|
116
|
+
def taskclusterYmlUpdate(self, *args, **kwargs):
|
|
117
|
+
"""
|
|
118
|
+
Taskcluster Yml Update Event
|
|
119
|
+
|
|
120
|
+
When a GitHub push event changes a repository's `.taskcluster.yml` it will
|
|
121
|
+
be broadcast on this exchange with the designated `organization` and
|
|
122
|
+
`repository` in the routing-key.
|
|
123
|
+
|
|
124
|
+
The payload names the repository and the ref that was pushed to, and
|
|
125
|
+
nothing more. The file itself does not travel with the message, so a
|
|
126
|
+
consumer reading it cannot be steered by the pushed commits.
|
|
127
|
+
|
|
128
|
+
Detection is best effort. A force push that drops a commit reports no
|
|
129
|
+
changed files to GitHub, so reverting the file that way sends no message.
|
|
130
|
+
|
|
131
|
+
This exchange takes the following keys:
|
|
132
|
+
|
|
133
|
+
* routingKeyKind: Identifier for the routing-key kind. This is always `"primary"` for the formalized routing key. (required)
|
|
134
|
+
|
|
135
|
+
* organization: The GitHub `organization` which had an event. All periods have been replaced by % - such that foo.bar becomes foo%bar - and all other special characters aside from - and _ have been stripped. (required)
|
|
136
|
+
|
|
137
|
+
* repository: The GitHub `repository` which had an event.All periods have been replaced by % - such that foo.bar becomes foo%bar - and all other special characters aside from - and _ have been stripped. (required)
|
|
138
|
+
"""
|
|
139
|
+
|
|
140
|
+
ref = {
|
|
141
|
+
"exchange": "taskcluster-yml-update",
|
|
142
|
+
"name": "taskclusterYmlUpdate",
|
|
143
|
+
"routingKey": [
|
|
144
|
+
{
|
|
145
|
+
"constant": "primary",
|
|
146
|
+
"multipleWords": False,
|
|
147
|
+
"name": "routingKeyKind",
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"multipleWords": False,
|
|
151
|
+
"name": "organization",
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"multipleWords": False,
|
|
155
|
+
"name": "repository",
|
|
156
|
+
},
|
|
157
|
+
],
|
|
158
|
+
"schema": "v1/taskcluster-yml-update-message.json#",
|
|
159
|
+
}
|
|
160
|
+
return self._makeTopicExchange(ref, *args, **kwargs)
|
|
161
|
+
|
|
116
162
|
def release(self, *args, **kwargs):
|
|
117
163
|
"""
|
|
118
164
|
GitHub release Event
|
|
@@ -840,6 +840,26 @@ class Queue(AsyncBaseClient):
|
|
|
840
840
|
|
|
841
841
|
return await self._makeApiCall(self.funcinfo["pendingTasks"], *args, **kwargs)
|
|
842
842
|
|
|
843
|
+
async def taskQueueCountsBatch(self, *args, **kwargs):
|
|
844
|
+
"""
|
|
845
|
+
Get Pending and Claimed Task Counts for Multiple Task Queues
|
|
846
|
+
|
|
847
|
+
Get approximate pending and claimed task counts for the given task queues.
|
|
848
|
+
|
|
849
|
+
The caller must have both `queue:pending-count:<taskQueueId>` and
|
|
850
|
+
`queue:claimed-count:<taskQueueId>` scopes for every requested task queue.
|
|
851
|
+
If any task queue is unauthorized, the entire request will fail.
|
|
852
|
+
|
|
853
|
+
As task states may change rapidly, these counts may not represent the exact
|
|
854
|
+
number of pending and claimed tasks, but are very good approximations.
|
|
855
|
+
|
|
856
|
+
This method is ``experimental``
|
|
857
|
+
"""
|
|
858
|
+
|
|
859
|
+
return await self._makeApiCall(
|
|
860
|
+
self.funcinfo["taskQueueCountsBatch"], *args, **kwargs
|
|
861
|
+
)
|
|
862
|
+
|
|
843
863
|
async def taskQueueCounts(self, *args, **kwargs):
|
|
844
864
|
"""
|
|
845
865
|
Get Number of Pending and Claimed Tasks
|
|
@@ -1411,6 +1431,15 @@ class Queue(AsyncBaseClient):
|
|
|
1411
1431
|
"route": "/task-queues/<taskQueueId>/counts",
|
|
1412
1432
|
"stability": "stable",
|
|
1413
1433
|
},
|
|
1434
|
+
"taskQueueCountsBatch": {
|
|
1435
|
+
"args": [],
|
|
1436
|
+
"input": "v1/task-queue-counts-request.json#",
|
|
1437
|
+
"method": "post",
|
|
1438
|
+
"name": "taskQueueCountsBatch",
|
|
1439
|
+
"output": "v1/task-queue-counts-list-response.json#",
|
|
1440
|
+
"route": "/task-queues/counts",
|
|
1441
|
+
"stability": "experimental",
|
|
1442
|
+
},
|
|
1414
1443
|
"tasks": {
|
|
1415
1444
|
"args": [],
|
|
1416
1445
|
"input": "v1/tasks-request.json#",
|
|
@@ -388,71 +388,6 @@ class Auth(BaseClient):
|
|
|
388
388
|
|
|
389
389
|
return self._makeApiCall(self.funcinfo["awsS3Credentials"], *args, **kwargs)
|
|
390
390
|
|
|
391
|
-
def azureAccounts(self, *args, **kwargs):
|
|
392
|
-
"""
|
|
393
|
-
List Accounts Managed by Auth
|
|
394
|
-
|
|
395
|
-
Retrieve a list of all Azure accounts managed by Taskcluster Auth.
|
|
396
|
-
|
|
397
|
-
This method is ``deprecated``
|
|
398
|
-
"""
|
|
399
|
-
|
|
400
|
-
return self._makeApiCall(self.funcinfo["azureAccounts"], *args, **kwargs)
|
|
401
|
-
|
|
402
|
-
def azureTables(self, *args, **kwargs):
|
|
403
|
-
"""
|
|
404
|
-
List Tables in an Account Managed by Auth
|
|
405
|
-
|
|
406
|
-
Retrieve a list of all tables in an account.
|
|
407
|
-
|
|
408
|
-
This method is ``deprecated``
|
|
409
|
-
"""
|
|
410
|
-
|
|
411
|
-
return self._makeApiCall(self.funcinfo["azureTables"], *args, **kwargs)
|
|
412
|
-
|
|
413
|
-
def azureTableSAS(self, *args, **kwargs):
|
|
414
|
-
"""
|
|
415
|
-
Get Shared-Access-Signature for Azure Table
|
|
416
|
-
|
|
417
|
-
Get a shared access signature (SAS) string for use with a specific Azure
|
|
418
|
-
Table Storage table.
|
|
419
|
-
|
|
420
|
-
The `level` parameter can be `read-write` or `read-only` and determines
|
|
421
|
-
which type of credentials are returned. If level is read-write, it will create the
|
|
422
|
-
table if it doesn't already exist.
|
|
423
|
-
|
|
424
|
-
This method is ``deprecated``
|
|
425
|
-
"""
|
|
426
|
-
|
|
427
|
-
return self._makeApiCall(self.funcinfo["azureTableSAS"], *args, **kwargs)
|
|
428
|
-
|
|
429
|
-
def azureContainers(self, *args, **kwargs):
|
|
430
|
-
"""
|
|
431
|
-
List containers in an Account Managed by Auth
|
|
432
|
-
|
|
433
|
-
Retrieve a list of all containers in an account.
|
|
434
|
-
|
|
435
|
-
This method is ``deprecated``
|
|
436
|
-
"""
|
|
437
|
-
|
|
438
|
-
return self._makeApiCall(self.funcinfo["azureContainers"], *args, **kwargs)
|
|
439
|
-
|
|
440
|
-
def azureContainerSAS(self, *args, **kwargs):
|
|
441
|
-
"""
|
|
442
|
-
Get Shared-Access-Signature for Azure Container
|
|
443
|
-
|
|
444
|
-
Get a shared access signature (SAS) string for use with a specific Azure
|
|
445
|
-
Blob Storage container.
|
|
446
|
-
|
|
447
|
-
The `level` parameter can be `read-write` or `read-only` and determines
|
|
448
|
-
which type of credentials are returned. If level is read-write, it will create the
|
|
449
|
-
container if it doesn't already exist.
|
|
450
|
-
|
|
451
|
-
This method is ``deprecated``
|
|
452
|
-
"""
|
|
453
|
-
|
|
454
|
-
return self._makeApiCall(self.funcinfo["azureContainerSAS"], *args, **kwargs)
|
|
455
|
-
|
|
456
391
|
def sentryDSN(self, *args, **kwargs):
|
|
457
392
|
"""
|
|
458
393
|
Get DSN for Sentry Project
|
|
@@ -629,48 +564,6 @@ class Auth(BaseClient):
|
|
|
629
564
|
"route": "/aws/s3/<level>/<bucket>/<prefix>",
|
|
630
565
|
"stability": "stable",
|
|
631
566
|
},
|
|
632
|
-
"azureAccounts": {
|
|
633
|
-
"args": [],
|
|
634
|
-
"method": "get",
|
|
635
|
-
"name": "azureAccounts",
|
|
636
|
-
"output": "v1/azure-account-list-response.json#",
|
|
637
|
-
"route": "/azure/accounts",
|
|
638
|
-
"stability": "deprecated",
|
|
639
|
-
},
|
|
640
|
-
"azureContainerSAS": {
|
|
641
|
-
"args": ["account", "container", "level"],
|
|
642
|
-
"method": "get",
|
|
643
|
-
"name": "azureContainerSAS",
|
|
644
|
-
"output": "v1/azure-container-response.json#",
|
|
645
|
-
"route": "/azure/<account>/containers/<container>/<level>",
|
|
646
|
-
"stability": "deprecated",
|
|
647
|
-
},
|
|
648
|
-
"azureContainers": {
|
|
649
|
-
"args": ["account"],
|
|
650
|
-
"method": "get",
|
|
651
|
-
"name": "azureContainers",
|
|
652
|
-
"output": "v1/azure-container-list-response.json#",
|
|
653
|
-
"query": ["continuationToken"],
|
|
654
|
-
"route": "/azure/<account>/containers",
|
|
655
|
-
"stability": "deprecated",
|
|
656
|
-
},
|
|
657
|
-
"azureTableSAS": {
|
|
658
|
-
"args": ["account", "table", "level"],
|
|
659
|
-
"method": "get",
|
|
660
|
-
"name": "azureTableSAS",
|
|
661
|
-
"output": "v1/azure-table-access-response.json#",
|
|
662
|
-
"route": "/azure/<account>/table/<table>/<level>",
|
|
663
|
-
"stability": "deprecated",
|
|
664
|
-
},
|
|
665
|
-
"azureTables": {
|
|
666
|
-
"args": ["account"],
|
|
667
|
-
"method": "get",
|
|
668
|
-
"name": "azureTables",
|
|
669
|
-
"output": "v1/azure-table-list-response.json#",
|
|
670
|
-
"query": ["continuationToken"],
|
|
671
|
-
"route": "/azure/<account>/tables",
|
|
672
|
-
"stability": "deprecated",
|
|
673
|
-
},
|
|
674
567
|
"client": {
|
|
675
568
|
"args": ["clientId"],
|
|
676
569
|
"method": "get",
|
|
@@ -113,6 +113,52 @@ class GithubEvents(BaseClient):
|
|
|
113
113
|
}
|
|
114
114
|
return self._makeTopicExchange(ref, *args, **kwargs)
|
|
115
115
|
|
|
116
|
+
def taskclusterYmlUpdate(self, *args, **kwargs):
|
|
117
|
+
"""
|
|
118
|
+
Taskcluster Yml Update Event
|
|
119
|
+
|
|
120
|
+
When a GitHub push event changes a repository's `.taskcluster.yml` it will
|
|
121
|
+
be broadcast on this exchange with the designated `organization` and
|
|
122
|
+
`repository` in the routing-key.
|
|
123
|
+
|
|
124
|
+
The payload names the repository and the ref that was pushed to, and
|
|
125
|
+
nothing more. The file itself does not travel with the message, so a
|
|
126
|
+
consumer reading it cannot be steered by the pushed commits.
|
|
127
|
+
|
|
128
|
+
Detection is best effort. A force push that drops a commit reports no
|
|
129
|
+
changed files to GitHub, so reverting the file that way sends no message.
|
|
130
|
+
|
|
131
|
+
This exchange takes the following keys:
|
|
132
|
+
|
|
133
|
+
* routingKeyKind: Identifier for the routing-key kind. This is always `"primary"` for the formalized routing key. (required)
|
|
134
|
+
|
|
135
|
+
* organization: The GitHub `organization` which had an event. All periods have been replaced by % - such that foo.bar becomes foo%bar - and all other special characters aside from - and _ have been stripped. (required)
|
|
136
|
+
|
|
137
|
+
* repository: The GitHub `repository` which had an event.All periods have been replaced by % - such that foo.bar becomes foo%bar - and all other special characters aside from - and _ have been stripped. (required)
|
|
138
|
+
"""
|
|
139
|
+
|
|
140
|
+
ref = {
|
|
141
|
+
"exchange": "taskcluster-yml-update",
|
|
142
|
+
"name": "taskclusterYmlUpdate",
|
|
143
|
+
"routingKey": [
|
|
144
|
+
{
|
|
145
|
+
"constant": "primary",
|
|
146
|
+
"multipleWords": False,
|
|
147
|
+
"name": "routingKeyKind",
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"multipleWords": False,
|
|
151
|
+
"name": "organization",
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"multipleWords": False,
|
|
155
|
+
"name": "repository",
|
|
156
|
+
},
|
|
157
|
+
],
|
|
158
|
+
"schema": "v1/taskcluster-yml-update-message.json#",
|
|
159
|
+
}
|
|
160
|
+
return self._makeTopicExchange(ref, *args, **kwargs)
|
|
161
|
+
|
|
116
162
|
def release(self, *args, **kwargs):
|
|
117
163
|
"""
|
|
118
164
|
GitHub release Event
|
|
@@ -822,6 +822,24 @@ class Queue(BaseClient):
|
|
|
822
822
|
|
|
823
823
|
return self._makeApiCall(self.funcinfo["pendingTasks"], *args, **kwargs)
|
|
824
824
|
|
|
825
|
+
def taskQueueCountsBatch(self, *args, **kwargs):
|
|
826
|
+
"""
|
|
827
|
+
Get Pending and Claimed Task Counts for Multiple Task Queues
|
|
828
|
+
|
|
829
|
+
Get approximate pending and claimed task counts for the given task queues.
|
|
830
|
+
|
|
831
|
+
The caller must have both `queue:pending-count:<taskQueueId>` and
|
|
832
|
+
`queue:claimed-count:<taskQueueId>` scopes for every requested task queue.
|
|
833
|
+
If any task queue is unauthorized, the entire request will fail.
|
|
834
|
+
|
|
835
|
+
As task states may change rapidly, these counts may not represent the exact
|
|
836
|
+
number of pending and claimed tasks, but are very good approximations.
|
|
837
|
+
|
|
838
|
+
This method is ``experimental``
|
|
839
|
+
"""
|
|
840
|
+
|
|
841
|
+
return self._makeApiCall(self.funcinfo["taskQueueCountsBatch"], *args, **kwargs)
|
|
842
|
+
|
|
825
843
|
def taskQueueCounts(self, *args, **kwargs):
|
|
826
844
|
"""
|
|
827
845
|
Get Number of Pending and Claimed Tasks
|
|
@@ -1383,6 +1401,15 @@ class Queue(BaseClient):
|
|
|
1383
1401
|
"route": "/task-queues/<taskQueueId>/counts",
|
|
1384
1402
|
"stability": "stable",
|
|
1385
1403
|
},
|
|
1404
|
+
"taskQueueCountsBatch": {
|
|
1405
|
+
"args": [],
|
|
1406
|
+
"input": "v1/task-queue-counts-request.json#",
|
|
1407
|
+
"method": "post",
|
|
1408
|
+
"name": "taskQueueCountsBatch",
|
|
1409
|
+
"output": "v1/task-queue-counts-list-response.json#",
|
|
1410
|
+
"route": "/task-queues/counts",
|
|
1411
|
+
"stability": "experimental",
|
|
1412
|
+
},
|
|
1386
1413
|
"tasks": {
|
|
1387
1414
|
"args": [],
|
|
1388
1415
|
"input": "v1/tasks-request.json#",
|
|
@@ -11,7 +11,7 @@ _sleep = time.sleep
|
|
|
11
11
|
TEST_ROOT_URL = "https://tc-tests.example.com"
|
|
12
12
|
# rootUrl of a real deployment (that needs no pre-configuration)
|
|
13
13
|
REAL_ROOT_URL = os.environ.get(
|
|
14
|
-
"TASKCLUSTER_ROOT_URL", "https://
|
|
14
|
+
"TASKCLUSTER_ROOT_URL", "https://firefox-ci-tc.services.mozilla.com/"
|
|
15
15
|
)
|
|
16
16
|
|
|
17
17
|
log = logging.getLogger(__name__)
|
|
@@ -1334,7 +1334,7 @@ wheels = [
|
|
|
1334
1334
|
|
|
1335
1335
|
[[package]]
|
|
1336
1336
|
name = "taskcluster"
|
|
1337
|
-
version = "
|
|
1337
|
+
version = "109.0.0"
|
|
1338
1338
|
source = { editable = "." }
|
|
1339
1339
|
dependencies = [
|
|
1340
1340
|
{ name = "aiohttp" },
|
|
@@ -1395,11 +1395,11 @@ dev = [
|
|
|
1395
1395
|
|
|
1396
1396
|
[[package]]
|
|
1397
1397
|
name = "taskcluster-urls"
|
|
1398
|
-
version = "13.0
|
|
1398
|
+
version = "13.1.0"
|
|
1399
1399
|
source = { registry = "https://pypi.org/simple" }
|
|
1400
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1400
|
+
sdist = { url = "https://files.pythonhosted.org/packages/3a/e8/8d1d563406366b22861c596927e3740bc69c242629881ff99d27eff2f6b5/taskcluster_urls-13.1.0.tar.gz", hash = "sha256:ccd88e569c32b906faa93a7950756c9ddec96d83081f6f04f75319753f668f8d", size = 11069, upload-time = "2026-08-26T13:19:51.973Z" }
|
|
1401
1401
|
wheels = [
|
|
1402
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1402
|
+
{ url = "https://files.pythonhosted.org/packages/3a/d1/df3bac5dd5afe2ca618ac3a0339bb6875243f4c95213315048791bc7e906/taskcluster_urls-13.1.0-py3-none-any.whl", hash = "sha256:056c7a1607af4b011ace56c20e3af4f525c02d6323eab401fc186b625bbb7ba8", size = 10636, upload-time = "2026-08-26T13:19:51.056Z" },
|
|
1403
1403
|
]
|
|
1404
1404
|
|
|
1405
1405
|
[[package]]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{taskcluster-108.0.0 → taskcluster-109.0.0}/taskcluster/generated/aio/workermanagerevents.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|