使用 Databricks Repos API 将顶级生产文件夹中的 Repo 升级到最新版本

Using the Databricks Repos API to bring Repo in top-level production folder to latest version

我在使用 Databricks Repos API 的 Github Actions 工作流程中遇到问题。我们希望 Git 操作中的 API 调用将我们的 Databricks Repos 顶级文件夹中的 Repo 带到合并到主分支中的最新版本。

我们设置的 Github Actions 工作流是:

on:
  pull_request:
    types:
      - closed

jobs:
  if_merged:
    if: github.event.pull_request.merged == true
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - run: |
          export DATABRICKS_TOKEN=databricks_token_here
          curl PATCH --header "Authorization: Bearer $DATABRICKS_TOKEN" \
          https://<databricks-instance>/api/2.0/repos/{repo_id}?branch=main

合并后,Git集线器操作成功。但是当回到 Databricks 中的 Repo 时,更新的文件不存在,除非我们拉入 Databricks Repos UI.

A​​ctions 工作流程中是否缺少某些内容?

是的,您有一个错误 - 分支名称的负载应该是 JSON,而不是 URL 的一部分。这里是 working code:

curl -s -n -X PATCH  "$DATABRICKS_HOST/api/2.0/repos/$STAGING_REPOS_ID" \
  -H "Authorization: Bearer $DATABRICKS_TOKEN" -d '{"branch": "main"}'

P.S。您还可以将 databricks-cli 与 databricks repos update 命令一起使用,因为它是 shown here。主要优点 - 您可以使用回购路径而不是回购 ID。