Skip to content

Commit

Permalink
fix(cli): resolve upstream/downstream correctly
Browse files Browse the repository at this point in the history
Fixes packit#2118

Signed-off-by: Matej Focko <mfocko@redhat.com>
  • Loading branch information
mfocko committed Oct 10, 2023
1 parent 025e441 commit 7884341
Showing 1 changed file with 16 additions and 13 deletions.
29 changes: 16 additions & 13 deletions packit/cli/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
from packit.config import Config, JobType, get_local_package_config
from packit.config.common_package_config import MultiplePackages
from packit.config.package_config import PackageConfig
from packit.constants import DISTGIT_HOSTNAME_CANDIDATES, DISTRO_DIR, SRC_GIT_CONFIG
from packit.constants import DISTRO_DIR, SRC_GIT_CONFIG
from packit.exceptions import PackitException, PackitNotAGitRepoException
from packit.local_project import LocalProject

Expand Down Expand Up @@ -312,26 +312,29 @@ def get_packit_api(
lp_downstream = None

for url in remote_urls:
remote_hostname = get_hostname_or_none(url=url)
if not remote_hostname:
parsed_url = parse_git_repo(url)
if not parsed_url.hostname:
continue

if upstream_hostname and remote_hostname == upstream_hostname:
lp_upstream = local_project
logger.debug("Input directory is an upstream repository.")
if package_config.dist_git_instance.has_repository(url):
lp_downstream = local_project
logger.debug(
"Input directory is a downstream repository. Deduced from package config.",
)
break

if package_config.dist_git_base_url and (
remote_hostname in package_config.dist_git_base_url
or remote_hostname in DISTGIT_HOSTNAME_CANDIDATES
):
lp_downstream = local_project
logger.debug("Input directory is a downstream repository.")
if upstream_hostname and parsed_url.hostname == upstream_hostname:
lp_upstream = local_project
logger.debug(
"Input directory is an upstream repository. Upstream hostname matches.",
)
break
else:
lp_upstream = local_project
# fallback, this is the past behavior
logger.debug("Input directory is an upstream repository.")
logger.debug(
"Input directory is an upstream repository. No suitable remote found.",
)

return PackitAPI(
config=config,
Expand Down

0 comments on commit 7884341

Please sign in to comment.