jupyterhub / nbgitpuller

Jupyter server extension to sync a git repository one-way to a local path
https://nbgitpuller.readthedocs.io
BSD 3-Clause "New" or "Revised" License
212 stars 86 forks source link

nbgitpuller fails if .git/ directory deleted #354

Open alexandermichels opened 4 months ago

alexandermichels commented 4 months ago

Bug description

We have had some users run into this issue:

image

Possibly related to #44, #98, #292

I'm not sure how they ran into it, but the steps I used to reproduce the error repeatedly are as follows:

How to reproduce

We specifically used this platform (https://platform.i-guide.io/, 1.2.0 nbgitpuller) and I was also able to reproduce on another platform using these steps (https://cybergisx.cigi.illinois.edu, 1.1.0 nbgitpuller)

  1. Download a repo to your JupyterHub using nbgitpuller link.
  2. Use the terminal to delete the .git directory in the directory of your Github repo.
  3. Use nbgitpuller link again.
  4. See error

Expected behaviour

Ideally catch the error, notify the user, and ask if they want to proceed (which would remove files and clone repo). Realistically, just catching the error and printing out a hint that the missing .git directory may be the cause.

Actual behaviour

The following error:

$ git fetch
fatal: not a git repository (or any parent up to mount point /home)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
Traceback (most recent call last):
File "/opt/conda/lib/python3.11/threading.py", line 1038, in _bootstrap_inner
    self.run()
File "/opt/conda/lib/python3.11/threading.py", line 975, in run
    self._target(*self._args, **self._kwargs)
File "/opt/conda/lib/python3.11/site-packages/nbgitpuller/handlers.py", line 93, in pull
    raise e
File "/opt/conda/lib/python3.11/site-packages/nbgitpuller/handlers.py", line 87, in pull
    for line in gp.pull():
File "/opt/conda/lib/python3.11/site-packages/nbgitpuller/pull.py", line 144, in pull
    yield from self.update()
File "/opt/conda/lib/python3.11/site-packages/nbgitpuller/pull.py", line 321, in update
    yield from self.update_remotes()
File "/opt/conda/lib/python3.11/site-packages/nbgitpuller/pull.py", line 202, in update_remotes
    yield from execute_cmd(['git', 'fetch'], cwd=self.repo_dir)
File "/opt/conda/lib/python3.11/site-packages/nbgitpuller/pull.py", line 48, in execute_cmd
    raise subprocess.CalledProcessError(ret, cmd)
subprocess.CalledProcessError: Command '['git', 'fetch']' returned non-zero exit status 128.

Your personal set up

Full environment https://jupyter.iguide.illinois.edu ``` # packages in environment at /opt/conda: # # Name Version Build Channel _libgcc_mutex 0.1 conda_forge conda-forge _openmp_mutex 4.5 2_gnu conda-forge alembic 1.11.1 pyhd8ed1ab_0 conda-forge anyio 3.7.0 pyhd8ed1ab_1 conda-forge argon2-cffi 21.3.0 pyhd8ed1ab_0 conda-forge argon2-cffi-bindings 21.2.0 py311hd4cff14_3 conda-forge arrow 1.2.3 pypi_0 pypi asttokens 2.2.1 pyhd8ed1ab_0 conda-forge async-lru 2.0.2 pyhd8ed1ab_0 conda-forge async_generator 1.10 py_0 conda-forge attrs 23.1.0 pyh71513ae_1 conda-forge babel 2.12.1 pyhd8ed1ab_1 conda-forge backcall 0.2.0 pyh9f0ad1d_0 conda-forge backports 1.0 pyhd8ed1ab_3 conda-forge backports.functools_lru_cache 1.6.4 pyhd8ed1ab_0 conda-forge beautifulsoup4 4.12.2 pyha770c72_0 conda-forge bleach 6.0.0 pyhd8ed1ab_0 conda-forge blinker 1.6.2 pyhd8ed1ab_0 conda-forge boltons 23.0.0 pyhd8ed1ab_0 conda-forge brotli 1.0.9 h166bdaf_8 conda-forge brotli-bin 1.0.9 h166bdaf_8 conda-forge bzip2 1.0.8 h7f98852_4 conda-forge c-ares 1.19.1 hd590300_0 conda-forge ca-certificates 2023.7.22 hbcca054_0 conda-forge certifi 2023.7.22 pyhd8ed1ab_0 conda-forge certipy 0.1.3 py_0 conda-forge cffi 1.15.1 py311h409f033_3 conda-forge charset-normalizer 3.1.0 pyhd8ed1ab_0 conda-forge colorama 0.4.6 pyhd8ed1ab_0 conda-forge comm 0.1.3 pyhd8ed1ab_0 conda-forge conda 23.3.1 py311h38be061_0 conda-forge conda-package-handling 2.0.2 pyh38be061_0 conda-forge conda-package-streaming 0.8.0 pyhd8ed1ab_0 conda-forge configurable-http-proxy 4.5.4 he2f69ee_2 conda-forge cryptography 41.0.1 py311h63ff55d_0 conda-forge debugpy 1.6.7 py311hcafe171_0 conda-forge decorator 5.1.1 pyhd8ed1ab_0 conda-forge defusedxml 0.7.1 pyhd8ed1ab_0 conda-forge dnspython 2.4.2 pypi_0 pypi email-validator 2.0.0.post2 pypi_0 pypi entrypoints 0.4 pyhd8ed1ab_0 conda-forge exceptiongroup 1.1.1 pyhd8ed1ab_0 conda-forge executing 1.2.0 pyhd8ed1ab_0 conda-forge flit-core 3.9.0 pyhd8ed1ab_0 conda-forge fmt 9.1.0 h924138e_0 conda-forge fqdn 1.5.1 pypi_0 pypi greenlet 2.0.2 py311hb755f60_1 conda-forge hsclient 0.3.4 pypi_0 pypi hsmodels 0.5.8 pypi_0 pypi icu 72.1 hcb278e6_0 conda-forge idna 3.4 pyhd8ed1ab_0 conda-forge importlib-metadata 6.6.0 pyha770c72_0 conda-forge importlib_metadata 6.6.0 hd8ed1ab_0 conda-forge importlib_resources 5.12.0 pyhd8ed1ab_0 conda-forge ipykernel 6.25.2 pyh2140261_0 conda-forge ipython 8.14.0 pyh41d4057_0 conda-forge ipython_genutils 0.2.0 py_1 conda-forge ipywidgets 8.1.1 pyhd8ed1ab_0 conda-forge isodate 0.6.1 pypi_0 pypi isoduration 20.11.0 pypi_0 pypi jedi 0.18.2 pyhd8ed1ab_0 conda-forge jinja2 3.1.2 pyhd8ed1ab_1 conda-forge json5 0.9.5 pyh9f0ad1d_0 conda-forge jsonpatch 1.32 pyhd8ed1ab_0 conda-forge jsonpointer 2.0 py_0 conda-forge jsonschema 4.17.3 pyhd8ed1ab_0 conda-forge jupyter-lsp 2.2.0 pyhd8ed1ab_0 conda-forge jupyter_client 8.2.0 pyhd8ed1ab_0 conda-forge jupyter_contrib_core 0.4.0 pyhd8ed1ab_0 conda-forge jupyter_contrib_nbextensions 0.7.0 pyhd8ed1ab_0 conda-forge jupyter_core 5.3.0 py311h38be061_0 conda-forge jupyter_events 0.6.3 pyhd8ed1ab_0 conda-forge jupyter_highlight_selected_word 0.2.0 pyhd8ed1ab_1006 conda-forge jupyter_latex_envs 1.4.6 pyhd8ed1ab_1002 conda-forge jupyter_nbextensions_configurator 0.6.1 pyhd8ed1ab_0 conda-forge jupyter_server 2.6.0 pyhd8ed1ab_0 conda-forge jupyter_server_terminals 0.4.4 pyhd8ed1ab_1 conda-forge jupyter_telemetry 0.1.0 pyhd8ed1ab_1 conda-forge jupyterhub 4.0.1 pyh2a2186d_0 conda-forge jupyterhub-base 4.0.1 pyh2a2186d_0 conda-forge jupyterlab 4.0.2 pyhd8ed1ab_0 conda-forge jupyterlab_pygments 0.2.2 pyhd8ed1ab_0 conda-forge jupyterlab_server 2.22.1 pyhd8ed1ab_0 conda-forge jupyterlab_widgets 3.0.9 pyhd8ed1ab_0 conda-forge keyutils 1.6.1 h166bdaf_0 conda-forge krb5 1.20.1 h81ceb04_0 conda-forge ld_impl_linux-64 2.40 h41732ed_0 conda-forge libarchive 3.6.2 h039dbb9_1 conda-forge libbrotlicommon 1.0.9 h166bdaf_8 conda-forge libbrotlidec 1.0.9 h166bdaf_8 conda-forge libbrotlienc 1.0.9 h166bdaf_8 conda-forge libcurl 7.88.1 hdc1c0ab_1 conda-forge libedit 3.1.20191231 he28a2e2_2 conda-forge libev 4.33 h516909a_1 conda-forge libexpat 2.5.0 hcb278e6_1 conda-forge libffi 3.4.2 h7f98852_5 conda-forge libgcc-ng 13.1.0 he5830b7_0 conda-forge libgomp 13.1.0 he5830b7_0 conda-forge libiconv 1.17 h166bdaf_0 conda-forge libmamba 1.4.2 hcea66bb_0 conda-forge libmambapy 1.4.2 py311h1f88262_0 conda-forge libnghttp2 1.52.0 h61bc06f_0 conda-forge libnsl 2.0.0 h7f98852_0 conda-forge libsodium 1.0.18 h36c2ea0_1 conda-forge libsolv 0.7.24 h3eb15da_0 conda-forge libsqlite 3.42.0 h2797004_0 conda-forge libssh2 1.11.0 h0841786_0 conda-forge libstdcxx-ng 13.1.0 hfd8a6a1_0 conda-forge libuuid 2.38.1 h0b41bf4_0 conda-forge libuv 1.44.2 h166bdaf_0 conda-forge libxml2 2.11.4 h0d562d8_0 conda-forge libxslt 1.1.37 h0054252_1 conda-forge libzlib 1.2.13 hd590300_5 conda-forge lxml 4.9.3 py311h1a07684_0 conda-forge lz4-c 1.9.4 hcb278e6_0 conda-forge lzo 2.10 h516909a_1000 conda-forge mako 1.2.4 pyhd8ed1ab_0 conda-forge mamba 1.4.2 py311h3072747_0 conda-forge markupsafe 2.1.3 py311h459d7ec_0 conda-forge matplotlib-inline 0.1.6 pyhd8ed1ab_0 conda-forge mistune 2.0.5 pyhd8ed1ab_0 conda-forge nb_conda_kernels 2.3.1 py311h38be061_2 conda-forge nbclassic 1.0.0 pyhb4ecaf3_1 conda-forge nbclient 0.8.0 pyhd8ed1ab_0 conda-forge nbconvert 7.4.0 pyhd8ed1ab_0 conda-forge nbconvert-core 7.4.0 pyhd8ed1ab_0 conda-forge nbconvert-pandoc 7.4.0 pyhd8ed1ab_0 conda-forge nbfetch 0.0.5 pypi_0 pypi nbformat 5.9.0 pyhd8ed1ab_0 conda-forge nbgitpuller 1.2.0 pyhd8ed1ab_0 conda-forge ncurses 6.4 hcb278e6_0 conda-forge nest-asyncio 1.5.6 pyhd8ed1ab_0 conda-forge nodejs 18.15.0 h4abf6b9_1 conda-forge notebook 6.4.6 pypi_0 pypi notebook-shim 0.2.3 pyhd8ed1ab_0 conda-forge oauthlib 3.2.2 pyhd8ed1ab_0 conda-forge openssl 3.1.3 hd590300_0 conda-forge overrides 7.3.1 pyhd8ed1ab_0 conda-forge packaging 23.1 pyhd8ed1ab_0 conda-forge pamela 1.0.0 py_0 conda-forge pandoc 2.19.2 h32600fe_2 conda-forge pandocfilters 1.5.0 pyhd8ed1ab_0 conda-forge parso 0.8.3 pyhd8ed1ab_0 conda-forge pexpect 4.8.0 pyh1a96a4e_2 conda-forge pickleshare 0.7.5 py_1003 conda-forge pip 23.1.2 pyhd8ed1ab_0 conda-forge pkgutil-resolve-name 1.3.10 pyhd8ed1ab_0 conda-forge platformdirs 3.5.3 pyhd8ed1ab_0 conda-forge pluggy 1.0.0 pyhd8ed1ab_5 conda-forge prometheus_client 0.17.0 pyhd8ed1ab_0 conda-forge prompt-toolkit 3.0.38 pyha770c72_0 conda-forge prompt_toolkit 3.0.38 hd8ed1ab_0 conda-forge psutil 5.9.5 py311h2582759_0 conda-forge ptyprocess 0.7.0 pyhd3deb0d_0 conda-forge pure_eval 0.2.2 pyhd8ed1ab_0 conda-forge pybind11-abi 4 hd8ed1ab_3 conda-forge pycosat 0.6.4 py311hd4cff14_1 conda-forge pycparser 2.21 pyhd8ed1ab_0 conda-forge pycurl 7.45.1 py311hae980a4_3 conda-forge pydantic 1.10.13 pypi_0 pypi pygments 2.15.1 pyhd8ed1ab_0 conda-forge pyjwt 2.7.0 pyhd8ed1ab_0 conda-forge pyopenssl 23.2.0 pyhd8ed1ab_1 conda-forge pyparsing 3.1.1 pypi_0 pypi pyrsistent 0.19.3 py311h2582759_0 conda-forge pysocks 1.7.1 pyha2e5f31_6 conda-forge python 3.11.4 hab00c5b_0_cpython conda-forge python-dateutil 2.8.2 pyhd8ed1ab_0 conda-forge python-fastjsonschema 2.17.1 pyhd8ed1ab_0 conda-forge python-json-logger 2.0.7 pyhd8ed1ab_0 conda-forge python_abi 3.11 3_cp311 conda-forge pytz 2023.3 pyhd8ed1ab_0 conda-forge pyyaml 6.0 py311hd4cff14_5 conda-forge pyzmq 25.1.0 py311h75c88c4_0 conda-forge rdflib 5.0.0 pypi_0 pypi readline 8.2 h8228510_1 conda-forge reproc 14.2.4 h0b41bf4_0 conda-forge reproc-cpp 14.2.4 hcb278e6_0 conda-forge requests 2.31.0 pyhd8ed1ab_0 conda-forge requests-oauthlib 1.3.1 pypi_0 pypi rfc3339-validator 0.1.4 pyhd8ed1ab_0 conda-forge rfc3986-validator 0.1.1 pyh9f0ad1d_0 conda-forge rise 5.7.1 pypi_0 pypi ruamel.yaml 0.17.31 py311h459d7ec_0 conda-forge ruamel.yaml.clib 0.2.7 py311h2582759_1 conda-forge send2trash 1.8.2 pyh41d4057_0 conda-forge setuptools 67.7.2 pyhd8ed1ab_0 conda-forge six 1.16.0 pyh6c4a22f_0 conda-forge sniffio 1.3.0 pyhd8ed1ab_0 conda-forge soupsieve 2.3.2.post1 pyhd8ed1ab_0 conda-forge sqlalchemy 2.0.16 py311h459d7ec_0 conda-forge stack_data 0.6.2 pyhd8ed1ab_0 conda-forge terminado 0.17.1 pyh41d4057_0 conda-forge tinycss2 1.2.1 pyhd8ed1ab_0 conda-forge tk 8.6.12 h27826a3_0 conda-forge tomli 2.0.1 pyhd8ed1ab_0 conda-forge toolz 0.12.0 pyhd8ed1ab_0 conda-forge tornado 6.3.2 py311h459d7ec_0 conda-forge tqdm 4.65.0 pyhd8ed1ab_1 conda-forge traitlets 5.9.0 pyhd8ed1ab_0 conda-forge typing-extensions 4.6.3 hd8ed1ab_0 conda-forge typing_extensions 4.6.3 pyha770c72_0 conda-forge typing_utils 0.1.0 pyhd8ed1ab_0 conda-forge tzdata 2023c h71feb2d_0 conda-forge uri-template 1.3.0 pypi_0 pypi urllib3 2.0.3 pyhd8ed1ab_0 conda-forge wcwidth 0.2.6 pyhd8ed1ab_0 conda-forge webcolors 1.13 pypi_0 pypi webencodings 0.5.1 py_1 conda-forge websocket-client 1.5.3 pyhd8ed1ab_0 conda-forge wheel 0.40.0 pyhd8ed1ab_0 conda-forge widgetsnbextension 4.0.9 pyhd8ed1ab_0 conda-forge xz 5.2.6 h166bdaf_0 conda-forge yaml 0.2.5 h7f98852_2 conda-forge yaml-cpp 0.7.0 h27087fc_2 conda-forge zeromq 4.3.4 h9c3ff4c_1 conda-forge zipp 3.15.0 pyhd8ed1ab_0 conda-forge zlib 1.2.13 hd590300_5 conda-forge zstandard 0.19.0 py311hbe0fcd7_1 conda-forge zstd 1.5.2 h3eb15da_6 conda-forge ``` https://cybergisx.cigi.illinois.edu ``` # packages in environment at /opt/conda: # # Name Version Build Channel _libgcc_mutex 0.1 conda_forge conda-forge _openmp_mutex 4.5 1_gnu conda-forge alabaster 0.7.12 pypi_0 pypi alembic 1.7.5 pyhd8ed1ab_0 conda-forge anyio 3.5.0 py39hf3d152e_0 conda-forge argon2-cffi 21.3.0 pyhd8ed1ab_0 conda-forge argon2-cffi-bindings 21.2.0 py39h3811e60_1 conda-forge async_generator 1.10 py_0 conda-forge atk-1.0 2.36.0 h3371d22_4 conda-forge attrs 21.4.0 pyhd8ed1ab_0 conda-forge autopep8 1.6.0 pypi_0 pypi babel 2.9.1 pyh44b312d_0 conda-forge backcall 0.2.0 pyh9f0ad1d_0 conda-forge backports 1.0 py_2 conda-forge backports.functools_lru_cache 1.6.4 pyhd8ed1ab_0 conda-forge black 22.3.0 pypi_0 pypi bleach 4.1.0 pyhd8ed1ab_0 conda-forge blinker 1.4 py_1 conda-forge branca 0.4.2 pyhd8ed1ab_0 conda-forge brotli 1.0.9 h7f98852_6 conda-forge brotli-bin 1.0.9 h7f98852_6 conda-forge brotlipy 0.7.0 py39h3811e60_1003 conda-forge bzip2 1.0.8 h7f98852_4 conda-forge c-ares 1.18.1 h7f98852_0 conda-forge ca-certificates 2021.10.8 ha878542_0 conda-forge cairo 1.16.0 ha00ac49_1009 conda-forge certifi 2021.10.8 py39hf3d152e_1 conda-forge certipy 0.1.3 py_0 conda-forge cffi 1.15.0 py39h4bc2ebd_0 conda-forge charset-normalizer 2.0.10 pyhd8ed1ab_0 conda-forge click 8.1.1 pypi_0 pypi colorama 0.4.4 pyh9f0ad1d_0 conda-forge conda 4.11.0 py39hf3d152e_0 conda-forge conda-package-handling 1.7.3 py39h3811e60_1 conda-forge configurable-http-proxy 4.5.0 node17_h7e777a6_2 conda-forge cryptography 36.0.1 py39h95dcef6_0 conda-forge cycler 0.11.0 pyhd8ed1ab_0 conda-forge debugpy 1.5.1 py39he80948d_0 conda-forge decorator 5.1.1 pyhd8ed1ab_0 conda-forge defusedxml 0.7.1 pyhd8ed1ab_0 conda-forge docutils 0.17.1 pypi_0 pypi entrypoints 0.3 pyhd8ed1ab_1003 conda-forge expat 2.4.6 h27087fc_0 conda-forge fasteners 0.17.3 pyhd8ed1ab_0 conda-forge flake8 4.0.1 pypi_0 pypi flit-core 3.6.0 pyhd8ed1ab_0 conda-forge font-ttf-dejavu-sans-mono 2.37 hab24e00_0 conda-forge font-ttf-inconsolata 3.000 h77eed37_0 conda-forge font-ttf-source-code-pro 2.038 h77eed37_0 conda-forge font-ttf-ubuntu 0.83 hab24e00_0 conda-forge fontconfig 2.13.96 ha180cfb_0 conda-forge fonts-conda-ecosystem 1 0 conda-forge fonts-conda-forge 1 0 conda-forge fonttools 4.29.1 py39h3811e60_0 conda-forge freetype 2.10.4 h0708190_1 conda-forge fribidi 1.0.10 h36c2ea0_0 conda-forge gdk-pixbuf 2.42.6 h04a7f16_0 conda-forge geos 3.10.2 h9c3ff4c_0 conda-forge gettext 0.19.8.1 h73d1719_1008 conda-forge giflib 5.2.1 h36c2ea0_2 conda-forge gitdb 4.0.9 pyhd8ed1ab_0 conda-forge gitpython 3.1.27 pyhd8ed1ab_0 conda-forge graphite2 1.3.13 h58526e2_1001 conda-forge graphviz 2.50.0 h8e749b2_2 conda-forge greenlet 1.1.2 py39he80948d_1 conda-forge gtk2 2.24.33 h90689f9_2 conda-forge gts 0.7.6 h64030ff_2 conda-forge harfbuzz 3.4.0 hb4a5f5f_0 conda-forge icu 69.1 h9c3ff4c_0 conda-forge idna 3.1 pyhd3deb0d_0 conda-forge imagesize 1.3.0 pypi_0 pypi importlib-metadata 4.10.0 py39hf3d152e_0 conda-forge importlib_resources 5.4.0 pyhd8ed1ab_0 conda-forge ipykernel 6.6.1 py39hef51801_0 conda-forge ipyleaflet 0.15.0 pyhd8ed1ab_3 conda-forge ipympl 0.8.8 pyhd8ed1ab_0 conda-forge ipython 7.31.0 py39hf3d152e_0 conda-forge ipython-sql 0.4.0 pypi_0 pypi ipython_genutils 0.2.0 py_1 conda-forge ipywidgets 7.6.5 pyhd8ed1ab_0 conda-forge jbig 2.1 h7f98852_2003 conda-forge jedi 0.18.1 py39hf3d152e_0 conda-forge jinja2 3.0.3 pyhd8ed1ab_0 conda-forge jpeg 9e h7f98852_0 conda-forge json5 0.9.5 pyh9f0ad1d_0 conda-forge jsonschema 4.3.3 pyhd8ed1ab_0 conda-forge jupyter-server-mathjax 0.2.5 pyhc268e32_0 conda-forge jupyter_client 7.1.0 pyhd8ed1ab_0 conda-forge jupyter_contrib_core 0.3.3 py_2 conda-forge jupyter_contrib_nbextensions 0.5.1 pyhd8ed1ab_2 conda-forge jupyter_core 4.9.1 py39hf3d152e_1 conda-forge jupyter_highlight_selected_word 0.2.0 py39hf3d152e_1005 conda-forge jupyter_latex_envs 1.4.6 pyhd8ed1ab_1002 conda-forge jupyter_nbextensions_configurator 0.4.1 pyhd8ed1ab_2 conda-forge jupyter_server 1.13.1 pyhd8ed1ab_0 conda-forge jupyter_telemetry 0.1.0 pyhd8ed1ab_1 conda-forge jupyterhub 2.0.2 hd8ed1ab_0 conda-forge jupyterhub-base 2.0.2 pyhd8ed1ab_0 conda-forge jupyterlab 3.2.6 pyhd8ed1ab_0 conda-forge jupyterlab-git 0.34.1 pyhd8ed1ab_0 conda-forge jupyterlab-sos 0.8.1 pyhd8ed1ab_0 conda-forge jupyterlab-stickyland 0.2.1 pypi_0 pypi jupyterlab-transient-display-data 0.4.2 pyhc268e32_0 conda-forge jupyterlab_code_formatter 1.4.10 pyhd8ed1ab_1 conda-forge jupyterlab_pygments 0.1.2 pyh9f0ad1d_0 conda-forge jupyterlab_server 2.10.3 pyhd8ed1ab_0 conda-forge jupyterlab_widgets 1.0.2 pyhd8ed1ab_0 conda-forge jupyterthemes 0.20.0 py_1 conda-forge kiwisolver 1.3.2 py39h1a9c180_1 conda-forge krb5 1.19.2 hcc1bbae_3 conda-forge lcms2 2.12 hddcbb42_0 conda-forge ld_impl_linux-64 2.36.1 hea4e1c9_2 conda-forge lerc 3.0 h9c3ff4c_0 conda-forge lesscpy 0.15.0 pyhd8ed1ab_0 conda-forge libarchive 3.5.2 hccf745f_1 conda-forge libblas 3.9.0 13_linux64_openblas conda-forge libbrotlicommon 1.0.9 h7f98852_6 conda-forge libbrotlidec 1.0.9 h7f98852_6 conda-forge libbrotlienc 1.0.9 h7f98852_6 conda-forge libcblas 3.9.0 13_linux64_openblas conda-forge libcurl 7.81.0 h2574ce0_0 conda-forge libdeflate 1.8 h7f98852_0 conda-forge libedit 3.1.20191231 he28a2e2_2 conda-forge libev 4.33 h516909a_1 conda-forge libffi 3.4.2 h7f98852_5 conda-forge libgcc-ng 11.2.0 h1d223b6_11 conda-forge libgd 2.3.3 h3cfcdeb_1 conda-forge libgfortran-ng 11.2.0 h69a702a_12 conda-forge libgfortran5 11.2.0 h5c6108e_12 conda-forge libglib 2.70.2 h174f98d_4 conda-forge libgomp 11.2.0 h1d223b6_11 conda-forge libiconv 1.16 h516909a_0 conda-forge libimagequant 2.17.0 h7f98852_1 conda-forge liblapack 3.9.0 13_linux64_openblas conda-forge libmamba 0.19.1 h3985d26_0 conda-forge libmambapy 0.19.1 py39h8bfa403_0 conda-forge libnghttp2 1.43.0 h812cca2_1 conda-forge libopenblas 0.3.18 pthreads_h8fe5266_0 conda-forge libpng 1.6.37 h21135ba_2 conda-forge librsvg 2.52.5 h0a9e6e8_2 conda-forge libsodium 1.0.18 h36c2ea0_1 conda-forge libsolv 0.7.19 h780b84a_5 conda-forge libssh2 1.10.0 ha56f1ee_2 conda-forge libstdcxx-ng 11.2.0 he4da1e4_11 conda-forge libtiff 4.3.0 h6f004c6_2 conda-forge libtool 2.4.6 h9c3ff4c_1008 conda-forge libuuid 2.32.1 h7f98852_1000 conda-forge libuv 1.42.0 h7f98852_0 conda-forge libwebp 1.2.2 h3452ae3_0 conda-forge libwebp-base 1.2.2 h7f98852_1 conda-forge libxcb 1.13 h7f98852_1004 conda-forge libxml2 2.9.12 h885dcf4_1 conda-forge libxslt 1.1.33 h0ef7038_3 conda-forge libzlib 1.2.11 h36c2ea0_1013 conda-forge lxml 4.8.0 py39h107f48f_0 conda-forge lz4-c 1.9.3 h9c3ff4c_1 conda-forge lzo 2.10 h516909a_1000 conda-forge mako 1.1.6 pyhd8ed1ab_0 conda-forge mamba 0.19.1 py39hfa8f2c8_0 conda-forge markupsafe 2.0.1 py39h3811e60_1 conda-forge matplotlib-base 3.5.1 py39h2fa2bec_0 conda-forge matplotlib-inline 0.1.3 pyhd8ed1ab_0 conda-forge mccabe 0.6.1 pypi_0 pypi mistune 0.8.4 py39h3811e60_1005 conda-forge munkres 1.1.4 pyh9f0ad1d_0 conda-forge mypy-extensions 0.4.3 pypi_0 pypi nbclassic 0.3.5 pyhd8ed1ab_0 conda-forge nbclient 0.5.9 pyhd8ed1ab_0 conda-forge nbconvert 6.4.0 py39hf3d152e_0 conda-forge nbdime 3.1.1 pyhd8ed1ab_0 conda-forge nbformat 5.1.3 pyhd8ed1ab_0 conda-forge nbgitpuller 1.1.0 pypi_0 pypi nbsphinx 0.8.8 pypi_0 pypi ncurses 6.2 h58526e2_4 conda-forge nest-asyncio 1.5.4 pyhd8ed1ab_0 conda-forge networkx 2.6.3 pyhd8ed1ab_1 conda-forge nodejs 17.1.0 h8ca31f7_2 conda-forge notebook 6.2.0 py39hf3d152e_0 conda-forge numpy 1.22.2 py39h91f2184_0 conda-forge oauthlib 3.1.1 pyhd8ed1ab_0 conda-forge openjpeg 2.4.0 hb52868f_1 conda-forge openssl 1.1.1l h7f98852_0 conda-forge packaging 21.3 pyhd8ed1ab_0 conda-forge pamela 1.0.0 py_0 conda-forge pandas 1.4.1 py39hde0f152_0 conda-forge pandoc 2.16.2 h7f98852_0 conda-forge pandocfilters 1.5.0 pyhd8ed1ab_0 conda-forge pango 1.50.3 h9967ed3_0 conda-forge parso 0.8.3 pyhd8ed1ab_0 conda-forge pathspec 0.9.0 pypi_0 pypi pcre 8.45 h9c3ff4c_0 conda-forge pexpect 4.8.0 pyh9f0ad1d_2 conda-forge pickleshare 0.7.5 py_1003 conda-forge pillow 9.0.1 py39he69867a_1 conda-forge pip 22.0.4 pypi_0 pypi pixman 0.40.0 h36c2ea0_0 conda-forge platformdirs 2.5.1 pypi_0 pypi ply 3.11 py_1 conda-forge prettytable 0.7.2 pypi_0 pypi prometheus_client 0.12.0 pyhd8ed1ab_0 conda-forge prompt-toolkit 3.0.24 pyha770c72_0 conda-forge psutil 5.9.0 py39h3811e60_0 conda-forge pthread-stubs 0.4 h36c2ea0_1001 conda-forge ptyprocess 0.7.0 pyhd3deb0d_0 conda-forge pybind11-abi 4 hd8ed1ab_3 conda-forge pycodestyle 2.8.0 pypi_0 pypi pycodestyle-magic 0.5 pypi_0 pypi pycosat 0.6.3 py39h3811e60_1009 conda-forge pycparser 2.21 pyhd8ed1ab_0 conda-forge pycurl 7.44.1 py39h72e3413_1 conda-forge pydot 1.4.2 py39hf3d152e_1 conda-forge pydotplus 2.0.2 pyhaef67bd_5 conda-forge pyflakes 2.4.0 pypi_0 pypi pygments 2.11.2 pyhd8ed1ab_0 conda-forge pyjwt 2.3.0 pyhd8ed1ab_1 conda-forge pyopenssl 21.0.0 pyhd8ed1ab_0 conda-forge pyparsing 3.0.6 pyhd8ed1ab_0 conda-forge pyrsistent 0.18.0 py39h3811e60_0 conda-forge pysocks 1.7.1 py39hf3d152e_4 conda-forge python 3.9.7 hb7a2778_3_cpython conda-forge python-dateutil 2.8.2 pyhd8ed1ab_0 conda-forge python-json-logger 2.0.1 pyh9f0ad1d_0 conda-forge python-xxhash 2.0.2 py39h3811e60_1 conda-forge python_abi 3.9 2_cp39 conda-forge pytz 2021.3 pyhd8ed1ab_0 conda-forge pyyaml 6.0 py39h3811e60_3 conda-forge pyzmq 22.3.0 py39h37b5a0c_1 conda-forge readline 8.1 h46c0cb4_0 conda-forge reproc 14.2.3 h7f98852_0 conda-forge reproc-cpp 14.2.3 h9c3ff4c_0 conda-forge requests 2.27.1 pyhd8ed1ab_0 conda-forge rise 5.7.1 py39hf3d152e_1 conda-forge ruamel.yaml 0.17.19 py39h3811e60_0 conda-forge ruamel.yaml.clib 0.2.6 py39h3811e60_0 conda-forge ruamel_yaml 0.15.80 py39h3811e60_1006 conda-forge scipy 1.8.0 py39hee8e79c_1 conda-forge send2trash 1.8.0 pyhd8ed1ab_0 conda-forge setuptools 60.5.0 py39hf3d152e_0 conda-forge shapely 1.8.0 py39ha65c37e_5 conda-forge six 1.16.0 pyh6c4a22f_0 conda-forge smmap 3.0.5 pyh44b312d_0 conda-forge sniffio 1.2.0 py39hf3d152e_2 conda-forge snowballstemmer 2.2.0 pypi_0 pypi sos 0.22.6 pyhd8ed1ab_0 conda-forge sphinx 4.5.0 pypi_0 pypi sphinxcontrib-applehelp 1.0.2 pypi_0 pypi sphinxcontrib-devhelp 1.0.2 pypi_0 pypi sphinxcontrib-htmlhelp 2.0.0 pypi_0 pypi sphinxcontrib-jsmath 1.0.1 pypi_0 pypi sphinxcontrib-qthelp 1.0.3 pypi_0 pypi sphinxcontrib-serializinghtml 1.1.5 pypi_0 pypi sqlalchemy 1.4.29 py39h3811e60_0 conda-forge sqlite 3.37.0 h9cd32fc_0 conda-forge sqlparse 0.4.2 pypi_0 pypi stickyland 0.2.1 pypi_0 pypi terminado 0.12.1 py39hf3d152e_1 conda-forge testpath 0.5.0 pyhd8ed1ab_0 conda-forge tk 8.6.11 h27826a3_1 conda-forge toml 0.10.2 pypi_0 pypi tomli 2.0.1 pypi_0 pypi tornado 6.1 py39h3811e60_2 conda-forge tqdm 4.62.3 pyhd8ed1ab_0 conda-forge traitlets 5.1.1 pyhd8ed1ab_0 conda-forge traittypes 0.2.1 pyh9f0ad1d_2 conda-forge typing_extensions 4.1.1 pyha770c72_0 conda-forge tzdata 2021e he74cb21_0 conda-forge unicodedata2 14.0.0 py39h3811e60_0 conda-forge urllib3 1.26.8 pyhd8ed1ab_1 conda-forge wcwidth 0.2.5 pyh9f0ad1d_2 conda-forge webencodings 0.5.1 py_1 conda-forge websocket-client 1.2.3 pyhd8ed1ab_0 conda-forge wheel 0.37.1 pyhd8ed1ab_0 conda-forge widgetsnbextension 3.5.2 py39hf3d152e_1 conda-forge xorg-kbproto 1.0.7 h7f98852_1002 conda-forge xorg-libice 1.0.10 h7f98852_0 conda-forge xorg-libsm 1.2.3 hd9c2040_1000 conda-forge xorg-libx11 1.7.2 h7f98852_0 conda-forge xorg-libxau 1.0.9 h7f98852_0 conda-forge xorg-libxdmcp 1.1.3 h7f98852_0 conda-forge xorg-libxext 1.3.4 h7f98852_1 conda-forge xorg-libxrender 0.9.10 h7f98852_1003 conda-forge xorg-renderproto 0.11.1 h7f98852_1002 conda-forge xorg-xextproto 7.3.0 h7f98852_1002 conda-forge xorg-xproto 7.0.31 h7f98852_1007 conda-forge xxhash 0.8.0 h7f98852_3 conda-forge xyzservices 2022.2.0 pyhd8ed1ab_0 conda-forge xz 5.2.5 h516909a_1 conda-forge yaml 0.2.5 h7f98852_2 conda-forge yaml-cpp 0.6.3 he1b5a44_4 conda-forge zeromq 4.3.4 h9c3ff4c_1 conda-forge zipp 3.7.0 pyhd8ed1ab_0 conda-forge zlib 1.2.11 h36c2ea0_1013 conda-forge zstd 1.5.1 ha95c52a_0 conda-forge ```
Configuration Using CILogon as the Authenticator for both. DockerSpawner for CyberGISX and Kubernetes for I-GUIDE.