如何访问 Databricks Repos 元数据?

Sta*_*dak 5 databricks databricks-repos

有没有办法访问 Repo 内笔记本内的数据,例如 Repo url 和分支名称?也许是 dbutils 中的东西。

Ale*_*Ott 9

您可以为此使用 Repos API - 特别是Get 命令。您可以通过 dbutils 从可用的笔记本上下文中提取笔记本路径,然后执行两个查询:

  1. 通过Workspace API按路径获取存储库 ID (存储库路径始终包含 3 个组件 - /Repos、目录(用于用户或自定义)和实际存储库名称)
  2. 获取回购数据

像这样的东西:

import json
import requests

ctx = json.loads(
  dbutils.notebook.entry_point.getDbutils().notebook().getContext().toJson())

notebook_path = ctx['extraContext']['notebook_path']
repo_path = '/'.join(notebook_path.split('/')[:4])
api_url = ctx['extraContext']['api_url']
api_token = "your_PAT_token"

repo_dir_data = requests.get(f"{api_url}/api/2.0/workspace/get-status",  
                             headers = {"Authorization": f"Bearer {api_token}"},
                             json={"path": repo_path}).json()
repo_id = repo_dir_data['object_id']
repo_data = requests.get(f"{api_url}/api/2.0/repos/{repo_id}",  
                         headers = {"Authorization": f"Bearer {api_token}"}
                        ).json()
Run Code Online (Sandbox Code Playgroud)