跳转到主要内容

JupyterLab查看GitLab仓库

项目描述

JupyterLab GitLab

用于浏览GitLab仓库的JupyterLab扩展(只读模式)。

此扩展基于 jupyterlab-github。所有荣誉归于JupyterLab团队,特别是Ian Rose,github扩展的贡献!

还要感谢 Mark Ghiorso 提供的 jupyterlab_gitlab 扩展,我从其中汲取了一些灵感。它不符合我的需求(没有服务器扩展),所以我决定基于jupyterlab-github的最新版本(v0.10.0)创建自己的扩展。

此扩展由一个名为 jupyterlab_gitlab 的Python包组成,用于服务器扩展,以及一个名为 jupyterlab-gitlab 的NPM包,用于前端扩展。

服务器扩展的目的是添加您需要从 https://gitlab.com/profile/personal_access_tokens 获取的 GitLab 凭证,然后代理您的 GitLab 请求。注意,OAuth2 令牌也受支持。

简介

本扩展是什么

安装此扩展后,将在 JupyterLab 的左侧区域添加一个额外的文件浏览器标签。此文件浏览器允许您选择 GitLab 组和用户,浏览他们的仓库,并打开这些仓库中的文件。如果这些文件是笔记本,您可以像运行其他笔记本一样运行它们。您还可以将内核附加到文本文件并运行它们。基本上,您应该能够打开 JupyterLab 可以处理的任何仓库中的文件。

警告!目前不支持子组。

以下是插件在 GitLab 中打开此文件的截图:gitception

本扩展不是什么

这不是一个提供完整 GitLab 访问的扩展,例如保存文件、提交更改、分支仓库等。

如果您想从 JupyterLab 使用 git,请查看 jupyterlab-git 扩展。

要求

  • JupyterLab >= 4.0
  • JupyterLab 1.x 版本 1.x
  • JupyterLab 2.x 版本 2.x
  • JupyterLab 3.x 版本 3.x
  • JupyterLab 4.x 版本 4.x
  • 服务器扩展的 GitLab 账户

安装

安装服务器和实验室扩展

对于 Jupyterlab >= 3.0,两个扩展都从 Python 包中安装

pip install jupyterlab-gitlab

对于 Jupyterlab < 3.0,您必须分别安装服务器和实验室扩展

jupyter labextension install jupyterlab-gitlab
pip install jupyterlab-gitlab

从 GitLab 获取您的凭据

  1. 前往 https://gitlab.com/profile/personal_access_tokens 或从 GitLab,转到您的 设置 > 访问令牌
  2. 名称 下,输入一个简短描述,以标识此令牌的目的。我建议使用类似 jupyterlab-gitlab 的内容。
  3. 在范围下,勾选 api 范围。
  4. 点击 创建个人访问令牌。您将看到您的新个人访问令牌(一个 21 个字符的字符串)。点击复制到剪贴板图标,并将其暂时粘贴到本地的文本文件中。如果您有像 1password 这样的密码管理器,请使用它。

这是您在 GitLab 中唯一一次看到此令牌的机会。如果您丢失它,您将需要创建另一个。

现在,您应该将您从 GitLab 获取的凭据添加到您的笔记本配置文件中。有关生成配置文件的说明,请参阅 此处。一旦您找到了此文件,请向其中添加以下行

c.GitLabConfig.access_token = "< YOUR_ACCESS_TOKEN >"

其中 < YOUR_ACCESS_TOKEN > 是您上面获得的字符串值。它也可以是一个 OAuth2 令牌。

自定义

自定义服务器扩展

您已经看到了如何将您的 access_token 添加到笔记本配置文件中。您可以使用该文件修改其他参数。以下是默认值

c.GitLabConfig.allow_client_side_access_token = False
c.GitLabConfig.url = "https://gitlab.com"
c.GitLabConfig.validate_cert = True

如果您运行自己的 GitLab 实例,例如,请更新 c.GitLabConfig.url 以指向它。

自定义实验室扩展

您可以在启动时设置插件以显示特定的仓库。在 JupyterLab 设置菜单中打开“高级设置”编辑器,然后在 GitLab 设置下添加

{
  "baseUrl": "https://gitlab.com",
  "defaultRepo": "owner/repository"
}

其中 owner 是 GitLab 用户或组,repository 是您想要打开的仓库的名称。

baseUrl 也可以更新以指向您自己的 GitLab 实例。如果您使用服务器扩展,此 URL 仅用于“在 GitLab 上打开此仓库”按钮。

故障排除

如果您看到前端扩展,但它不起作用,请检查服务器扩展是否已启用

jupyter server extension list

如果已安装并启用了服务器扩展,但您未看到前端扩展,请检查前端扩展是否已安装

jupyter labextension list

贡献

开发安装

注意:您需要 NodeJS 来构建扩展包。

jlpm 命令是 JupyterLab 集成的 yarn 的固定版本。您可以使用下面的 yarnnpm 替代 jlpm

# Clone the repo to your local environment
# Change directory to the jupyterlab-gitlab directory
# Install package in development mode
pip install -e .
# Link your development version of the extension with JupyterLab
jupyter labextension develop . --overwrite
# Rebuild extension Typescript source after making changes
jlpm run build

您可以在不同的终端中同时监视源目录并运行 JupyterLab,以监视扩展源代码的变化并自动重新构建扩展。

# Watch the source directory in one terminal, automatically rebuilding when needed
jlpm run watch
# Run JupyterLab in another terminal
jupyter lab

在监视命令运行时,每次保存的更改都将立即在本地构建并可供正在运行的 JupyterLab 使用。刷新 JupyterLab 以在浏览器中加载更改(您可能需要等待几秒钟以重新构建扩展)。

默认情况下,jlpm run build 命令为此扩展生成源映射,以便使用浏览器开发者工具更容易地进行调试。要同时为 JupyterLab 核心扩展生成源映射,可以运行以下命令

jupyter lab build --minimize=False

卸载

pip uninstall jupyterlab-gitlab

对于 JupyterLab < 3,在删除 Python 包后还需要运行以下命令

jupyter labextension uninstall jupyterlab-gitlab

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面