mainsequence 8.1.23.dev24__tar.gz → 8.1.24.dev25__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.
- {mainsequence-8.1.23.dev24/mainsequence.egg-info → mainsequence-8.1.24.dev25}/PKG-INFO +1 -1
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/client/models_foundry.py +2 -18
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25/mainsequence.egg-info}/PKG-INFO +1 -1
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/pyproject.toml +1 -1
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_github_issues_client.py +24 -92
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/LICENSE +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/MANIFEST.in +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/README.md +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/agent_scaffold/AGENTS.md +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/agent_scaffold/skills/a2a_sdk_execution/SKILL.md +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/agent_scaffold/skills/application_surfaces/api_surfaces/SKILL.md +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/agent_scaffold/skills/data_access/exploration/SKILL.md +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/agent_scaffold/skills/data_publishing/meta_table_migrations/SKILL.md +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/agent_scaffold/skills/data_publishing/meta_tables/SKILL.md +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/agent_scaffold/skills/data_publishing/time_index_table_updates/SKILL.md +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/agent_scaffold/skills/maintenance/bug_auditor/SKILL.md +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/agent_scaffold/skills/maintenance/code_repository_maintenance/SKILL.md +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/agent_scaffold/skills/platform_operations/access_control_and_sharing/SKILL.md +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/agent_scaffold/skills/platform_operations/orchestration_and_releases/SKILL.md +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/agent_scaffold/skills/sdk_code_repository_execution/SKILL.md +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/__init__.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/__main__.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/bootstrap.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/cli/__init__.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/cli/api.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/cli/browser_auth.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/cli/cli.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/cli/code_repository_status.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/cli/config.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/cli/docker_utils.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/cli/doctor.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/cli/local_ops.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/cli/migrations.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/cli/model_filters.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/cli/pydantic_cli.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/cli/sdk_utils.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/cli/ssh_utils.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/cli/ui.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/client/__init__.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/client/agent_runtime_models.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/client/base.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/client/client.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/client/compute_validation.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/client/data_sources_interfaces/__init__.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/client/data_sources_interfaces/duckdb.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/client/data_sources_interfaces/local_paths.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/client/data_sources_interfaces/sqlite.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/client/dtype_codec.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/client/exceptions.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/client/github_issues.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/client/metatables/__init__.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/client/metatables/core.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/client/models_helpers.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/client/models_user.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/client/observability.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/client/utils.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/client/value_sets.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/code_repository_context.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/code_repository_skills.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/defaults.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/instrumentation/__init__.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/instrumentation/utils.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/logconf.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/__init__.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/__main__.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/compiled_sql/__init__.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/compiled_sql/v1.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/future_registry.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/hashing.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/migrations/__init__.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/migrations/alembic.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/migrations/env.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/migrations/provider.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/migrations/registry.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/migrations/scaffold.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/migrations/templates/__init__.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/migrations/templates/env.py.mako +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/migrations/templates/script.py.mako +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/pydantic_metadata.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/schema_names.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/sqlalchemy_contracts.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/time_index_table_refs.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/time_index_table_updates/__init__.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/time_index_table_updates/configuration.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/time_index_table_updates/dependencies.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/time_index_table_updates/managers.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/time_index_table_updates/namespacing.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/time_index_table_updates/runner.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/time_index_table_updates/updaters.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/time_index_table_updates/utils.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/repository_identity_security.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/runtime_flags.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/scaffold_skills.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence.egg-info/SOURCES.txt +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence.egg-info/dependency_links.txt +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence.egg-info/entry_points.txt +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence.egg-info/requires.txt +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence.egg-info/top_level.txt +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/setup.cfg +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/fixtures/time_index_table_update_hash_v2_golden.json +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_auth_precedence.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_canonical_api_route_contract.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_cli.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_cli_browser_auth.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_cli_migrations.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_client.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_code_repository_batch_jobs_from_file.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_code_repository_branch_contract.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_code_repository_documentation_contract.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_code_repository_runtime_context.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_code_repository_skills.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_dependency_extras.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_dev_release_version.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_duckdb_interface_dimensions.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_environment_resource_context.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_environment_response_contracts.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_filter_normalization.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_instrumentation.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_local_ops.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_logconf.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_meta_table_migrations.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_meta_tables_client_models.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_meta_tables_sqlalchemy_contracts.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_models_user_request_bound_auth.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_notification_uid_contract.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_observability_client.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_pod_project_resolution.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_scaffold_skills.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_schema_names.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_secret_client_model.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_source_table_configuration.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_sqlite_interface_dimensions.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_ssh_utils.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_time_index_table_access_dimension_audit.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_time_index_table_dimension_queries.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_time_index_table_update_configuration.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_time_index_table_update_configuration_client.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_time_index_table_update_flow.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_time_index_table_update_hard_cut.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_tolerant_response_reading.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_tolerant_value_sets.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_update_runner_uid_runtime.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_update_statistics.py +0 -0
- {mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_update_uid_guards.py +0 -0
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/client/models_foundry.py
RENAMED
|
@@ -574,20 +574,6 @@ class CodeRepositoryBranch(BasePydanticModel, BaseObjectOrm):
|
|
|
574
574
|
params = {"commit_sha": commit_sha} if commit_sha else None
|
|
575
575
|
return self._get_action("infra-graph", params=params, timeout=timeout)
|
|
576
576
|
|
|
577
|
-
def _resolved_github_issue_branch_uid(self, operation: str) -> str:
|
|
578
|
-
"""Assert that this instance is the process-frozen Git branch."""
|
|
579
|
-
|
|
580
|
-
from mainsequence.code_repository_context import (
|
|
581
|
-
resolve_code_repository_branch_uid,
|
|
582
|
-
resolve_organization_environment_uid,
|
|
583
|
-
)
|
|
584
|
-
|
|
585
|
-
branch_uid = resolve_code_repository_branch_uid(operation, supplied_uid=self.uid)
|
|
586
|
-
# GitHub issues persist Environment ownership from the resolved branch. The
|
|
587
|
-
# backend derives it from the branch path; it is never a caller selector.
|
|
588
|
-
resolve_organization_environment_uid(operation)
|
|
589
|
-
return branch_uid
|
|
590
|
-
|
|
591
577
|
def list_github_issues(
|
|
592
578
|
self,
|
|
593
579
|
*,
|
|
@@ -597,14 +583,12 @@ class CodeRepositoryBranch(BasePydanticModel, BaseObjectOrm):
|
|
|
597
583
|
limit: int = 50,
|
|
598
584
|
timeout: int | float | tuple[float, float] | None = None,
|
|
599
585
|
) -> GitHubIssuePage:
|
|
600
|
-
"""List issues
|
|
586
|
+
"""List issues for this branch, subject to backend authorization."""
|
|
601
587
|
|
|
602
588
|
from .github_issues import _list_github_issues_for_branch
|
|
603
589
|
|
|
604
|
-
operation = "CodeRepositoryBranch.list_github_issues"
|
|
605
|
-
branch_uid = self._resolved_github_issue_branch_uid(operation)
|
|
606
590
|
return _list_github_issues_for_branch(
|
|
607
|
-
branch_uid=
|
|
591
|
+
branch_uid=self.uid,
|
|
608
592
|
state=state,
|
|
609
593
|
updated_since=updated_since,
|
|
610
594
|
cursor=cursor,
|
|
@@ -2,8 +2,6 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import datetime
|
|
4
4
|
import inspect
|
|
5
|
-
import pathlib
|
|
6
|
-
import types
|
|
7
5
|
|
|
8
6
|
import pytest
|
|
9
7
|
|
|
@@ -116,54 +114,11 @@ def _reset_context(monkeypatch):
|
|
|
116
114
|
code_repository_context._reset_code_repository_context()
|
|
117
115
|
|
|
118
116
|
|
|
119
|
-
def _configure_context(monkeypatch, *, registered=True, environment_uid=ENVIRONMENT_UID):
|
|
120
|
-
calls = {"source": 0, "backend": 0}
|
|
121
|
-
source = code_repository_context.GitCodeRepositorySourceContext(
|
|
122
|
-
repository_root=pathlib.Path.cwd().resolve(),
|
|
123
|
-
canonical_repository_identity="github.com/mainsequence-sdk/example",
|
|
124
|
-
repository_branch="main",
|
|
125
|
-
repository_ref="refs/heads/main",
|
|
126
|
-
commit_sha=COMMIT_SHA,
|
|
127
|
-
)
|
|
128
|
-
|
|
129
|
-
def load_source(path):
|
|
130
|
-
calls["source"] += 1
|
|
131
|
-
return source
|
|
132
|
-
|
|
133
|
-
def load_branch(resolved_source):
|
|
134
|
-
calls["backend"] += 1
|
|
135
|
-
if not registered:
|
|
136
|
-
return None
|
|
137
|
-
branch = types.SimpleNamespace(
|
|
138
|
-
uid=BRANCH_UID,
|
|
139
|
-
code_repository_uid=CODE_REPOSITORY_UID,
|
|
140
|
-
repository_branch="main",
|
|
141
|
-
organization_environment_uid=environment_uid,
|
|
142
|
-
metatables_data_source=None,
|
|
143
|
-
)
|
|
144
|
-
return types.SimpleNamespace(
|
|
145
|
-
canonical_repository_identity=resolved_source.canonical_repository_identity,
|
|
146
|
-
repository_branch=resolved_source.repository_branch,
|
|
147
|
-
repository_ref=resolved_source.repository_ref,
|
|
148
|
-
commit_sha=resolved_source.commit_sha,
|
|
149
|
-
code_repository_branch=branch,
|
|
150
|
-
)
|
|
151
|
-
|
|
152
|
-
monkeypatch.setattr(code_repository_context, "_resolve_git_source_context", load_source)
|
|
153
|
-
monkeypatch.setattr(
|
|
154
|
-
code_repository_context,
|
|
155
|
-
"_default_code_repository_branch_context_loader",
|
|
156
|
-
load_branch,
|
|
157
|
-
)
|
|
158
|
-
return calls
|
|
159
|
-
|
|
160
|
-
|
|
161
117
|
def _branch(uid=BRANCH_UID):
|
|
162
118
|
return CodeRepositoryBranch.model_construct(uid=uid)
|
|
163
119
|
|
|
164
120
|
|
|
165
|
-
def
|
|
166
|
-
context_calls = _configure_context(monkeypatch)
|
|
121
|
+
def test_branch_issue_list_uses_target_branch_and_no_environment_selector(monkeypatch):
|
|
167
122
|
requests = []
|
|
168
123
|
|
|
169
124
|
def fake_make_request(**kwargs):
|
|
@@ -176,20 +131,20 @@ def test_branch_issue_list_uses_one_frozen_context_and_no_environment_selector(m
|
|
|
176
131
|
monkeypatch.setattr(github_issues, "make_request", fake_make_request)
|
|
177
132
|
updated_since = datetime.datetime(2026, 9, 14, 10, tzinfo=datetime.UTC)
|
|
178
133
|
|
|
179
|
-
first = _branch().list_github_issues(
|
|
134
|
+
first = _branch(OTHER_BRANCH_UID).list_github_issues(
|
|
180
135
|
state="open",
|
|
181
136
|
updated_since=updated_since,
|
|
182
137
|
cursor="input-cursor",
|
|
183
138
|
limit=25,
|
|
184
139
|
)
|
|
185
|
-
second = _branch().list_github_issues(limit=50)
|
|
140
|
+
second = _branch(OTHER_BRANCH_UID).list_github_issues(limit=50)
|
|
186
141
|
|
|
187
142
|
assert first.next_cursor == "opaque-cursor"
|
|
188
143
|
assert first.results[0].uid == ISSUE_UID
|
|
189
144
|
assert second.results[0].issue_number == 17
|
|
190
|
-
assert context_calls == {"source": 1, "backend": 1}
|
|
191
145
|
assert requests[0]["url"] == (
|
|
192
|
-
|
|
146
|
+
"https://backend.example/api/v1/code-repository-branches/"
|
|
147
|
+
f"{OTHER_BRANCH_UID}/github-issues/"
|
|
193
148
|
)
|
|
194
149
|
assert requests[0]["payload"]["params"] == {
|
|
195
150
|
"limit": 25,
|
|
@@ -200,52 +155,33 @@ def test_branch_issue_list_uses_one_frozen_context_and_no_environment_selector(m
|
|
|
200
155
|
assert "organization_environment_uid" not in requests[0]["payload"]["params"]
|
|
201
156
|
|
|
202
157
|
|
|
203
|
-
def
|
|
204
|
-
|
|
205
|
-
requested = False
|
|
206
|
-
|
|
207
|
-
def fake_make_request(**kwargs):
|
|
208
|
-
nonlocal requested
|
|
209
|
-
requested = True
|
|
210
|
-
return Response(200, {})
|
|
211
|
-
|
|
212
|
-
monkeypatch.setattr(github_issues, "make_request", fake_make_request)
|
|
213
|
-
|
|
214
|
-
with pytest.raises(
|
|
215
|
-
code_repository_context.CodeRepositoryBranchContextRequiredError,
|
|
216
|
-
match="cannot override",
|
|
217
|
-
):
|
|
218
|
-
_branch(OTHER_BRANCH_UID).list_github_issues()
|
|
219
|
-
|
|
220
|
-
assert requested is False
|
|
158
|
+
def test_list_issues_does_not_resolve_process_branch(monkeypatch):
|
|
159
|
+
captured = {}
|
|
221
160
|
|
|
161
|
+
def fail_context_resolution(*args, **kwargs):
|
|
162
|
+
pytest.fail("targeted issue listing must not resolve the process branch")
|
|
222
163
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
registered,
|
|
233
|
-
environment_uid,
|
|
234
|
-
message,
|
|
235
|
-
):
|
|
236
|
-
_configure_context(
|
|
237
|
-
monkeypatch,
|
|
238
|
-
registered=registered,
|
|
239
|
-
environment_uid=environment_uid,
|
|
164
|
+
monkeypatch.setattr(
|
|
165
|
+
code_repository_context,
|
|
166
|
+
"resolve_code_repository_branch_uid",
|
|
167
|
+
fail_context_resolution,
|
|
168
|
+
)
|
|
169
|
+
monkeypatch.setattr(
|
|
170
|
+
code_repository_context,
|
|
171
|
+
"resolve_organization_environment_uid",
|
|
172
|
+
fail_context_resolution,
|
|
240
173
|
)
|
|
241
174
|
monkeypatch.setattr(
|
|
242
175
|
github_issues,
|
|
243
176
|
"make_request",
|
|
244
|
-
lambda **kwargs:
|
|
177
|
+
lambda **kwargs: captured.update(kwargs)
|
|
178
|
+
or Response(200, {"next_cursor": None, "results": []}),
|
|
245
179
|
)
|
|
246
180
|
|
|
247
|
-
|
|
248
|
-
|
|
181
|
+
result = _branch(OTHER_BRANCH_UID).list_github_issues()
|
|
182
|
+
|
|
183
|
+
assert result.results == []
|
|
184
|
+
assert captured["url"].endswith(f"/{OTHER_BRANCH_UID}/github-issues/")
|
|
249
185
|
|
|
250
186
|
|
|
251
187
|
def test_create_issue_uses_target_branch_without_process_branch_resolution(monkeypatch):
|
|
@@ -283,7 +219,6 @@ def test_create_issue_uses_target_branch_without_process_branch_resolution(monke
|
|
|
283
219
|
|
|
284
220
|
|
|
285
221
|
def test_create_issue_preserves_body_and_parses_synchronous_response(monkeypatch):
|
|
286
|
-
_configure_context(monkeypatch)
|
|
287
222
|
captured = {}
|
|
288
223
|
monkeypatch.setattr(
|
|
289
224
|
github_issues,
|
|
@@ -310,7 +245,6 @@ def test_create_issue_preserves_body_and_parses_synchronous_response(monkeypatch
|
|
|
310
245
|
|
|
311
246
|
|
|
312
247
|
def test_accepted_mutation_returns_operation_without_retry(monkeypatch):
|
|
313
|
-
_configure_context(monkeypatch)
|
|
314
248
|
calls = []
|
|
315
249
|
|
|
316
250
|
def fake_make_request(**kwargs):
|
|
@@ -330,7 +264,6 @@ def test_accepted_mutation_returns_operation_without_retry(monkeypatch):
|
|
|
330
264
|
|
|
331
265
|
|
|
332
266
|
def test_replayed_issue_create_http_200_returns_issue(monkeypatch):
|
|
333
|
-
_configure_context(monkeypatch)
|
|
334
267
|
monkeypatch.setattr(
|
|
335
268
|
github_issues,
|
|
336
269
|
"make_request",
|
|
@@ -462,7 +395,6 @@ def test_synchronous_comment_create_returns_comment(monkeypatch):
|
|
|
462
395
|
],
|
|
463
396
|
)
|
|
464
397
|
def test_request_validation_matches_backend_contract(monkeypatch, operation, message):
|
|
465
|
-
_configure_context(monkeypatch)
|
|
466
398
|
monkeypatch.setattr(
|
|
467
399
|
github_issues,
|
|
468
400
|
"make_request",
|
|
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
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/cli/code_repository_status.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
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/client/agent_runtime_models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/client/compute_validation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/client/github_issues.py
RENAMED
|
File without changes
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/client/metatables/__init__.py
RENAMED
|
File without changes
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/client/metatables/core.py
RENAMED
|
File without changes
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/client/models_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/client/observability.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/code_repository_context.py
RENAMED
|
File without changes
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/code_repository_skills.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/instrumentation/__init__.py
RENAMED
|
File without changes
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/instrumentation/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/__init__.py
RENAMED
|
File without changes
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/__main__.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/compiled_sql/v1.py
RENAMED
|
File without changes
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/future_registry.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/migrations/env.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
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/meta_tables/schema_names.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
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence/repository_identity_security.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/mainsequence.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_canonical_api_route_contract.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
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_code_repository_skills.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_duckdb_interface_dimensions.py
RENAMED
|
File without changes
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_environment_resource_context.py
RENAMED
|
File without changes
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_environment_response_contracts.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_meta_tables_client_models.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_models_user_request_bound_auth.py
RENAMED
|
File without changes
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_notification_uid_contract.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_pod_project_resolution.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_source_table_configuration.py
RENAMED
|
File without changes
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_sqlite_interface_dimensions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_time_index_table_update_flow.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_tolerant_response_reading.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence-8.1.23.dev24 → mainsequence-8.1.24.dev25}/tests/test_update_runner_uid_runtime.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|