|
24 | 24 | PROJECT_PICKED_FROM_GIT,
|
25 | 25 | REPO_PICKED_FROM_GIT,
|
26 | 26 | ORG_PICKED_FROM_CONFIG,
|
| 27 | + ORG_PICKED_FROM_ENV, |
27 | 28 | ORG_IGNORED_FROM_CONFIG,
|
28 | 29 | PROJECT_PICKED_FROM_CONFIG,
|
29 |
| - PROJECT_IGNORED_FROM_CONFIG) |
| 30 | + PROJECT_PICKED_FROM_ENV, |
| 31 | + PROJECT_IGNORED_FROM_CONFIG, |
| 32 | + AZ_DEVOPS_DEFAULT_ORGANIZATION, |
| 33 | + AZ_DEVOPS_DEFAULT_PROJECT) |
30 | 34 | from ._credentials import get_credential
|
31 | 35 | from .git import get_remote_url
|
32 | 36 | from .vsts_git_url_info import VstsGitUrlInfo
|
@@ -346,17 +350,23 @@ def resolve_instance_project_and_repo(
|
346 | 350 | repo = git_info.repo
|
347 | 351 | vsts_tracking_data.properties[REPO_PICKED_FROM_GIT] = repo is not None
|
348 | 352 | if organization is None:
|
349 |
| - organization = _resolve_instance_from_config(organization) |
350 |
| - vsts_tracking_data.properties[ORG_PICKED_FROM_CONFIG] = organization is not None |
351 |
| - else: |
352 |
| - orgFromConfig = _resolve_instance_from_config(organization) |
353 |
| - vsts_tracking_data.properties[ORG_IGNORED_FROM_CONFIG] = orgFromConfig is not None |
| 353 | + organization = _resolve_instance_from_env(organization) |
| 354 | + vsts_tracking_data.properties[ORG_PICKED_FROM_ENV] = organization is not None |
| 355 | + if organization is None: |
| 356 | + organization = _resolve_instance_from_config(organization) |
| 357 | + vsts_tracking_data.properties[ORG_PICKED_FROM_CONFIG] = organization is not None |
| 358 | + else: |
| 359 | + orgFromConfig = _resolve_instance_from_config(organization) |
| 360 | + vsts_tracking_data.properties[ORG_IGNORED_FROM_CONFIG] = orgFromConfig is not None |
354 | 361 | if project is None:
|
355 |
| - project = _resolve_project_from_config(project, project_required) |
356 |
| - vsts_tracking_data.properties[PROJECT_PICKED_FROM_CONFIG] = organization is not None |
357 |
| - else: |
358 |
| - projectFromConfig = _resolve_project_from_config(project, False) |
359 |
| - vsts_tracking_data.properties[PROJECT_IGNORED_FROM_CONFIG] = projectFromConfig is not None |
| 362 | + project = _resolve_project_from_env(project, project_required) |
| 363 | + vsts_tracking_data.properties[PROJECT_PICKED_FROM_ENV] = project is not None |
| 364 | + if project is None: |
| 365 | + project = _resolve_project_from_config(project, project_required) |
| 366 | + vsts_tracking_data.properties[PROJECT_PICKED_FROM_CONFIG] = project is not None |
| 367 | + else: |
| 368 | + projectFromConfig = _resolve_project_from_config(project, False) |
| 369 | + vsts_tracking_data.properties[PROJECT_IGNORED_FROM_CONFIG] = projectFromConfig is not None |
360 | 370 | if not is_valid_url(organization):
|
361 | 371 | raise _team_organization_arg_error()
|
362 | 372 | if project_required and project is None:
|
@@ -402,6 +412,20 @@ def _resolve_project_from_config(project, project_required=True):
|
402 | 412 | return project
|
403 | 413 |
|
404 | 414 |
|
| 415 | +def _resolve_instance_from_env(organization): |
| 416 | + if organization is None: |
| 417 | + organization = os.getenv(AZ_DEVOPS_DEFAULT_ORGANIZATION, None) |
| 418 | + return organization |
| 419 | + |
| 420 | + |
| 421 | +def _resolve_project_from_env(project, project_required=True): |
| 422 | + if project is None: |
| 423 | + project = os.getenv(AZ_DEVOPS_DEFAULT_PROJECT, None) |
| 424 | + if project_required and (project is None or project == ''): |
| 425 | + _raise_team_project_arg_error() |
| 426 | + return project |
| 427 | + |
| 428 | + |
405 | 429 | def get_vsts_info_from_current_remote_url():
|
406 | 430 | start = datetime.datetime.now()
|
407 | 431 | info = VstsGitUrlInfo(get_remote_url(VstsGitUrlInfo.is_vsts_url_candidate))
|
|
0 commit comments