### Description

The Databricks jobs 2.1 API has the ability to repair failed or skipped tasks in a Databricks workflow without having to rerun successful tasks for a given workflow run. It would be nice to be able to leverage this functionality via airflow operators.

### Use case/motivation

The primary motivation is the ability to be more efficient and only have to rerun failed or skipped tasks rather than the entire workflow if only 1 out of 10 tasks fail.

**Repair run API:**
https://docs.databricks.com/dev-tools/api/latest/jobs.html#operation/JobsRunsRepairfail

@alexott for visability

### Related issues

_No response_

### Are you willing to submit a PR?

- [X] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

#
#
#
from __future__ import annotations
import itertools
import json
import sys
import time
import aiohttp
import pytest
import tenacity
from requests import exceptions as requests_exceptions
from requests.auth import HTTPBasicAuth
from airflow.exceptions import AirflowException
from airflow.models import Connection
from airflow.providers.databricks.hooks.databricks import (
    GET_RUN_ENDPOINT,
    SUBMIT_RUN_ENDPOINT,
    DatabricksHook,
    RunState,
)
from airflow.providers.databricks.hooks.databricks_base import (
    AZURE_DEFAULT_AD_ENDPOINT,
    AZURE_MANAGEMENT_ENDPOINT,
    AZURE_METADATA_SERVICE_INSTANCE_URL,
    AZURE_TOKEN_SERVICE_URL,
    DEFAULT_DATABRICKS_SCOPE,
    TOKEN_REFRESH_LEAD_TIME,
    BearerAuth,
)