chalice icon indicating copy to clipboard operation
chalice copied to clipboard

Is it possible to use a private repository with chalices requirements.txt?

Open mence40 opened this issue 2 years ago • 3 comments

I have this private repo that I made with the poetry python library. I can pip install said repo on my local device just fine, but now I want to make a chalice app that has dependencies on my private repo, and I am running into some issues.

My requirements.txt file currently looks like this

requests fastjsonschema boto3 git+https://gitlab.com/<path to project>/<my project>.git@master#egg=<my project>

When I use chalice deploy, I am prompted for my gitlab username and password. After typing it in, I get this error

Traceback (most recent call last):
  File "/home/<name>/PycharmProjects/<local project name>/venv/lib/python3.8/site-packages/chalice/cli/__init__.py", line 636, in main
    return cli(obj={})
  File "/home/<name>/PycharmProjects/<local project name>/venv/lib/python3.8/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/home/<name>/PycharmProjects/<local project name>/venv/lib/python3.8/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/home/<name>/PycharmProjects/<local project name>/venv/lib/python3.8/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/<name>/PycharmProjects/<local project name>/venv/lib/python3.8/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/<name>/PycharmProjects/<local project name>/venv/lib/python3.8/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/home/<name>/PycharmProjects/<local project name>/venv/lib/python3.8/site-packages/click/decorators.py", line 26, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/<name>/PycharmProjects/<local project name>/venv/lib/python3.8/site-packages/chalice/cli/__init__.py", line 189, in deploy
    deployed_values = d.deploy(config, chalice_stage_name=stage)
  File "/home/<name>/PycharmProjects/<local project name>/venv/lib/python3.8/site-packages/chalice/deploy/deployer.py", line 376, in deploy
    return self._deploy(config, chalice_stage_name)
  File "/home/<name>/PycharmProjects/<local project name>/venv/lib/python3.8/site-packages/chalice/deploy/deployer.py", line 386, in _deploy
    self._build_stage.execute(config, resources)
  File "/home/<name>/PycharmProjects/<local project name>/venv/lib/python3.8/site-packages/chalice/deploy/deployer.py", line 652, in execute
    step.handle(config, resource)
  File "/home/<name>/PycharmProjects/<local project name>/venv/lib/python3.8/site-packages/chalice/deploy/deployer.py", line 419, in handle
    handler(config, resource)
  File "/home/<name>/PycharmProjects/<local project name>/venv/lib/python3.8/site-packages/chalice/deploy/deployer.py", line 453, in handle_deploymentpackage
    zip_filename = self._packager.create_deployment_package(
  File "/home/<name>/PycharmProjects/<local project name>/venv/lib/python3.8/site-packages/chalice/deploy/packager.py", line 299, in create_deployment_package
    self._build_python_dependencies(python_version,
  File "/home/<name>/PycharmProjects/<local project name>/venv/lib/python3.8/site-packages/chalice/deploy/packager.py", line 277, in _build_python_dependencies
    self._dependency_builder.build_site_packages(
  File "/home/<name>/PycharmProjects/<local project name>/venv/lib/python3.8/site-packages/chalice/deploy/packager.py", line 783, in build_site_packages
    wheels, packages_without_wheels = self._download_dependencies(
  File "/home/<name>/PycharmProjects/<local project name>/venv/lib/python3.8/site-packages/chalice/deploy/packager.py", line 636, in _download_dependencies
    deps = self._download_all_dependencies(
  File "/home/<name>/PycharmProjects/<local project name>/venv/lib/python3.8/site-packages/chalice/deploy/packager.py", line 567, in _download_all_dependencies
    deps = {Package(directory, filename) for filename
  File "/home/<name>/PycharmProjects/<local project name>/venv/lib/python3.8/site-packages/chalice/deploy/packager.py", line 567, in <setcomp>
    deps = {Package(directory, filename) for filename
  File "/home/<name>/PycharmProjects/<local project name>/venv/lib/python3.8/site-packages/chalice/deploy/packager.py", line 800, in __init__
    self._name, self._version = self._calculate_name_and_version()
  File "/home/<name>/PycharmProjects/<local project name>/venv/lib/python3.8/site-packages/chalice/deploy/packager.py", line 860, in _calculate_name_and_version
    name, version = info_fetcher.get_package_name_and_version(
  File "/home/<name>/PycharmProjects/<local project name>/venv/lib/python3.8/site-packages/chalice/deploy/packager.py", line 944, in get_package_name_and_version
    pkg_info_filepath = self._get_pkg_info_filepath(package_dir)
  File "/home/<name>/PycharmProjects/<local project name>/venv/lib/python3.8/site-packages/chalice/deploy/packager.py", line 925, in _get_pkg_info_filepath
    raise UnsupportedPackageError(self._osutils.basename(package_dir))
chalice.deploy.packager.UnsupportedPackageError: Unable to retrieve name/version for package: <my project>

Obviously there is an unsupported package error, but I am unsure if this is because I am making a mistake myself, or if what I am doing is not a feature of chalice. Any ideas? Also, if anyone would like to suggest an alternative approach to accomplish what I am trying to do, I am all ears!

Thanks your your time!

mence40 avatar Jun 08 '22 21:06 mence40

@mence40 you might have to look into #502

0xBiriyani avatar Jun 10 '22 15:06 0xBiriyani

Hi @mence40 https://aws.github.io/chalice/topics/packaging.html#rd-party-packages you may use this functionality of chalice.

YashCerebulb avatar Jun 11 '22 13:06 YashCerebulb

If you can, try using the SSH URL and set up a passwordless SSH key @mence40

msanatan avatar Jul 27 '22 13:07 msanatan