From cf62a3a760640ec2efa29a13dca87f6a6aec752d Mon Sep 17 00:00:00 2001 From: Jason Petersen Date: Mon, 20 Apr 2026 08:14:59 -0600 Subject: [PATCH 1/2] Use parameterized queries for table names in MySQL schema collection (#23366) Replace string interpolation of table names in IN (...) clauses with %s parameterized placeholders across the four schema collection query methods (columns, indexes, foreign keys, partitions). Table names from information_schema.TABLES are now passed as query parameters via pymysql rather than being formatted directly into the SQL string. Adds a unit test verifying that each execute call receives db_name as params[0], the table name list as params[1:], and the correct number of %s placeholders in the query string. Co-authored-by: Claude Sonnet 4.6 --- mysql/changelog.d/23366.fixed | 1 + mysql/datadog_checks/mysql/databases_data.py | 52 +++++++++++++------- mysql/datadog_checks/mysql/queries.py | 6 +-- mysql/tests/test_unit.py | 31 ++++++++++++ 4 files changed, 68 insertions(+), 22 deletions(-) create mode 100644 mysql/changelog.d/23366.fixed diff --git a/mysql/changelog.d/23366.fixed b/mysql/changelog.d/23366.fixed new file mode 100644 index 0000000000000..e06a69fcec823 --- /dev/null +++ b/mysql/changelog.d/23366.fixed @@ -0,0 +1 @@ +Use parameterized queries for table names in schema collection. \ No newline at end of file diff --git a/mysql/datadog_checks/mysql/databases_data.py b/mysql/datadog_checks/mysql/databases_data.py index ad99c072fccb1..900d8dbfd434e 100644 --- a/mysql/datadog_checks/mysql/databases_data.py +++ b/mysql/datadog_checks/mysql/databases_data.py @@ -148,11 +148,10 @@ def shut_down(self): self._data_submitter.submit() def _cursor_run(self, cursor, query, params=None): - """ - Run and log the query. If provided, obfuscated params are logged in place of the regular params. - """ + """Run the query, log it, and emit a metric on database error.""" try: - self._log.debug("Running query [{}] params={}".format(query, params)) + params_repr = "({} params)".format(len(params)) if isinstance(params, list) else params + self._log.debug("Running query [{}] params={}".format(query, params_repr)) cursor.execute(query, params) except pymysql.DatabaseError as e: self._check.count( @@ -321,21 +320,30 @@ def _get_tables_data(self, table_list, db_name, cursor): table_name_to_table_index = {} for i, table in enumerate(table_list): table_name_to_table_index[table["name"]] = i - table_names = ','.join(f'"{str(table["name"])}"' for table in table_list) + table_name_list = [str(table["name"]) for table in table_list] + placeholders = ','.join(['%s'] * len(table_name_list)) total_columns_number = self._populate_with_columns_data( - table_name_to_table_index, table_list, table_names, db_name, cursor + table_name_to_table_index, table_list, table_name_list, placeholders, db_name, cursor + ) + self._populate_with_partitions_data( + table_name_to_table_index, table_list, table_name_list, placeholders, db_name, cursor + ) + self._populate_with_foreign_keys_data( + table_name_to_table_index, table_list, table_name_list, placeholders, db_name, cursor + ) + self._populate_with_index_data( + table_name_to_table_index, table_list, table_name_list, placeholders, db_name, cursor ) - self._populate_with_partitions_data(table_name_to_table_index, table_list, table_names, db_name, cursor) - self._populate_with_foreign_keys_data(table_name_to_table_index, table_list, table_names, db_name, cursor) - self._populate_with_index_data(table_name_to_table_index, table_list, table_names, db_name, cursor) return total_columns_number, table_list @tracked_method(agent_check_getter=agent_check_getter) - def _populate_with_columns_data(self, table_name_to_table_index, table_list, table_names, db_name, cursor): + def _populate_with_columns_data( + self, table_name_to_table_index, table_list, table_name_list, placeholders, db_name, cursor + ): self._cursor_run( cursor, - query=SQL_COLUMNS.format(table_names), - params=db_name, + query=SQL_COLUMNS.format(placeholders), + params=[db_name] + table_name_list, ) rows = cursor.fetchall() for row in rows: @@ -354,9 +362,11 @@ def _populate_with_columns_data(self, table_name_to_table_index, table_list, tab return len(rows) @tracked_method(agent_check_getter=agent_check_getter) - def _populate_with_index_data(self, table_name_to_table_index, table_list, table_names, db_name, cursor): - query = get_indexes_query(self._check.version, self._check.is_mariadb, table_names) - self._cursor_run(cursor, query=query, params=db_name) + def _populate_with_index_data( + self, table_name_to_table_index, table_list, table_name_list, placeholders, db_name, cursor + ): + query = get_indexes_query(self._check.version, self._check.is_mariadb, placeholders) + self._cursor_run(cursor, query=query, params=[db_name] + table_name_list) rows = cursor.fetchall() if not rows: return @@ -394,8 +404,10 @@ def _populate_with_index_data(self, table_name_to_table_index, table_list, table table_list[table_name_to_table_index[table_name]]["indexes"] = list(index_dict.values()) @tracked_method(agent_check_getter=agent_check_getter, track_result_length=True) - def _populate_with_foreign_keys_data(self, table_name_to_table_index, table_list, table_names, db_name, cursor): - self._cursor_run(cursor, query=SQL_FOREIGN_KEYS.format(table_names), params=db_name) + def _populate_with_foreign_keys_data( + self, table_name_to_table_index, table_list, table_name_list, placeholders, db_name, cursor + ): + self._cursor_run(cursor, query=SQL_FOREIGN_KEYS.format(placeholders), params=[db_name] + table_name_list) rows = cursor.fetchall() for row in rows: table_name = row["table_name"] @@ -403,8 +415,10 @@ def _populate_with_foreign_keys_data(self, table_name_to_table_index, table_list table_list[table_name_to_table_index[table_name]]["foreign_keys"].append(row) @tracked_method(agent_check_getter=agent_check_getter, track_result_length=True) - def _populate_with_partitions_data(self, table_name_to_table_index, table_list, table_names, db_name, cursor): - self._cursor_run(cursor, query=SQL_PARTITION.format(table_names), params=db_name) + def _populate_with_partitions_data( + self, table_name_to_table_index, table_list, table_name_list, placeholders, db_name, cursor + ): + self._cursor_run(cursor, query=SQL_PARTITION.format(placeholders), params=[db_name] + table_name_list) rows = cursor.fetchall() if not rows: return diff --git a/mysql/datadog_checks/mysql/queries.py b/mysql/datadog_checks/mysql/queries.py index a993bf31d4d66..9dc1bed47f00d 100644 --- a/mysql/datadog_checks/mysql/queries.py +++ b/mysql/datadog_checks/mysql/queries.py @@ -274,13 +274,13 @@ def show_replica_status_query(version, is_mariadb, channel=''): return "{0};".format(base_query) -def get_indexes_query(version, is_mariadb, table_names): +def get_indexes_query(version, is_mariadb, placeholders): """ Get the appropriate indexes query based on MySQL version and flavor. The EXPRESSION column was introduced in MySQL 8.0.13 for functional indexes. MariaDB doesn't support functional indexes. """ if not is_mariadb and version.version_compatible((8, 0, 13)): - return SQL_INDEXES_8_0_13.format(table_names) + return SQL_INDEXES_8_0_13.format(placeholders) else: - return SQL_INDEXES.format(table_names) + return SQL_INDEXES.format(placeholders) diff --git a/mysql/tests/test_unit.py b/mysql/tests/test_unit.py index cd2f022209dd8..721b5b9c09c4f 100644 --- a/mysql/tests/test_unit.py +++ b/mysql/tests/test_unit.py @@ -433,6 +433,37 @@ def test_submit_is_called_if_too_many_columns(): assert mocked_submit.call_count == 2 +def test_get_tables_data_uses_parameterized_queries(): + """Table names must be passed as query parameters, not interpolated into SQL strings.""" + check = MySql(common.CHECK_NAME, {}, instances=[{'server': 'localhost', 'user': 'datadog'}]) + databases_data = DatabasesData({}, check, check._config) + + table_list = [{"name": 'normal_table'}, {"name": 'bad"table'}, {"name": "x\") UNION SELECT user()#"}] + execute_calls = [] + + class MockCursor: + def execute(self, query, params=None): + execute_calls.append((query, params)) + + def fetchall(self): + return [] + + def fake_index_query(v, m, p): + return "SELECT 1 WHERE s = %s AND n IN ({})".format(p) + + with mock.patch('datadog_checks.mysql.databases_data.get_indexes_query', side_effect=fake_index_query): + databases_data._get_tables_data(table_list, "mydb", MockCursor()) + + table_name_list = [str(t["name"]) for t in table_list] + + assert execute_calls, "Expected at least one query to be executed" + for query, params in execute_calls: + assert isinstance(params, list) + assert params[0] == "mydb" + assert params[1:] == table_name_list + assert query.count('%s') == len(table_list) + 1 + + def test_exception_handling_by_do_for_dbs(): check = MySql(common.CHECK_NAME, {}, instances=[{'server': 'localhost', 'user': 'datadog'}]) databases_data = DatabasesData({}, check, check._config) From dba5e9c3c96751dde829009bddf1ec5e824fbcaf Mon Sep 17 00:00:00 2001 From: Ilia Kurenkov Date: Mon, 20 Apr 2026 16:21:50 +0200 Subject: [PATCH 2/2] Switch dependency resolution workflow to push triggers (#23367) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Switch dependency resolution workflow to push triggers The previous fix in #23363 kept the workflow on `pull_request` and filtered paths, but `pull_request` evaluates paths against the full PR diff (three-dot). A PR that legitimately bumps a dependency has `agent_requirements.in` in its diff forever, so every bot auto-commit to `.deps/resolved/*` still retriggers the workflow — the loop never breaks. Switch to `push`, which evaluates paths against the push delta (two-dot). The bot's publish commit only touches `.deps/resolved/*`, which is not in the paths filter, so it cannot retrigger. `branches-ignore` excludes master, 7.x release branches, and merge-queue refs. The workflow is not a required status check for the merge queue, so no `merge_group` trigger is needed. Along the way: - Concurrency group keyed on `github.ref` (push has no PR number). - Drop the fork check on the `test` job (push doesn't fire for forks). - Replace the `git diff` builder-change detection with `dorny/paths-filter`, which handles push/PR diff bases natively and matches the pattern already used in `pr-quick-check.yml`. - Publish job checks out `github.ref_name` instead of `github.head_ref`. * Update dependency resolution * Gate builder rebuilds on a content hash of their inputs Codex flagged that the previous builder-change detection — whether the old `git diff origin/$base_ref...HEAD -- .builders/` or the `dorny/paths-filter` replacement in this PR — compares against the repository default branch on push events, which incorrectly handles 7.x backport branches. A backport whose target is 7.x can report `builder_changed=false` when its `.builders/` differs from master but matches its actual target. Replace the git-diff heuristic with a direct content hash: compute a sha256 of the inputs that determine each builder image from the working tree, and compare to a value pinned in .deps/builder_inputs.toml. This answers the semantically correct question ("does the current tree produce a different image than the one pinned?") and is immune to base-branch guessing, rebases, and backport flows. - .builders/inputs_hash.py: `compute ` / `pinned `. - .deps/builder_inputs.toml: pinned hashes, rewritten by upload.py. - .builders/upload.py: writes builder_inputs.toml alongside image_digests.json; reads per-target `inputs_sha256` files from the workflow output directory. - Workflow: replaces the paths-filter step with the hash comparison and stamps `inputs_sha256` next to `image_digest` so upload.py can persist it. * some doxx * Update dependency resolution * Make the builder inputs hash OS-agnostic and visible in CI logs The first CI run on this PR rebuilt only the Windows image even though .builders/ was unchanged. The Linux runners computed the same hash as my local macOS backfill, but the Windows runner did not, so the gate mistakenly declared a change. Most likely cause: actions/checkout on the Windows runner materializes text files with CRLF despite `.gitattributes` specifying `eol=lf`. Normalize by stripping all `\r` bytes before hashing so the hash is invariant across OSes and checkout configurations. Revert the Windows pinned value to the normalized one so the next push doesn't force another rebuild. Also echo the current and pinned hashes plus the decision, so the reason a rebuild did or didn't happen is visible in the run log rather than being hidden behind $GITHUB_OUTPUT. * Sort hash inputs by POSIX path string, not Path object Codex correctly identified why the Windows image rebuilt on the first run: sorting `Path` objects yields host-dependent order. WindowsPath's comparison is case-insensitive and uses backslashes, so on the Windows runner `Dockerfile` and `build_script.ps1` sorted in the opposite order from macOS/Linux. Feeding the same bytes through the hash in a different order produces a different digest. Simulated the Windows sort order locally and reproduced the exact 24b218ce… hash CI computed — confirms this, not line endings, is the cause. Sort by the normalized POSIX path string instead so the iteration order is invariant across hosts. * Update dependency resolution * Harden inputs_hash.py against silent drift and dev/CI divergence - Warn when a COMMON_INPUTS entry matches zero files (catches typos/renames). - Ignore dotfiles and __pycache__ in _iter_files so stray local artifacts (editor metadata, cached bytecode) don't change the hash off-CI. Keep .gitkeep since it's intentional placeholder content. - Wrap tomllib.load with a RuntimeError that names the file, since builder_inputs.toml is explicitly not for hand-edits. - Warn when the pinned file exists but has no entry for the target, so a rebuild in that case has a debuggable breadcrumb instead of silently looking like a first-run. - Add Iterator[Path] return annotation on _iter_files. Co-Authored-By: Claude Opus 4.7 (1M context) --------- Co-authored-by: dd-agent-integrations-bot[bot] Co-authored-by: Claude Opus 4.7 (1M context) --- .builders/inputs_hash.py | 164 ++++++++++++++++++++++ .builders/upload.py | 34 ++++- .deps/builder_inputs.toml | 16 +++ .deps/image_digests.json | 2 +- .deps/resolved/linux-aarch64_3.13.txt | 38 ++--- .deps/resolved/linux-x86_64_3.13.txt | 38 ++--- .deps/resolved/macos-aarch64_3.13.txt | 30 ++-- .deps/resolved/macos-x86_64_3.13.txt | 30 ++-- .deps/resolved/windows-x86_64_3.13.txt | 34 ++--- .github/workflows/resolve-build-deps.yaml | 52 ++++--- 10 files changed, 329 insertions(+), 109 deletions(-) create mode 100644 .builders/inputs_hash.py create mode 100644 .deps/builder_inputs.toml diff --git a/.builders/inputs_hash.py b/.builders/inputs_hash.py new file mode 100644 index 0000000000000..3b92ad4f671fb --- /dev/null +++ b/.builders/inputs_hash.py @@ -0,0 +1,164 @@ +"""Content-hash the inputs that determine each builder container image. + +The `Resolve Dependencies and Build Wheels` workflow uses these hashes to +decide whether to rebuild a builder image from scratch, or pull the existing +one by digest from .deps/image_digests.json. The pinned hashes live in +.deps/builder_inputs.toml and are rewritten by .builders/upload.py whenever +dependency resolution publishes new artifacts. + +A "target" is one of the builder image names we maintain — one per +(OS, CPU architecture) pair that the Agent ships Python wheels for. +The names match the subdirectories of .builders/images/, for example: +`linux-x86_64`, `linux-aarch64`, `windows-x86_64`. +""" +from __future__ import annotations + +import argparse +import sys +import tomllib +from collections.abc import Iterator +from hashlib import sha256 +from pathlib import Path + +HERE = Path(__file__).parent +PINNED_FILE = HERE.parent / '.deps' / 'builder_inputs.toml' + +# Files and directories whose contents determine a builder image. A change to +# any of these should force a rebuild. Paths are relative to .builders/ and +# are shared across all targets; per-target inputs live under images//. +# If you add a new input under .builders/ that affects image contents, add it here. +COMMON_INPUTS = [ + 'build.py', + 'deps/build_dependencies.txt', + 'scripts', + 'patches', + 'images/helpers.ps1', + 'images/install-from-source.sh', + 'images/runner_dependencies.txt', +] + + +def _iter_files(root: Path) -> Iterator[Path]: + if root.is_file(): + yield root + elif root.is_dir(): + for path in root.rglob('*'): + rel_parts = path.relative_to(root).parts + if path.is_file() and not any(_is_ignored(part) for part in rel_parts): + yield path + + +def _is_ignored(name: str) -> bool: + if name == '.gitkeep': + return False + return name.startswith('.') or name == '__pycache__' + + +def compute(target: str) -> str: + """Hash the working-tree inputs for `target` and return hex sha256.""" + target_dir = HERE / 'images' / target + if not target_dir.is_dir(): + raise FileNotFoundError(f'Unknown builder target: {target} (expected {target_dir})') + + paths: set[Path] = set() + for rel in COMMON_INPUTS: + files = list(_iter_files(HERE / rel)) + if not files: + print(f'warning: {rel} matched no files under {HERE}', file=sys.stderr) + paths.update(files) + paths.update(_iter_files(target_dir)) + + # Sort by the relative POSIX path string, not by Path objects: WindowsPath + # sorting is case-insensitive and uses backslashes, which produces a + # different iteration order (and therefore a different hash) than on + # POSIX systems for the same input set. + sorted_paths = sorted(paths, key=lambda p: p.relative_to(HERE).as_posix()) + + digest = sha256() + for path in sorted_paths: + rel_path = path.relative_to(HERE).as_posix().encode('utf-8') + digest.update(rel_path + b'\0') + digest.update(path.read_bytes()) + digest.update(b'\0') + return digest.hexdigest() + + +def pinned(target: str) -> str: + """Return the hash pinned for `target` in builder_inputs.toml, or empty if absent.""" + if not PINNED_FILE.is_file(): + print(f'{PINNED_FILE} not found; treating as unpinned', file=sys.stderr) + return '' + try: + with PINNED_FILE.open('rb') as f: + data = tomllib.load(f) + except tomllib.TOMLDecodeError as e: + raise RuntimeError(f'{PINNED_FILE} is malformed (it should not be edited by hand): {e}') from e + inputs = data.get('inputs', {}) + if target not in inputs: + print(f'{PINNED_FILE}: no entry for {target}; treating as unpinned', file=sys.stderr) + return inputs.get(target, '') + + +def main() -> None: + parser = argparse.ArgumentParser( + description=( + 'Gate rebuilds of the builder container images. The resolve-build-deps ' + 'workflow compares the working-tree hash against the pinned hash to ' + 'decide whether to rebuild from scratch or pull the existing image.' + ), + epilog=( + 'A "target" is a builder image name matching a subdirectory of ' + '.builders/images/ (e.g. linux-x86_64, linux-aarch64, windows-x86_64).\n\n' + 'Examples:\n' + ' python .builders/inputs_hash.py compute linux-x86_64\n' + ' python .builders/inputs_hash.py pinned linux-x86_64\n' + ' diff <(… compute linux-x86_64) <(… pinned linux-x86_64)' + ), + formatter_class=argparse.RawDescriptionHelpFormatter, + ) + subparsers = parser.add_subparsers(dest='command', required=True) + + compute_parser = subparsers.add_parser( + 'compute', + help='Hash the working-tree inputs for a target.', + description=( + 'Answers "would the current tree produce a different image than ' + 'the one we have pinned?". Run this against the checked-out tree ' + 'and compare to `pinned` — a mismatch means the image needs a rebuild.' + ), + epilog=( + 'Examples:\n' + ' python .builders/inputs_hash.py compute linux-x86_64\n' + ' python .builders/inputs_hash.py compute windows-x86_64' + ), + formatter_class=argparse.RawDescriptionHelpFormatter, + ) + compute_parser.add_argument('target', help='Builder image name (e.g. linux-x86_64).') + + pinned_parser = subparsers.add_parser( + 'pinned', + help='Print the hash pinned for a target in .deps/builder_inputs.toml.', + description=( + 'Answers "which inputs produced the image we are pulling today?". ' + 'Returns an empty string when the file or entry is missing, so a ' + 'naive string compare with `compute` correctly flags first-run and ' + 'never-built targets as needing a rebuild.' + ), + epilog=( + 'Examples:\n' + ' python .builders/inputs_hash.py pinned linux-x86_64\n' + ' python .builders/inputs_hash.py pinned windows-x86_64' + ), + formatter_class=argparse.RawDescriptionHelpFormatter, + ) + pinned_parser.add_argument('target', help='Builder image name (e.g. linux-x86_64).') + + args = parser.parse_args() + if args.command == 'compute': + sys.stdout.write(compute(args.target)) + elif args.command == 'pinned': + sys.stdout.write(pinned(args.target)) + + +if __name__ == '__main__': + main() diff --git a/.builders/upload.py b/.builders/upload.py index 6b8ea1ffdf1f7..3155ed7b0fa36 100644 --- a/.builders/upload.py +++ b/.builders/upload.py @@ -288,21 +288,51 @@ def generate_lockfiles(targets_dir, lockfiles): f.write(f'{contents}\n') image_digests = {} + builder_inputs = {} for target_name, lockfile_lines in lockfiles.items(): # The lockfiles contain the major.minor Python version # so that the Agent can transition safely lock_file = LOCK_FILE_DIR / f'{target_name}_{CURRENT_PYTHON_VERSION}.txt' lock_file.write_text('\n'.join(lockfile_lines), encoding='utf-8') - # these `image_digest` files are generated in the 'Save new image digest' - # step of the github workflow + # The `image_digest` and `inputs_sha256` files are written by the + # 'Save new image digest' / 'Persist current image digest' steps of + # the github workflow; macOS targets don't produce them. if (image_digest_file := targets_dir / target_name / 'image_digest').is_file(): image_digests[target_name] = image_digest_file.read_text(encoding='utf-8').strip() + if (inputs_hash_file := targets_dir / target_name / 'inputs_sha256').is_file(): + builder_inputs[target_name] = inputs_hash_file.read_text(encoding='utf-8').strip() with RESOLUTION_DIR.joinpath('image_digests.json').open('w', encoding='utf-8') as f: contents = json.dumps(image_digests, indent=2, sort_keys=True) f.write(f'{contents}\n') + _write_builder_inputs(RESOLUTION_DIR / 'builder_inputs.toml', builder_inputs) + + +_BUILDER_INPUTS_HEADER = """\ +# Content hashes of the inputs that determine each builder image. +# +# The `Resolve Dependencies and Build Wheels` workflow compares these +# hashes against hashes computed from the working tree (via +# .builders/inputs_hash.py) to decide whether to rebuild a builder image +# from scratch or pull the existing one by digest from image_digests.json. +# +# This file is rewritten by .builders/upload.py whenever dependency +# resolution publishes new artifacts and should not be edited by hand. +# The set of files covered by each hash is defined by COMMON_INPUTS in +# .builders/inputs_hash.py plus everything under .builders/images//. + +[inputs] +""" + + +def _write_builder_inputs(path: Path, hashes: dict[str, str]) -> None: + lines = [_BUILDER_INPUTS_HEADER.rstrip('\n')] + for target in sorted(hashes): + lines.append(f'{target} = "{hashes[target]}"') + path.write_text('\n'.join(lines) + '\n', encoding='utf-8') + def upload(targets_dir: Path, bucket: Bucket | None = None) -> dict[str, list[str]]: bucket = bucket or Bucket(BUCKET_NAME) diff --git a/.deps/builder_inputs.toml b/.deps/builder_inputs.toml new file mode 100644 index 0000000000000..2dfbe5a814928 --- /dev/null +++ b/.deps/builder_inputs.toml @@ -0,0 +1,16 @@ +# Content hashes of the inputs that determine each builder image. +# +# The `Resolve Dependencies and Build Wheels` workflow compares these +# hashes against hashes computed from the working tree (via +# .builders/inputs_hash.py) to decide whether to rebuild a builder image +# from scratch or pull the existing one by digest from image_digests.json. +# +# This file is rewritten by .builders/upload.py whenever dependency +# resolution publishes new artifacts and should not be edited by hand. +# The set of files covered by each hash is defined by COMMON_INPUTS in +# .builders/inputs_hash.py plus everything under .builders/images//. + +[inputs] +linux-aarch64 = "e48bf769667a4f30addf317d2b889aea045e025b981276a5cbfdf5b53ae86ca8" +linux-x86_64 = "5e769b5c5678a0c578bbaf2289a8359ade8f3420de2a7f7ed3c09217866014c7" +windows-x86_64 = "beba3774e0929bc4f9377cabcde2f797a83309d88be329154b3e099961c95884" diff --git a/.deps/image_digests.json b/.deps/image_digests.json index 253f20cf1ddca..a40766f7f01f8 100644 --- a/.deps/image_digests.json +++ b/.deps/image_digests.json @@ -1,5 +1,5 @@ { "linux-aarch64": "sha256:223fa103a2f1b67c98d2c15a250a9eec39b6b1768011096260f6e12cef1870c4", "linux-x86_64": "sha256:7dca4137ffe24807e2e5ffafb4d50dbd9a201534c1c5e072618075d378e9b975", - "windows-x86_64": "sha256:ad7d49d4cef858824a652547291553fa99d220992024421e0618a59e87f96718" + "windows-x86_64": "sha256:ee9772fc71d78c232f6315e9609cf78a78213200ca24bcc55040f18d8e63313f" } diff --git a/.deps/resolved/linux-aarch64_3.13.txt b/.deps/resolved/linux-aarch64_3.13.txt index 2b7c32251b1c6..bdac0ff4c2461 100644 --- a/.deps/resolved/linux-aarch64_3.13.txt +++ b/.deps/resolved/linux-aarch64_3.13.txt @@ -1,30 +1,30 @@ -aerospike @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/aerospike/aerospike-7.1.1-20260326173356-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=a1de7c7019b1dd5363cdd1a838ba92185418a114be9b59f902e8aef66326c4ea -botocore @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/botocore/botocore-1.42.72-20260417115331-py3-none-any.whl#sha256=f1933a8ca6c1108ed23f7b01f82577327fc254e330025887fdd4ba17db03e8e2 +aerospike @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/aerospike/aerospike-7.1.1-20260418125217-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=a1de7c7019b1dd5363cdd1a838ba92185418a114be9b59f902e8aef66326c4ea +botocore @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/botocore/botocore-1.42.72-20260420123342-py3-none-any.whl#sha256=f1933a8ca6c1108ed23f7b01f82577327fc254e330025887fdd4ba17db03e8e2 cm-client @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/cm-client/cm_client-45.0.4-20260326173357-py3-none-manylinux2014_aarch64.whl#sha256=0bbcf2766028850c26a917deef3704a096cc9ba0c25220d45ff424334d25dcd7 -confluent-kafka @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/confluent-kafka/confluent_kafka-2.13.2-20260417115756-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=92b07f252810125c0d378a307a1cc7d76258eb4d44816d77aa9d85068a26b63e -cryptography @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/cryptography/cryptography-46.0.6-20260417115757-cp313-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=c990c5a361825d4462e2899b6d4d0647eb34d5a7f05b5199783777548ded89b7 +confluent-kafka @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/confluent-kafka/confluent_kafka-2.13.2-20260420124718-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=1d68f453308b86d7234cb8bd9c46942e63f7a456dc8c392e98ebcf43ce2e2cbb +cryptography @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/cryptography/cryptography-46.0.6-20260420124721-cp313-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=32260110ead1ea0dadf90f9b76c6756d1060c67385fff3e8f0c607ee28e0d3ba ddtrace @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/ddtrace/ddtrace-3.19.5-20260417115249-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl#sha256=a4f8d07adccdd43908156ab2c143dbb6261ed9a3c43ba58a3bb6bd1b6ef94734 foundationdb @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/foundationdb/foundationdb-6.3.25-20260326173358-py3-none-manylinux2014_aarch64.whl#sha256=d34180500220db4458e57505c774de0363456d4129f0e3fe98c9e99e8eef77c2 -gssapi @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/gssapi/gssapi-1.11.1-20260417115758-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=95e5e8521bb191907748a7360ffd025398aa861cb47014c551384380d52be412 -keystoneauth1 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/keystoneauth1/keystoneauth1-5.13.1-20260417115333-py3-none-any.whl#sha256=a15092187950de965ff6096e203d31e461c61cfd47ec1f5249a0e2955187cba2 -krb5 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/krb5/krb5-0.9.0-20260417115759-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=9700f818130cf996f844203d60c9e41b95700a90916c9ef39b008166ba6c9f71 -openstacksdk @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/openstacksdk/openstacksdk-4.10.0-20260417115334-py3-none-any.whl#sha256=88abe8f44e3b8c5c25b1093de735c700aa727a7ac408e273aa855d6db6ba38bf -os-service-types @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/os-service-types/os_service_types-1.8.2-20260417115334-py3-none-any.whl#sha256=758ccaa020eea0edd84bcf4123746ddd060d1dbaeef63d04d76bd2e0ae6f91d8 -pbr @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pbr/pbr-7.0.3-20260417115335-py2.py3-none-any.whl#sha256=1544652b80307f0b4c491bd66f58f969cb0656994e632365f90e8e044c223b4e +gssapi @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/gssapi/gssapi-1.11.1-20260420112228-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=95e5e8521bb191907748a7360ffd025398aa861cb47014c551384380d52be412 +keystoneauth1 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/keystoneauth1/keystoneauth1-5.13.1-20260420123239-py3-none-any.whl#sha256=a15092187950de965ff6096e203d31e461c61cfd47ec1f5249a0e2955187cba2 +krb5 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/krb5/krb5-0.9.0-20260420112240-cp311-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=9700f818130cf996f844203d60c9e41b95700a90916c9ef39b008166ba6c9f71 +openstacksdk @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/openstacksdk/openstacksdk-4.10.0-20260420123407-py3-none-any.whl#sha256=88abe8f44e3b8c5c25b1093de735c700aa727a7ac408e273aa855d6db6ba38bf +os-service-types @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/os-service-types/os_service_types-1.8.2-20260420123254-py3-none-any.whl#sha256=758ccaa020eea0edd84bcf4123746ddd060d1dbaeef63d04d76bd2e0ae6f91d8 +pbr @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pbr/pbr-7.0.3-20260420123308-py2.py3-none-any.whl#sha256=1544652b80307f0b4c491bd66f58f969cb0656994e632365f90e8e044c223b4e psutil @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/psutil/psutil-6.0.0-20260326173401-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=22e075e3cbc57b5da0d93f72f691746c5198ce88c5aea6fdb54186b3e8c46832 -psycopg-c @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/psycopg-c/psycopg_c-3.3.3-20260415154515-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=e9a6db500356a67b07cf971b394b92445797d608578961cd2c931ec1d61567b9 +psycopg-c @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/psycopg-c/psycopg_c-3.3.3-20260418125308-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=e9a6db500356a67b07cf971b394b92445797d608578961cd2c931ec1d61567b9 pymongo @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pymongo/pymongo-4.8.0-20260415154515-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=30d8af4ef8fda85d1a865bdb254e6b2e3988f26b723eb39a4843c766371ff517 pyodbc @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pyodbc/pyodbc-5.3.0-20260415154516-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=91a4191cf30930755d82e8edd6ac861443dfb6fbbf7915753b73209038ad5ad2 -pysnmp-mibs @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pysnmp-mibs/pysnmp_mibs-0.1.6-20260417115336-py2.py3-none-any.whl#sha256=0cc4610711208cdc64361464a23d1f2dce88ec5990a12b4bdce4f13b6a169810 +pysnmp-mibs @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pysnmp-mibs/pysnmp_mibs-0.1.6-20260420123322-py2.py3-none-any.whl#sha256=0cc4610711208cdc64361464a23d1f2dce88ec5990a12b4bdce4f13b6a169810 pyvmomi @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pyvmomi/pyvmomi-8.0.3.0.1-20260326173403-py2.py3-none-manylinux2014_aarch64.whl#sha256=dd71476b7308286ed4219373ca9523e4f06bfed3f5932f60e5c67d8d5a673e1e -requests-unixsocket2 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/requests-unixsocket2/requests_unixsocket2-1.0.1-20260417115337-py3-none-any.whl#sha256=aae3f1743ab60955ea91e9a095d54997ea56b956bab652bf194379ef4dc6fa7f -securesystemslib @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/securesystemslib/securesystemslib-0.28.0-20260417115338-py3-none-any.whl#sha256=861ab6f8c1930e0c05915f32a34f1c4ae1d76ee542ad2b424121e3e26a9fb1dd -setuptools @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/setuptools/setuptools-82.0.1-20260417115339-py3-none-any.whl#sha256=b020c62c9ea6c1c3e7a29a8e385967909ceb85a77398f7fbe3c63e2abab52e87 +requests-unixsocket2 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/requests-unixsocket2/requests_unixsocket2-1.0.1-20260420123336-py3-none-any.whl#sha256=aae3f1743ab60955ea91e9a095d54997ea56b956bab652bf194379ef4dc6fa7f +securesystemslib @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/securesystemslib/securesystemslib-0.28.0-20260420123349-py3-none-any.whl#sha256=861ab6f8c1930e0c05915f32a34f1c4ae1d76ee542ad2b424121e3e26a9fb1dd +setuptools @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/setuptools/setuptools-82.0.1-20260420123403-py3-none-any.whl#sha256=b020c62c9ea6c1c3e7a29a8e385967909ceb85a77398f7fbe3c63e2abab52e87 simplejson @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/simplejson/simplejson-3.20.2-20260326173404-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl#sha256=cb739020a718c2e32041a0fa0a3f79398f45c067347fe8f286c8222fa777bc5d -stevedore @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/stevedore/stevedore-5.7.0-20260417115339-py3-none-any.whl#sha256=0cf2a7cb9c915eddc77a591df48e8ab78f93167e8ac77d0efb04eb375f91d8b2 -supervisor @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/supervisor/supervisor-4.3.0-20260417115340-py2.py3-none-any.whl#sha256=81d63e968a5133203a334102b8e6e72b1f5ecfc9673c1af7680f9f7e0db8d4fd -vertica-python @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/vertica-python/vertica_python-1.4.0-20260417115341-py3-none-any.whl#sha256=df8d667b7bd070532a72c25f37e7259d3673c1908ae726fdfb3087d777caa9da -websocket-client @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/websocket-client/websocket_client-1.9.0-20260417115342-py3-none-any.whl#sha256=b628876a9b1eed1d49f1a230bf4b1c21fa3cd9163594f9f9628c8a8b22f97e10 +stevedore @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/stevedore/stevedore-5.7.0-20260420123417-py3-none-any.whl#sha256=0cf2a7cb9c915eddc77a591df48e8ab78f93167e8ac77d0efb04eb375f91d8b2 +supervisor @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/supervisor/supervisor-4.3.0-20260420123430-py2.py3-none-any.whl#sha256=81d63e968a5133203a334102b8e6e72b1f5ecfc9673c1af7680f9f7e0db8d4fd +vertica-python @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/vertica-python/vertica_python-1.4.0-20260420123444-py3-none-any.whl#sha256=df8d667b7bd070532a72c25f37e7259d3673c1908ae726fdfb3087d777caa9da +websocket-client @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/websocket-client/websocket_client-1.9.0-20260420123458-py3-none-any.whl#sha256=b628876a9b1eed1d49f1a230bf4b1c21fa3cd9163594f9f9628c8a8b22f97e10 annotated-types @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/external/annotated-types/annotated_types-0.7.0-py3-none-any.whl#sha256=1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53 attrs @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/external/attrs/attrs-26.1.0-py3-none-any.whl#sha256=c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309 aws-msk-iam-sasl-signer-python @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/external/aws-msk-iam-sasl-signer-python/aws_msk_iam_sasl_signer_python-1.0.2-py2.py3-none-any.whl#sha256=310eb2db9ca0ff55ed06a24212739b87533e7f1cf6f34e43aabbd97a3b21290e diff --git a/.deps/resolved/linux-x86_64_3.13.txt b/.deps/resolved/linux-x86_64_3.13.txt index c6a0d94806cf6..835c629c1a657 100644 --- a/.deps/resolved/linux-x86_64_3.13.txt +++ b/.deps/resolved/linux-x86_64_3.13.txt @@ -1,31 +1,31 @@ -aerospike @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/aerospike/aerospike-7.1.1-20260326173305-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=611776d7bc950a342e16b75973aadc0bf11280666055d4d868bac6d160e7164d -botocore @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/botocore/botocore-1.42.72-20260417115846-py3-none-any.whl#sha256=f1933a8ca6c1108ed23f7b01f82577327fc254e330025887fdd4ba17db03e8e2 +aerospike @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/aerospike/aerospike-7.1.1-20260418130014-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=611776d7bc950a342e16b75973aadc0bf11280666055d4d868bac6d160e7164d +botocore @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/botocore/botocore-1.42.72-20260420125129-py3-none-any.whl#sha256=f1933a8ca6c1108ed23f7b01f82577327fc254e330025887fdd4ba17db03e8e2 cm-client @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/cm-client/cm_client-45.0.4-20260326173305-py3-none-manylinux2014_x86_64.whl#sha256=0bbcf2766028850c26a917deef3704a096cc9ba0c25220d45ff424334d25dcd7 -confluent-kafka @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/confluent-kafka/confluent_kafka-2.13.2-20260417115906-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=687e59b819bd3bca85539d739c3272db79bda62db33ac09d668ceb4646b33d95 -cryptography @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/cryptography/cryptography-46.0.6-20260417115907-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=3cb48817eed81e69a6c20e01c6b9c2303d77e9b69cefe68230e17fdbc5ede807 +confluent-kafka @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/confluent-kafka/confluent_kafka-2.13.2-20260420125254-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=dd4790ad0949f1cf28634a91d5843b1df315b2bcf896eb4d7319b926e96e4611 +cryptography @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/cryptography/cryptography-46.0.6-20260420125257-cp313-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=a3d5b16c3fe497b91ced78f861e92611adc623285e2de6b23e6622114e4ae82c ddtrace @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/ddtrace/ddtrace-3.19.5-20260417115349-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl#sha256=e0aa298cfd1947902fed35d8fa6129c90f6d5e687328b0cba6fe137714198608 foundationdb @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/foundationdb/foundationdb-6.3.25-20260326173307-py3-none-manylinux2014_x86_64.whl#sha256=d34180500220db4458e57505c774de0363456d4129f0e3fe98c9e99e8eef77c2 -gssapi @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/gssapi/gssapi-1.11.1-20260417115908-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=9cf9e44ae3c9adbf681ab815511ce6c274f6403f106fc8e8e73eaa9268a0913f -keystoneauth1 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/keystoneauth1/keystoneauth1-5.13.1-20260417115848-py3-none-any.whl#sha256=a15092187950de965ff6096e203d31e461c61cfd47ec1f5249a0e2955187cba2 -krb5 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/krb5/krb5-0.9.0-20260417115909-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=082536495ab7afb814a87311d3f5000b1d85b5afe19c5f52e8ea98c1da9c0df0 -openstacksdk @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/openstacksdk/openstacksdk-4.10.0-20260417115849-py3-none-any.whl#sha256=88abe8f44e3b8c5c25b1093de735c700aa727a7ac408e273aa855d6db6ba38bf -os-service-types @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/os-service-types/os_service_types-1.8.2-20260417115850-py3-none-any.whl#sha256=758ccaa020eea0edd84bcf4123746ddd060d1dbaeef63d04d76bd2e0ae6f91d8 -pbr @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pbr/pbr-7.0.3-20260417115851-py2.py3-none-any.whl#sha256=1544652b80307f0b4c491bd66f58f969cb0656994e632365f90e8e044c223b4e +gssapi @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/gssapi/gssapi-1.11.1-20260418130032-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=9cf9e44ae3c9adbf681ab815511ce6c274f6403f106fc8e8e73eaa9268a0913f +keystoneauth1 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/keystoneauth1/keystoneauth1-5.13.1-20260420125136-py3-none-any.whl#sha256=a15092187950de965ff6096e203d31e461c61cfd47ec1f5249a0e2955187cba2 +krb5 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/krb5/krb5-0.9.0-20260418130041-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=082536495ab7afb814a87311d3f5000b1d85b5afe19c5f52e8ea98c1da9c0df0 +openstacksdk @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/openstacksdk/openstacksdk-4.10.0-20260420125142-py3-none-any.whl#sha256=88abe8f44e3b8c5c25b1093de735c700aa727a7ac408e273aa855d6db6ba38bf +os-service-types @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/os-service-types/os_service_types-1.8.2-20260420125148-py3-none-any.whl#sha256=758ccaa020eea0edd84bcf4123746ddd060d1dbaeef63d04d76bd2e0ae6f91d8 +pbr @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pbr/pbr-7.0.3-20260420125154-py2.py3-none-any.whl#sha256=1544652b80307f0b4c491bd66f58f969cb0656994e632365f90e8e044c223b4e psutil @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/psutil/psutil-6.0.0-20260326173308-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=af8dd07e6f1bf1d41381ad59dff0a0a36153c7dd5a69becc765010329f17db01 -psycopg-c @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/psycopg-c/psycopg_c-3.3.3-20260415154629-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=1381485b44a98283661adeee3aae934dc1275eef8f62c8cedce46ffa750708d2 +psycopg-c @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/psycopg-c/psycopg_c-3.3.3-20260418130105-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=1381485b44a98283661adeee3aae934dc1275eef8f62c8cedce46ffa750708d2 pymongo @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pymongo/pymongo-4.8.0-20260415154630-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=a0bc69dc57d3ba6db1fc23ac471ddd5edeeef737fef8e912b0b96126f0b13a8c pymqi @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pymqi/pymqi-1.12.13-20260326173310-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=20b5e67134719cae77a2b6c20da5219931b3735e30538567fb2b73e34219203b pyodbc @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pyodbc/pyodbc-5.3.0-20260415154630-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=80d6bdc8ba09a778205c68493fa72a44a599fd8c31803a4f4d4e3bcf1f2284fe -pysnmp-mibs @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pysnmp-mibs/pysnmp_mibs-0.1.6-20260417115852-py2.py3-none-any.whl#sha256=0cc4610711208cdc64361464a23d1f2dce88ec5990a12b4bdce4f13b6a169810 +pysnmp-mibs @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pysnmp-mibs/pysnmp_mibs-0.1.6-20260420125200-py2.py3-none-any.whl#sha256=0cc4610711208cdc64361464a23d1f2dce88ec5990a12b4bdce4f13b6a169810 pyvmomi @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pyvmomi/pyvmomi-8.0.3.0.1-20260326173310-py2.py3-none-manylinux2014_x86_64.whl#sha256=dd71476b7308286ed4219373ca9523e4f06bfed3f5932f60e5c67d8d5a673e1e -requests-unixsocket2 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/requests-unixsocket2/requests_unixsocket2-1.0.1-20260417115853-py3-none-any.whl#sha256=aae3f1743ab60955ea91e9a095d54997ea56b956bab652bf194379ef4dc6fa7f -securesystemslib @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/securesystemslib/securesystemslib-0.28.0-20260417115854-py3-none-any.whl#sha256=861ab6f8c1930e0c05915f32a34f1c4ae1d76ee542ad2b424121e3e26a9fb1dd -setuptools @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/setuptools/setuptools-82.0.1-20260417115855-py3-none-any.whl#sha256=b020c62c9ea6c1c3e7a29a8e385967909ceb85a77398f7fbe3c63e2abab52e87 +requests-unixsocket2 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/requests-unixsocket2/requests_unixsocket2-1.0.1-20260420125206-py3-none-any.whl#sha256=aae3f1743ab60955ea91e9a095d54997ea56b956bab652bf194379ef4dc6fa7f +securesystemslib @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/securesystemslib/securesystemslib-0.28.0-20260420125212-py3-none-any.whl#sha256=861ab6f8c1930e0c05915f32a34f1c4ae1d76ee542ad2b424121e3e26a9fb1dd +setuptools @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/setuptools/setuptools-82.0.1-20260420125218-py3-none-any.whl#sha256=b020c62c9ea6c1c3e7a29a8e385967909ceb85a77398f7fbe3c63e2abab52e87 simplejson @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/simplejson/simplejson-3.20.2-20260326173311-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl#sha256=dec16958f71ce93ac1c2fdc212800892ca22a9e90efcab5b5e01d121146cc5cc -stevedore @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/stevedore/stevedore-5.7.0-20260417115856-py3-none-any.whl#sha256=0cf2a7cb9c915eddc77a591df48e8ab78f93167e8ac77d0efb04eb375f91d8b2 -supervisor @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/supervisor/supervisor-4.3.0-20260417115857-py2.py3-none-any.whl#sha256=81d63e968a5133203a334102b8e6e72b1f5ecfc9673c1af7680f9f7e0db8d4fd -vertica-python @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/vertica-python/vertica_python-1.4.0-20260417115858-py3-none-any.whl#sha256=df8d667b7bd070532a72c25f37e7259d3673c1908ae726fdfb3087d777caa9da -websocket-client @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/websocket-client/websocket_client-1.9.0-20260417115859-py3-none-any.whl#sha256=b628876a9b1eed1d49f1a230bf4b1c21fa3cd9163594f9f9628c8a8b22f97e10 +stevedore @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/stevedore/stevedore-5.7.0-20260420125224-py3-none-any.whl#sha256=0cf2a7cb9c915eddc77a591df48e8ab78f93167e8ac77d0efb04eb375f91d8b2 +supervisor @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/supervisor/supervisor-4.3.0-20260420125230-py2.py3-none-any.whl#sha256=81d63e968a5133203a334102b8e6e72b1f5ecfc9673c1af7680f9f7e0db8d4fd +vertica-python @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/vertica-python/vertica_python-1.4.0-20260420125236-py3-none-any.whl#sha256=df8d667b7bd070532a72c25f37e7259d3673c1908ae726fdfb3087d777caa9da +websocket-client @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/websocket-client/websocket_client-1.9.0-20260420125242-py3-none-any.whl#sha256=b628876a9b1eed1d49f1a230bf4b1c21fa3cd9163594f9f9628c8a8b22f97e10 annotated-types @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/external/annotated-types/annotated_types-0.7.0-py3-none-any.whl#sha256=1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53 attrs @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/external/attrs/attrs-26.1.0-py3-none-any.whl#sha256=c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309 aws-msk-iam-sasl-signer-python @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/external/aws-msk-iam-sasl-signer-python/aws_msk_iam_sasl_signer_python-1.0.2-py2.py3-none-any.whl#sha256=310eb2db9ca0ff55ed06a24212739b87533e7f1cf6f34e43aabbd97a3b21290e diff --git a/.deps/resolved/macos-aarch64_3.13.txt b/.deps/resolved/macos-aarch64_3.13.txt index 6e9024be5fe0c..5ca54f6eba49f 100644 --- a/.deps/resolved/macos-aarch64_3.13.txt +++ b/.deps/resolved/macos-aarch64_3.13.txt @@ -1,28 +1,28 @@ -botocore @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/botocore/botocore-1.42.72-20260417115331-py3-none-any.whl#sha256=f1933a8ca6c1108ed23f7b01f82577327fc254e330025887fdd4ba17db03e8e2 +botocore @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/botocore/botocore-1.42.72-20260420123342-py3-none-any.whl#sha256=f1933a8ca6c1108ed23f7b01f82577327fc254e330025887fdd4ba17db03e8e2 cm-client @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/cm-client/cm_client-45.0.4-20260326173218-py3-none-macosx_12_0_universal2.whl#sha256=0bbcf2766028850c26a917deef3704a096cc9ba0c25220d45ff424334d25dcd7 -confluent-kafka @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/confluent-kafka/confluent_kafka-2.13.2-20260415154528-cp313-cp313-macosx_12_0_arm64.whl#sha256=344f33861abc0c7392317debd7386086022672d25c978cec64fc8dcf285c542b +confluent-kafka @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/confluent-kafka/confluent_kafka-2.13.2-20260419053453-cp313-cp313-macosx_12_0_arm64.whl#sha256=344f33861abc0c7392317debd7386086022672d25c978cec64fc8dcf285c542b ddtrace @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/ddtrace/ddtrace-3.19.5-20260417115301-cp313-cp313-macosx_12_0_arm64.whl#sha256=1274db819aa41b189135f83ad2b8e37c6e26b8d2f25c60a725a01637ebd63ee4 foundationdb @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/foundationdb/foundationdb-6.3.25-20260326173219-py3-none-macosx_12_0_universal2.whl#sha256=d34180500220db4458e57505c774de0363456d4129f0e3fe98c9e99e8eef77c2 gssapi @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/gssapi/gssapi-1.11.1-20260326173323-cp311-abi3-macosx_11_0_arm64.whl#sha256=b5f5ac28470db99338814e4285a491dc218b9bee3f8d20bfa219274e84bd87c4 -keystoneauth1 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/keystoneauth1/keystoneauth1-5.13.1-20260417115333-py3-none-any.whl#sha256=a15092187950de965ff6096e203d31e461c61cfd47ec1f5249a0e2955187cba2 +keystoneauth1 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/keystoneauth1/keystoneauth1-5.13.1-20260420123239-py3-none-any.whl#sha256=a15092187950de965ff6096e203d31e461c61cfd47ec1f5249a0e2955187cba2 krb5 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/krb5/krb5-0.9.0-20260326173323-cp311-abi3-macosx_11_0_arm64.whl#sha256=47f731bebe725962f7b644e7238a4c68eca2879f6c35842babda9140f263c615 -openstacksdk @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/openstacksdk/openstacksdk-4.10.0-20260417115334-py3-none-any.whl#sha256=88abe8f44e3b8c5c25b1093de735c700aa727a7ac408e273aa855d6db6ba38bf -os-service-types @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/os-service-types/os_service_types-1.8.2-20260417115334-py3-none-any.whl#sha256=758ccaa020eea0edd84bcf4123746ddd060d1dbaeef63d04d76bd2e0ae6f91d8 -pbr @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pbr/pbr-7.0.3-20260417115335-py2.py3-none-any.whl#sha256=1544652b80307f0b4c491bd66f58f969cb0656994e632365f90e8e044c223b4e +openstacksdk @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/openstacksdk/openstacksdk-4.10.0-20260420123407-py3-none-any.whl#sha256=88abe8f44e3b8c5c25b1093de735c700aa727a7ac408e273aa855d6db6ba38bf +os-service-types @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/os-service-types/os_service_types-1.8.2-20260420123254-py3-none-any.whl#sha256=758ccaa020eea0edd84bcf4123746ddd060d1dbaeef63d04d76bd2e0ae6f91d8 +pbr @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pbr/pbr-7.0.3-20260420123308-py2.py3-none-any.whl#sha256=1544652b80307f0b4c491bd66f58f969cb0656994e632365f90e8e044c223b4e psutil @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/psutil/psutil-6.0.0-20260326173324-cp38-abi3-macosx_11_0_arm64.whl#sha256=33472398d3e6da655a430b106920164b04f036f891bd0ea803a4309ed2a80ef9 -psycopg-c @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/psycopg-c/psycopg_c-3.3.3-20260326173324-cp313-cp313-macosx_12_0_arm64.whl#sha256=2c853472bed5a003bdcfbec159bf7849d1ac7a2a3867055d0005d1aa647549cf +psycopg-c @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/psycopg-c/psycopg_c-3.3.3-20260418125458-cp313-cp313-macosx_12_0_arm64.whl#sha256=2c853472bed5a003bdcfbec159bf7849d1ac7a2a3867055d0005d1aa647549cf pymongo @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pymongo/pymongo-4.8.0-20260326173325-cp313-cp313-macosx_12_0_arm64.whl#sha256=7c94a2b73c148f84ab217ea2084d07e01e834d49244dec026b473e889016f556 pymqi @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pymqi/pymqi-1.12.13-20260326173325-cp313-cp313-macosx_12_0_arm64.whl#sha256=482b0d2593868c595ec53db794a61a792c0e1fcad04aee86db96afaadf986baf -pysnmp-mibs @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pysnmp-mibs/pysnmp_mibs-0.1.6-20260417115336-py2.py3-none-any.whl#sha256=0cc4610711208cdc64361464a23d1f2dce88ec5990a12b4bdce4f13b6a169810 +pysnmp-mibs @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pysnmp-mibs/pysnmp_mibs-0.1.6-20260420123322-py2.py3-none-any.whl#sha256=0cc4610711208cdc64361464a23d1f2dce88ec5990a12b4bdce4f13b6a169810 pyvmomi @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pyvmomi/pyvmomi-8.0.3.0.1-20260326173224-py2.py3-none-macosx_12_0_universal2.whl#sha256=dd71476b7308286ed4219373ca9523e4f06bfed3f5932f60e5c67d8d5a673e1e -requests-unixsocket2 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/requests-unixsocket2/requests_unixsocket2-1.0.1-20260417115337-py3-none-any.whl#sha256=aae3f1743ab60955ea91e9a095d54997ea56b956bab652bf194379ef4dc6fa7f -securesystemslib @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/securesystemslib/securesystemslib-0.28.0-20260417115338-py3-none-any.whl#sha256=861ab6f8c1930e0c05915f32a34f1c4ae1d76ee542ad2b424121e3e26a9fb1dd -setuptools @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/setuptools/setuptools-82.0.1-20260417115339-py3-none-any.whl#sha256=b020c62c9ea6c1c3e7a29a8e385967909ceb85a77398f7fbe3c63e2abab52e87 +requests-unixsocket2 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/requests-unixsocket2/requests_unixsocket2-1.0.1-20260420123336-py3-none-any.whl#sha256=aae3f1743ab60955ea91e9a095d54997ea56b956bab652bf194379ef4dc6fa7f +securesystemslib @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/securesystemslib/securesystemslib-0.28.0-20260420123349-py3-none-any.whl#sha256=861ab6f8c1930e0c05915f32a34f1c4ae1d76ee542ad2b424121e3e26a9fb1dd +setuptools @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/setuptools/setuptools-82.0.1-20260420123403-py3-none-any.whl#sha256=b020c62c9ea6c1c3e7a29a8e385967909ceb85a77398f7fbe3c63e2abab52e87 simplejson @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/simplejson/simplejson-3.20.2-20260326173326-cp313-cp313-macosx_11_0_arm64.whl#sha256=fc3c4e9feecd85f1831fb0983b04e7170765b5047c3c629ab97c0c49190a5da8 -stevedore @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/stevedore/stevedore-5.7.0-20260417115339-py3-none-any.whl#sha256=0cf2a7cb9c915eddc77a591df48e8ab78f93167e8ac77d0efb04eb375f91d8b2 -supervisor @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/supervisor/supervisor-4.3.0-20260417115340-py2.py3-none-any.whl#sha256=81d63e968a5133203a334102b8e6e72b1f5ecfc9673c1af7680f9f7e0db8d4fd -vertica-python @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/vertica-python/vertica_python-1.4.0-20260417115341-py3-none-any.whl#sha256=df8d667b7bd070532a72c25f37e7259d3673c1908ae726fdfb3087d777caa9da -websocket-client @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/websocket-client/websocket_client-1.9.0-20260417115342-py3-none-any.whl#sha256=b628876a9b1eed1d49f1a230bf4b1c21fa3cd9163594f9f9628c8a8b22f97e10 +stevedore @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/stevedore/stevedore-5.7.0-20260420123417-py3-none-any.whl#sha256=0cf2a7cb9c915eddc77a591df48e8ab78f93167e8ac77d0efb04eb375f91d8b2 +supervisor @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/supervisor/supervisor-4.3.0-20260420123430-py2.py3-none-any.whl#sha256=81d63e968a5133203a334102b8e6e72b1f5ecfc9673c1af7680f9f7e0db8d4fd +vertica-python @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/vertica-python/vertica_python-1.4.0-20260420123444-py3-none-any.whl#sha256=df8d667b7bd070532a72c25f37e7259d3673c1908ae726fdfb3087d777caa9da +websocket-client @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/websocket-client/websocket_client-1.9.0-20260420123458-py3-none-any.whl#sha256=b628876a9b1eed1d49f1a230bf4b1c21fa3cd9163594f9f9628c8a8b22f97e10 annotated-types @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/external/annotated-types/annotated_types-0.7.0-py3-none-any.whl#sha256=1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53 attrs @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/external/attrs/attrs-26.1.0-py3-none-any.whl#sha256=c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309 aws-msk-iam-sasl-signer-python @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/external/aws-msk-iam-sasl-signer-python/aws_msk_iam_sasl_signer_python-1.0.2-py2.py3-none-any.whl#sha256=310eb2db9ca0ff55ed06a24212739b87533e7f1cf6f34e43aabbd97a3b21290e diff --git a/.deps/resolved/macos-x86_64_3.13.txt b/.deps/resolved/macos-x86_64_3.13.txt index 23e4d94b70055..f1aa63f93f184 100644 --- a/.deps/resolved/macos-x86_64_3.13.txt +++ b/.deps/resolved/macos-x86_64_3.13.txt @@ -1,28 +1,28 @@ -botocore @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/botocore/botocore-1.42.72-20260417115846-py3-none-any.whl#sha256=f1933a8ca6c1108ed23f7b01f82577327fc254e330025887fdd4ba17db03e8e2 +botocore @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/botocore/botocore-1.42.72-20260420125129-py3-none-any.whl#sha256=f1933a8ca6c1108ed23f7b01f82577327fc254e330025887fdd4ba17db03e8e2 cm-client @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/cm-client/cm_client-45.0.4-20260326173218-py3-none-macosx_12_0_universal2.whl#sha256=0bbcf2766028850c26a917deef3704a096cc9ba0c25220d45ff424334d25dcd7 -confluent-kafka @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/confluent-kafka/confluent_kafka-2.13.2-20260415154604-cp313-cp313-macosx_12_0_x86_64.whl#sha256=e217d743a2d906dd4cbe16d711aad2bc0519772fc00891e8159f004fd33c5a5a +confluent-kafka @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/confluent-kafka/confluent_kafka-2.13.2-20260419053856-cp313-cp313-macosx_12_0_x86_64.whl#sha256=e217d743a2d906dd4cbe16d711aad2bc0519772fc00891e8159f004fd33c5a5a ddtrace @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/ddtrace/ddtrace-3.19.5-20260417115332-cp313-cp313-macosx_12_0_x86_64.whl#sha256=813c9fae90bd65d60d97e183b21dff8f9d54591a9186cf163f606fb11b7a6575 foundationdb @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/foundationdb/foundationdb-6.3.25-20260326173219-py3-none-macosx_12_0_universal2.whl#sha256=d34180500220db4458e57505c774de0363456d4129f0e3fe98c9e99e8eef77c2 gssapi @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/gssapi/gssapi-1.11.1-20260326173219-cp311-abi3-macosx_10_9_x86_64.whl#sha256=91608d102056a7768b9e572ccbe2ccbe7da84688a84f05bb8c4ea56e9d0e979d -keystoneauth1 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/keystoneauth1/keystoneauth1-5.13.1-20260417115848-py3-none-any.whl#sha256=a15092187950de965ff6096e203d31e461c61cfd47ec1f5249a0e2955187cba2 +keystoneauth1 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/keystoneauth1/keystoneauth1-5.13.1-20260420125136-py3-none-any.whl#sha256=a15092187950de965ff6096e203d31e461c61cfd47ec1f5249a0e2955187cba2 krb5 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/krb5/krb5-0.9.0-20260326173220-cp311-abi3-macosx_10_9_x86_64.whl#sha256=0fe3a687f4e9a8d305ba0183f9b8368e9ed13f4e32716ba3a14de77e12f1e978 -openstacksdk @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/openstacksdk/openstacksdk-4.10.0-20260417115849-py3-none-any.whl#sha256=88abe8f44e3b8c5c25b1093de735c700aa727a7ac408e273aa855d6db6ba38bf -os-service-types @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/os-service-types/os_service_types-1.8.2-20260417115850-py3-none-any.whl#sha256=758ccaa020eea0edd84bcf4123746ddd060d1dbaeef63d04d76bd2e0ae6f91d8 -pbr @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pbr/pbr-7.0.3-20260417115851-py2.py3-none-any.whl#sha256=1544652b80307f0b4c491bd66f58f969cb0656994e632365f90e8e044c223b4e +openstacksdk @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/openstacksdk/openstacksdk-4.10.0-20260420125142-py3-none-any.whl#sha256=88abe8f44e3b8c5c25b1093de735c700aa727a7ac408e273aa855d6db6ba38bf +os-service-types @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/os-service-types/os_service_types-1.8.2-20260420125148-py3-none-any.whl#sha256=758ccaa020eea0edd84bcf4123746ddd060d1dbaeef63d04d76bd2e0ae6f91d8 +pbr @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pbr/pbr-7.0.3-20260420125154-py2.py3-none-any.whl#sha256=1544652b80307f0b4c491bd66f58f969cb0656994e632365f90e8e044c223b4e psutil @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/psutil/psutil-6.0.0-20260326173222-cp36-abi3-macosx_10_9_x86_64.whl#sha256=81ae816033cb82995bc78424b02886430400b730698d6a7c492e3256b7854777 -psycopg-c @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/psycopg-c/psycopg_c-3.3.3-20260326173222-cp313-cp313-macosx_12_0_x86_64.whl#sha256=eb227dea25dadacf8cfe6a20fb7206f889723f0990b603ae388d9e5fb5087110 +psycopg-c @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/psycopg-c/psycopg_c-3.3.3-20260418125859-cp313-cp313-macosx_12_0_x86_64.whl#sha256=eb227dea25dadacf8cfe6a20fb7206f889723f0990b603ae388d9e5fb5087110 pymongo @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pymongo/pymongo-4.8.0-20260326173223-cp313-cp313-macosx_12_0_x86_64.whl#sha256=8b8c0174d55284134d7373fa1116522a241804560b86f05b883d4964692caaaa pymqi @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pymqi/pymqi-1.12.13-20260326173223-cp313-cp313-macosx_12_0_x86_64.whl#sha256=95ed07eebe53c2720cdaaf5d7de3364c80d373b9286b4a1b301f157592ee8ccb -pysnmp-mibs @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pysnmp-mibs/pysnmp_mibs-0.1.6-20260417115852-py2.py3-none-any.whl#sha256=0cc4610711208cdc64361464a23d1f2dce88ec5990a12b4bdce4f13b6a169810 +pysnmp-mibs @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pysnmp-mibs/pysnmp_mibs-0.1.6-20260420125200-py2.py3-none-any.whl#sha256=0cc4610711208cdc64361464a23d1f2dce88ec5990a12b4bdce4f13b6a169810 pyvmomi @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pyvmomi/pyvmomi-8.0.3.0.1-20260326173224-py2.py3-none-macosx_12_0_universal2.whl#sha256=dd71476b7308286ed4219373ca9523e4f06bfed3f5932f60e5c67d8d5a673e1e -requests-unixsocket2 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/requests-unixsocket2/requests_unixsocket2-1.0.1-20260417115853-py3-none-any.whl#sha256=aae3f1743ab60955ea91e9a095d54997ea56b956bab652bf194379ef4dc6fa7f -securesystemslib @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/securesystemslib/securesystemslib-0.28.0-20260417115854-py3-none-any.whl#sha256=861ab6f8c1930e0c05915f32a34f1c4ae1d76ee542ad2b424121e3e26a9fb1dd -setuptools @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/setuptools/setuptools-82.0.1-20260417115855-py3-none-any.whl#sha256=b020c62c9ea6c1c3e7a29a8e385967909ceb85a77398f7fbe3c63e2abab52e87 +requests-unixsocket2 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/requests-unixsocket2/requests_unixsocket2-1.0.1-20260420125206-py3-none-any.whl#sha256=aae3f1743ab60955ea91e9a095d54997ea56b956bab652bf194379ef4dc6fa7f +securesystemslib @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/securesystemslib/securesystemslib-0.28.0-20260420125212-py3-none-any.whl#sha256=861ab6f8c1930e0c05915f32a34f1c4ae1d76ee542ad2b424121e3e26a9fb1dd +setuptools @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/setuptools/setuptools-82.0.1-20260420125218-py3-none-any.whl#sha256=b020c62c9ea6c1c3e7a29a8e385967909ceb85a77398f7fbe3c63e2abab52e87 simplejson @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/simplejson/simplejson-3.20.2-20260326173225-cp313-cp313-macosx_10_13_x86_64.whl#sha256=41b283f75ddb7e47b24fb57dc37d88078e51cd777438f368224e1282fc8ee465 -stevedore @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/stevedore/stevedore-5.7.0-20260417115856-py3-none-any.whl#sha256=0cf2a7cb9c915eddc77a591df48e8ab78f93167e8ac77d0efb04eb375f91d8b2 -supervisor @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/supervisor/supervisor-4.3.0-20260417115857-py2.py3-none-any.whl#sha256=81d63e968a5133203a334102b8e6e72b1f5ecfc9673c1af7680f9f7e0db8d4fd -vertica-python @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/vertica-python/vertica_python-1.4.0-20260417115858-py3-none-any.whl#sha256=df8d667b7bd070532a72c25f37e7259d3673c1908ae726fdfb3087d777caa9da -websocket-client @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/websocket-client/websocket_client-1.9.0-20260417115859-py3-none-any.whl#sha256=b628876a9b1eed1d49f1a230bf4b1c21fa3cd9163594f9f9628c8a8b22f97e10 +stevedore @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/stevedore/stevedore-5.7.0-20260420125224-py3-none-any.whl#sha256=0cf2a7cb9c915eddc77a591df48e8ab78f93167e8ac77d0efb04eb375f91d8b2 +supervisor @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/supervisor/supervisor-4.3.0-20260420125230-py2.py3-none-any.whl#sha256=81d63e968a5133203a334102b8e6e72b1f5ecfc9673c1af7680f9f7e0db8d4fd +vertica-python @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/vertica-python/vertica_python-1.4.0-20260420125236-py3-none-any.whl#sha256=df8d667b7bd070532a72c25f37e7259d3673c1908ae726fdfb3087d777caa9da +websocket-client @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/websocket-client/websocket_client-1.9.0-20260420125242-py3-none-any.whl#sha256=b628876a9b1eed1d49f1a230bf4b1c21fa3cd9163594f9f9628c8a8b22f97e10 annotated-types @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/external/annotated-types/annotated_types-0.7.0-py3-none-any.whl#sha256=1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53 attrs @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/external/attrs/attrs-26.1.0-py3-none-any.whl#sha256=c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309 aws-msk-iam-sasl-signer-python @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/external/aws-msk-iam-sasl-signer-python/aws_msk_iam_sasl_signer_python-1.0.2-py2.py3-none-any.whl#sha256=310eb2db9ca0ff55ed06a24212739b87533e7f1cf6f34e43aabbd97a3b21290e diff --git a/.deps/resolved/windows-x86_64_3.13.txt b/.deps/resolved/windows-x86_64_3.13.txt index 396ffa87e1da9..9cbdd35502ac6 100644 --- a/.deps/resolved/windows-x86_64_3.13.txt +++ b/.deps/resolved/windows-x86_64_3.13.txt @@ -1,28 +1,28 @@ -botocore @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/botocore/botocore-1.42.72-20260417115825-py3-none-any.whl#sha256=6f69d4818864f67ab304ac48497fefcc7f4fdd9bbcb9403cbc22dbe211177824 +botocore @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/botocore/botocore-1.42.72-20260420124956-py3-none-any.whl#sha256=6f69d4818864f67ab304ac48497fefcc7f4fdd9bbcb9403cbc22dbe211177824 cm-client @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/cm-client/cm_client-45.0.4-20260326173335-py3-none-win_amd64.whl#sha256=6a11ff78eeff20d6a20036e7320a2cb1fd4a5c318a2f1b81b1449efea34048eb colorama @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/colorama/colorama-0.4.6-20260417115313-py2.py3-none-any.whl#sha256=3eb3f5bc1022d96fbe8df6f419cfb07d028e24c055cc3c59517fa49a95ab067a -confluent-kafka @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/confluent-kafka/confluent_kafka-2.13.2-20260417115826-cp313-cp313-win_amd64.whl#sha256=cbcff38cc63a8fa2b175da4f39cea4308944d6b5740575042187e0583cc0fcd8 +confluent-kafka @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/confluent-kafka/confluent_kafka-2.13.2-20260420124959-cp313-cp313-win_amd64.whl#sha256=a31602816688f4bed64d0221eafd65a213bcfc22d5ad5111d12e6a585e9c5e43 ddtrace @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/ddtrace/ddtrace-3.19.5-20260417115314-cp313-cp313-win_amd64.whl#sha256=4f3009589d1c2e0ca84fe8bdb20367de10f090e84cb401ab1d538055927ac0f7 foundationdb @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/foundationdb/foundationdb-6.3.25-20260326173337-py3-none-win_amd64.whl#sha256=828ed23b81a64a5495b1091dd8a66ea51e84c55d9d814c5b6baf7b80dbd9881b -keystoneauth1 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/keystoneauth1/keystoneauth1-5.13.1-20260417115827-py3-none-any.whl#sha256=81b21cc6f3283215bb1a993f7c8240a0aeef36775d52ccca99c438075e054fba -openstacksdk @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/openstacksdk/openstacksdk-4.10.0-20260417115828-py3-none-any.whl#sha256=4ac88799ad5c355825b9567f5ca00fe9bcbd97cfe2649f60500fbe5f66610732 -os-service-types @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/os-service-types/os_service_types-1.8.2-20260417115829-py3-none-any.whl#sha256=668903c54b88cc4db5fd1dcbaf7cf7417220ef70592b70b49a76d202e8a7f4e8 -pbr @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pbr/pbr-7.0.3-20260417115830-py2.py3-none-any.whl#sha256=dbc2e1e0dbf694097374a40b72c890c915302ae4dd7d37c73db9cff8bf520c4b +keystoneauth1 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/keystoneauth1/keystoneauth1-5.13.1-20260420125005-py3-none-any.whl#sha256=81b21cc6f3283215bb1a993f7c8240a0aeef36775d52ccca99c438075e054fba +openstacksdk @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/openstacksdk/openstacksdk-4.10.0-20260420125010-py3-none-any.whl#sha256=4ac88799ad5c355825b9567f5ca00fe9bcbd97cfe2649f60500fbe5f66610732 +os-service-types @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/os-service-types/os_service_types-1.8.2-20260420125016-py3-none-any.whl#sha256=668903c54b88cc4db5fd1dcbaf7cf7417220ef70592b70b49a76d202e8a7f4e8 +pbr @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pbr/pbr-7.0.3-20260420125022-py2.py3-none-any.whl#sha256=dbc2e1e0dbf694097374a40b72c890c915302ae4dd7d37c73db9cff8bf520c4b psutil @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/psutil/psutil-6.0.0-20260326173339-cp37-abi3-win_amd64.whl#sha256=484a4a6e0e16a9adf22b01dc2917426536c8bf63378e445816eee9833aad4f71 -psycopg-c @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/psycopg-c/psycopg_c-3.3.3-20260417115831-cp313-cp313-win_amd64.whl#sha256=c7c4759a4942a5c3ae1ebc8f4a124e02d3ae3f02d3736d4699b8bf8a46ca2bc4 -pymongo @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pymongo/pymongo-4.8.0-20260417115831-cp313-cp313-win_amd64.whl#sha256=af1784550dc06af8b8800bf862fcaf906dc9bdeef4ac8d6c9b42bdabe25dc365 -pymqi @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pymqi/pymqi-1.12.13-20260417115832-cp313-cp313-win_amd64.whl#sha256=00db604385e0d5dc8089c1059d026a18af04174ea54c5f764b45a3598dbd8a2f -pysnmp-mibs @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pysnmp-mibs/pysnmp_mibs-0.1.6-20260417115833-py2.py3-none-any.whl#sha256=b3796e82ce920d942b3e2de5af4c8567738b72caffac49ec6d88684fd0365690 +psycopg-c @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/psycopg-c/psycopg_c-3.3.3-20260420125025-cp313-cp313-win_amd64.whl#sha256=561e02e857fb496aeceb13613453ed776626195c067948ade900630d95673958 +pymongo @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pymongo/pymongo-4.8.0-20260420125029-cp313-cp313-win_amd64.whl#sha256=e5dca78fa828f2cb946ecf92d25724248fc40f93aa179c665bb2e4f27230ba46 +pymqi @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pymqi/pymqi-1.12.13-20260420125032-cp313-cp313-win_amd64.whl#sha256=a49906cbb85a698a2a845fd264fefc2e05303b62306e945450ab7d125ad62ecd +pysnmp-mibs @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pysnmp-mibs/pysnmp_mibs-0.1.6-20260420125038-py2.py3-none-any.whl#sha256=b3796e82ce920d942b3e2de5af4c8567738b72caffac49ec6d88684fd0365690 pyvmomi @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pyvmomi/pyvmomi-8.0.3.0.1-20260326173340-py2.py3-none-win_amd64.whl#sha256=c8487fb88881dc6bfc3507b9c351929221c8e85aa5e74179b82cda9d21364218 pywin32 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/pywin32/pywin32-311-20260326173341-cp313-cp313-win_amd64.whl#sha256=1e7784bf006cbfd7ffc4ce238eecc6ae43bfaf5d8132a6401d58a4ad0a36aea5 -requests-unixsocket2 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/requests-unixsocket2/requests_unixsocket2-1.0.1-20260417115834-py3-none-any.whl#sha256=7f0bbfc823535680dd0e1ad2aedad8dc958130a180c421288244a33509ea2b0d -securesystemslib @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/securesystemslib/securesystemslib-0.28.0-20260417115835-py3-none-any.whl#sha256=4b33353c4d80e63f2417fff600939c30580c49721c76b0f7cf1ea4a18a131c4b -setuptools @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/setuptools/setuptools-82.0.1-20260417115836-py3-none-any.whl#sha256=3e5b8439ed8ba11221d6479f27a25a261cba045c357a912dc60e236710504ef6 +requests-unixsocket2 @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/requests-unixsocket2/requests_unixsocket2-1.0.1-20260420125043-py3-none-any.whl#sha256=7f0bbfc823535680dd0e1ad2aedad8dc958130a180c421288244a33509ea2b0d +securesystemslib @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/securesystemslib/securesystemslib-0.28.0-20260420125049-py3-none-any.whl#sha256=4b33353c4d80e63f2417fff600939c30580c49721c76b0f7cf1ea4a18a131c4b +setuptools @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/setuptools/setuptools-82.0.1-20260420125055-py3-none-any.whl#sha256=3e5b8439ed8ba11221d6479f27a25a261cba045c357a912dc60e236710504ef6 simplejson @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/simplejson/simplejson-3.20.2-20260326173342-cp313-cp313-win_amd64.whl#sha256=cd71398a228fa91cd9ee2bb88079ba6693c60a68c14e684d386181a8a5eb67bc -stevedore @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/stevedore/stevedore-5.7.0-20260417115837-py3-none-any.whl#sha256=b6ba40fc40b665f04276c98a21b7ddd029b6b5d80bc3c3e68dc58964f2ca0828 -supervisor @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/supervisor/supervisor-4.3.0-20260417115838-py2.py3-none-any.whl#sha256=01f0c6c7fbc4b9a0ccb659a6463319eb83742ba0d6c156e5256484aaedef2917 -vertica-python @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/vertica-python/vertica_python-1.4.0-20260417115839-py3-none-any.whl#sha256=3a094a32c4a892c32be2acb3e77452c8d7b907b6b6ebaa1e6b0a1f5bbecf4d38 -websocket-client @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/websocket-client/websocket_client-1.9.0-20260417115840-py3-none-any.whl#sha256=cb12e51596b0dbb085df6efdbd7d00cc315ea04e88f667513702899903ec39fc +stevedore @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/stevedore/stevedore-5.7.0-20260420125101-py3-none-any.whl#sha256=b6ba40fc40b665f04276c98a21b7ddd029b6b5d80bc3c3e68dc58964f2ca0828 +supervisor @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/supervisor/supervisor-4.3.0-20260420125107-py2.py3-none-any.whl#sha256=01f0c6c7fbc4b9a0ccb659a6463319eb83742ba0d6c156e5256484aaedef2917 +vertica-python @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/vertica-python/vertica_python-1.4.0-20260420125113-py3-none-any.whl#sha256=3a094a32c4a892c32be2acb3e77452c8d7b907b6b6ebaa1e6b0a1f5bbecf4d38 +websocket-client @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/built/websocket-client/websocket_client-1.9.0-20260420125119-py3-none-any.whl#sha256=cb12e51596b0dbb085df6efdbd7d00cc315ea04e88f667513702899903ec39fc annotated-types @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/external/annotated-types/annotated_types-0.7.0-py3-none-any.whl#sha256=1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53 attrs @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/external/attrs/attrs-26.1.0-py3-none-any.whl#sha256=c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309 aws-msk-iam-sasl-signer-python @ https://agent-int-packages.datadoghq.com/${INTEGRATIONS_WHEELS_STORAGE}/external/aws-msk-iam-sasl-signer-python/aws_msk_iam_sasl_signer_python-1.0.2-py2.py3-none-any.whl#sha256=310eb2db9ca0ff55ed06a24212739b87533e7f1cf6f34e43aabbd97a3b21290e diff --git a/.github/workflows/resolve-build-deps.yaml b/.github/workflows/resolve-build-deps.yaml index 638c051d74afa..cc8dde82606aa 100644 --- a/.github/workflows/resolve-build-deps.yaml +++ b/.github/workflows/resolve-build-deps.yaml @@ -1,17 +1,21 @@ name: Resolve Dependencies and Build Wheels on: - pull_request: - branches: + # We considered using pull_request as a trigger event, but then the diff will always contain all the changes compared to the target branch. + # Using the push target naturally limits the diff to the changes part of the push. + # This simplifies the decision whether to trigger the workflow or not. + push: + branches-ignore: - master - 7.*.* + - gh-readonly-queue/** paths: - agent_requirements.in - .builders/** - .github/workflows/resolve-build-deps.yaml concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number }} + group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true defaults: @@ -28,7 +32,6 @@ env: jobs: test: name: Run tests - if: github.event.pull_request.head.repo.fork == false runs-on: ubuntu-22.04 steps: - name: Checkout code @@ -118,23 +121,29 @@ jobs: steps: - name: Checkout code uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + + - name: Set up Python ${{ env.PYTHON_VERSION }} + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: - fetch-depth: 0 + python-version: ${{ env.PYTHON_VERSION }} - name: Detect builder changes + # Hashing the builder code is more robust than any kind of dance with git when it comes to determining whether we need to rebuild the builder images. id: builder-check run: | - if git diff --quiet "origin/${{ github.base_ref }}...HEAD" -- .builders/; then + current=$(python .builders/inputs_hash.py compute ${{ matrix.job.image }}) + pinned=$(python .builders/inputs_hash.py pinned ${{ matrix.job.image }}) + echo "current hash: $current" + echo "pinned hash: $pinned" + echo "current=$current" >> "$GITHUB_OUTPUT" + if [[ "$current" == "$pinned" ]]; then + echo "=> builder unchanged, will pull image by digest" echo "builder_changed=false" >> "$GITHUB_OUTPUT" else + echo "=> builder changed, will rebuild image" echo "builder_changed=true" >> "$GITHUB_OUTPUT" fi - - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 - with: - python-version: ${{ env.PYTHON_VERSION }} - - name: Install management dependencies run: pip install -r .builders/deps/host_dependencies.txt @@ -168,18 +177,19 @@ jobs: if: steps.builder-check.outputs.builder_changed == 'true' run: ${DOCKER} push ${{ env.BUILDER_IMAGE }} - - name: Save new image digest + - name: Save new image digest and inputs hash if: steps.builder-check.outputs.builder_changed == 'true' - run: >- - ${DOCKER} inspect --format "{{index .RepoDigests 0}}" ${{ env.BUILDER_IMAGE }} - | cut -d '@' -f 2 - > ${{ env.OUT_DIR }}/image_digest + run: | + ${DOCKER} inspect --format "{{index .RepoDigests 0}}" ${{ env.BUILDER_IMAGE }} \ + | cut -d '@' -f 2 \ + > ${{ env.OUT_DIR }}/image_digest + echo "${{ steps.builder-check.outputs.current }}" > ${{ env.OUT_DIR }}/inputs_sha256 - - name: Persist current image digest + - name: Persist current image digest and inputs hash if: steps.builder-check.outputs.builder_changed == 'false' - run: >- - jq -r '.["${{ matrix.job.image }}"]' .deps/image_digests.json - > ${{ env.OUT_DIR }}/image_digest + run: | + jq -r '.["${{ matrix.job.image }}"]' .deps/image_digests.json > ${{ env.OUT_DIR }}/image_digest + echo "${{ steps.builder-check.outputs.current }}" > ${{ env.OUT_DIR }}/inputs_sha256 - name: Upload artifacts uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 @@ -299,7 +309,7 @@ jobs: - name: Checkout code uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: - ref: "${{ github.head_ref }}" + ref: ${{ github.ref_name }} token: ${{ steps.token-generator.outputs.token }} - name: Set up Python ${{ env.PYTHON_VERSION }}