Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Руководство [8.17] ›Обработка контента с помощью коннекторов Elastic ›Справочник коннекторов

Справочник коннектора Elastic GitHub

Коннектор Elastic GitHub — это коннектор для GitHub. Этот коннектор написан на Python с использованием фреймворка коннекторов Elastic.

Посмотреть исходный код этого коннектора (ветка 8.17, совместимая с Elastic 8.17).

Выбор справки по коннектору

Вы используете управляемый коннектор в Elastic Cloud или самостоятельный? Разверните документацию в зависимости от метода развертывания.

Справочник управляемого коннектора Elastic

Просмотр справки по управляемому соединителю Elastic
Доступность и предварительные требования

Этот соединитель доступен как управляемый соединитель начиная с версии Elastic 8.11.0.

Чтобы использовать этот соединитель напрямую в Elastic Cloud, выполните все требования к управляемым соединителям.

Создать соединитель GitHub

Использовать интерфейс

Чтобы создать новый соединитель GitHub:

  1. В интерфейсе Kibana перейдите на страницу Поиск → Содержимое → Соединители из главного меню или воспользуйтесь полем глобального поиска.
  2. Следуйте инструкциям по созданию нового собственного соединителя GitHub.

Для дополнительных операций см. Интерфейс соединителей в Kibana.

Использовать API

Вы можете использовать Elasticsearch API создания соединителя для создания нового собственного соединителя GitHub.

Например:

resp = client.connector.put(
    connector_id="my-{service-name-stub}-connector",
    index_name="my-elasticsearch-index",
    name="Content synced from {service-name}",
    service_type="{service-name-stub}",
    is_native=True,
)
print(resp)
const response = await client.connector.put({
  connector_id: "my-{service-name-stub}-connector",
  index_name: "my-elasticsearch-index",
  name: "Content synced from {service-name}",
  service_type: "{service-name-stub}",
  is_native: true,
});
console.log(response);
PUT _connector/my-github-connector
{
  "index_name": "my-elasticsearch-index",
  "name": "Content synced from GitHub",
  "service_type": "github",
  "is_native": true
}
Вам также потребуется создать ключ API для использования соединителем.

Пользователю необходимы привилегии кластера manage_api_key, manage_connector и write_connector_secrets для программирования генерации ключей API.

Чтобы создать ключ API для соединителя:

  1. Запустите следующую команду, заменив значения там, где необходимо. Обратите внимание на значения id и encoded из ответа:

    resp = client.security.create_api_key(
        name="my-connector-api-key",
        role_descriptors={
            "my-connector-connector-role": {
                "cluster": [
                    "monitor",
                    "manage_connector"
                ],
                "indices": [
                    {
                        "names": [
                            "my-index_name",
                            ".search-acl-filter-my-index_name",
                            ".elastic-connectors*"
                        ],
                        "privileges": [
                            "all"
                        ],
                        "allow_restricted_indices": False
                    }
                ]
            }
        },
    )
    print(resp)
    const response = await client.security.createApiKey({
      name: "my-connector-api-key",
      role_descriptors: {
        "my-connector-connector-role": {
          cluster: ["monitor", "manage_connector"],
          indices: [
            {
              names: [
                "my-index_name",
                ".search-acl-filter-my-index_name",
                ".elastic-connectors*",
              ],
              privileges: ["all"],
              allow_restricted_indices: false,
            },
          ],
        },
      },
    });
    console.log(response);
    POST /_security/api_key
    {
      "name": "my-connector-api-key",
      "role_descriptors": {
        "my-connector-connector-role": {
          "cluster": [
            "monitor",
            "manage_connector"
          ],
          "indices": [
            {
              "names": [
                "my-index_name",
                ".search-acl-filter-my-index_name",
                ".elastic-connectors*"
              ],
              "privileges": [
                "all"
              ],
              "allow_restricted_indices": false
            }
          ]
        }
      }
    }
  2. Используйте значение encoded для хранения секрета соединителя и обратите внимание на значение id из этого ответа:

    resp = client.perform_request(
        "POST",
        "/_connector/_secret",
        headers={"Content-Type": "application/json"},
        body={
            "value": "encoded_api_key"
        },
    )
    print(resp)
    const response = await client.transport.request({
      method: "POST",
      path: "/_connector/_secret",
      body: {
        value: "encoded_api_key",
      },
    });
    console.log(response);
    POST _connector/_secret
    {
      "value": "encoded_api_key"
    }
  3. Используйте ключ API id и секрет соединителя id для обновления соединителя:

    resp = client.connector.update_api_key_id(
        connector_id="my_connector_id>",
        api_key_id="API key_id",
        api_key_secret_id="secret_id",
    )
    print(resp)
    const response = await client.connector.updateApiKeyId({
      connector_id: "my_connector_id>",
      api_key_id: "API key_id",
      api_key_secret_id: "secret_id",
    });
    console.log(response);
    PUT /_connector/my_connector_id>/_api_key_id
    {
      "api_key_id": "API key_id",
      "api_key_secret_id": "secret_id"
    }

Подробную информацию обо всех доступных API соединителей см. в документации API Elasticsearch.

Использование

Чтобы использовать этот соединитель как управляемый соединитель, см. Управляемые соединители Elastic.

Для дополнительных операций см. Интерфейс соединителей в Kibana.

Личный токен доступа GitHub

Настройте личный токен доступа GitHub для получения данных из GitHub.

Выполните следующие шаги для генерации личного токена доступа GitHub:

  • Перейдите в Настройки GitHub → Настройки разработчика → Личные токены доступа → Токены (классические).
  • Выберите Generate new token.
  • Добавьте примечание и выберите следующие области:

    • repo
    • user
    • read:org
  • Выберите Generate token и скопируйте токен.
Приложение GitHub

Настройте приложение GitHub для извлечения данных из GitHub.

Выполните эти шаги для создания приложения GitHub:

  • Перейдите в Настройки GitHub → Настройки разработчика → Приложения GitHub.
  • Выберите New GitHub App.
  • Добавьте имя и адрес домашней страницы, снимите флажок Active в разделе Webhook.
  • В разделе Permissions выберите Read-only для Commit statuses, Contents, Issues, Metadata и Pull requests под Repository permissions, выберите Read-only для Members под Organization permissions.
  • Выберите Any account для Where can this GitHub App be installed?.
  • Нажмите Create GitHub App.
  • Прокрутите вниз до раздела Private keys и нажмите Generate a private key.
  • Нажмите Install App в верхнем левом углу, выберите организации/личные учетные записи, на которых вы хотите установить приложение GitHub, и нажмите Install.
  • Вы можете установить его на все репозитории или выбранные репозитории и нажать Install.
Совместимость

Поддерживаются как GitHub, так и GitHub Enterprise.

Настройка

Необходимы следующие поля конфигурации:

Источник данных
Переключатель между GitHub Cloud и GitHub Server.
URL сервера
URL экземпляра GitHub Server. (Только для GitHub Server)
Метод аутентификации
Метод аутентификации экземпляра GitHub. Переключатель между Personal access token и GitHub App.
Токен
Личный токен доступа GitHub для аутентификации экземпляра GitHub. Это поле доступно только для метода аутентификации Personal access token.
Тип репозитория
Переключатель между Organization и Other. Обратите внимание, что безопасность уровня документа (DLS) доступна только для репозиториев Organization.
Название организации
Название организации, данные из которой необходимо получить. Это поле доступно только при установке Authentication method в Personal access token и Repository Type в Organization.
ID приложения
ID приложения GitHub. Это поле доступно только при установке Authentication method в GitHub App.
Приватный ключ приложения
Приватный ключ, сгенерированный для приложения GitHub. Это поле доступно только при установке Authentication method в GitHub App.
Список репозиториев

Список репозиториев, разделенных запятыми, для извлечения данных из экземпляра GitHub. Если значение равно *, соединитель извлечёт данные из всех репозиториев, присутствующих в учетной записи настроенного пользователя.

Значение по умолчанию равно *.

Примеры:

  • elasticsearch,elastic/kibana
  • *

Владение репозиторием

Если часть "OWNER/" в аргументе репозитория "OWNER/REPO" опущена, она по умолчанию устанавливается равной имени аутентифицирующего пользователя.

В приведённых примерах:

  • синхронизированный репозиторий elasticsearch будет репозиторием <OWNER>/elasticsearch
  • синхронизированный репозиторий kibana будет репозиторием, принадлежащим Elastic

Часть "OWNER/" аргумента репозитория "OWNER/REPO" должна быть указана при выборе GitHub App в качестве Authentication method.

Это поле можно обойти с помощью расширенных правил синхронизации.

Включить SSL
Включить SSL для экземпляра GitHub.
Сертификат SSL

Сертификат SSL для экземпляра GitHub. Пример:

-----BEGIN CERTIFICATE-----
MIID+jCCAuKgAwIBAgIGAJJMzlxLMA0GCSqGSIb3DQEBCwUAMHoxCzAJBgNVBAYT
...
7RhLQyWn2u00L7/9Omw=
-----END CERTIFICATE-----
Включить безопасность уровня документа
Переключить для включения безопасности уровня документа (DLS). При включении, полные синхронизации будут извлекать списки управления доступом для каждого документа и хранить их в поле _allow_access_control. DLS доступна только при установке Repository Type в Organization.
Документы и синхронизации

Соединитель синхронизирует следующие объекты и сущности:

  • Репозитории
  • Запросы на добавление
  • Вопросы
  • Файлы и папки

Обрабатываются только следующие расширения файлов:

  • .markdown
  • .md
  • .rst
  • Содержимое файлов, размер которых превышает 10 МБ, не будет извлечено. (Подключенные к самообслуживанию коннекторы могут использовать локальную службу извлечения содержимого для обработки больших бинарных файлов.)
  • Разрешения не синхронизируются. Все документы, индексированные в развертывании Elastic, будут видны всем пользователям с доступом к этому индексу Elasticsearch.
Типы синхронизации

Полные синхронизации по умолчанию поддерживаются всеми коннекторами.

Этот коннектор также поддерживает инкрементные синхронизации.

Правила синхронизации

Основные правила синхронизации одинаковы для всех коннекторов и доступны по умолчанию. Дополнительную информацию можно найти в типах правил синхронизации.

Расширенные правила синхронизации

Для того, чтобы расширенные правила синхронизации вступили в силу, требуется полная синхронизация.

В следующем разделе описываются расширенные правила синхронизации для данного коннектора. Расширенные правила синхронизации определяются с помощью специфичного для источника фрагмента DSL JSON.

В следующих разделах приведены примеры расширенных правил синхронизации для этого коннектора.

Индексирование документов и файлов на основе имени ветки, настроенного через ключ ветки

[
  {
    "repository": "repo_name",
    "filter": {
      "branch": "sync-rules-feature"
    }
  }
]

Индексирование документов на основе запроса к вопросам, относящимся к ошибкам, через ключ вопроса

[
  {
    "repository": "repo_name",
    "filter": {
      "issue": "is:bug"
    }
  }
]

Индексирование документов на основе запроса к запросам по открытым PR через ключ PR

[
  {
    "repository": "repo_name",
    "filter": {
      "pr": "is:open"
    }
  }
]

Индексирование документов и файлов на основе запросов и имени ветки

[
  {
    "repository": "repo_name",
    "filter": {
      "issue": "is:bug",
      "pr": "is:open",
      "branch": "sync-rules-feature"
    }
  }
]

Все документы, извлеченные данным правилом, индексируются независимо от того, был ли документ уже индексирован предыдущим правилом. Это может привести к дублированию документов, но количество индексированных документов будет отличаться в логах. Проверьте индекс Elasticsearch, чтобы получить фактическое количество документов.

Расширенные правила для перекрытия

[
  {
    "filter": {
      "pr": "is:pr is:merged label:auto-backport merged:>=2023-07-20"
    },
    "repository": "repo_name"
  },
  {
    "filter": {
      "pr": "is:pr is:merged label:auto-backport merged:>=2023-07-15"
    },
    "repository": "repo_name"
  }
]

Если GitHub App выбран в качестве метода аутентификации, необходимо указать часть "OWNER/" в аргументе репозитория "OWNER/REPO".

Извлечение содержимого

См. Извлечение содержимого.

Известные проблемы

В настоящее время для этого коннектора нет известных проблем. Обратитесь к Известным проблемам для получения списка известных проблем всех коннекторов.

Устранение неполадок

См. Устранение неполадок.

Безопасность

См. Безопасность.

Коннектор самообслуживания

Просмотр справки по самоуправляемому коннектору
Доступность и предварительные условия

Этот коннектор доступен в качестве самоуправляемого самоуправляемого коннектора.

Этот самоуправляемый коннектор совместим с версиями Elastic 8.10.0+.

Для использования этого коннектора выполните все требования к самоуправляемому коннектору.

Создание коннектора GitHub

Использование пользовательского интерфейса

Для создания нового коннектора GitHub:

  1. В пользовательском интерфейсе Kibana перейдите на страницу Поиск → Содержимое → Коннекторы из главного меню или воспользуйтесь полем глобального поиска.
  2. Следуйте инструкциям по созданию нового GitHub самоуправляемого коннектора.

Использование API

Для создания нового самоуправляемого коннектора GitHub можно использовать Elasticsearch API создания коннектора.

Например:

resp = client.connector.put(
    connector_id="my-{service-name-stub}-connector",
    index_name="my-elasticsearch-index",
    name="Content synced from {service-name}",
    service_type="{service-name-stub}",
)
print(resp)
const response = await client.connector.put({
  connector_id: "my-{service-name-stub}-connector",
  index_name: "my-elasticsearch-index",
  name: "Content synced from {service-name}",
  service_type: "{service-name-stub}",
});
console.log(response);
PUT _connector/my-github-connector
{
  "index_name": "my-elasticsearch-index",
  "name": "Content synced from GitHub",
  "service_type": "github"
}
Вам также потребуется создать ключ API для использования коннектором.

Пользователю необходимы права кластера manage_api_key, manage_connector и write_connector_secrets для программированного создания ключей API.

Для создания ключа API для коннектора:

  1. Выполните следующую команду, заменив значения, где необходимо. Обратите внимание на значения, возвращаемые из ответа.

    resp = client.security.create_api_key(
        name="connector_name-connector-api-key",
        role_descriptors={
            "connector_name-connector-role": {
                "cluster": [
                    "monitor",
                    "manage_connector"
                ],
                "indices": [
                    {
                        "names": [
                            "index_name",
                            ".search-acl-filter-index_name",
                            ".elastic-connectors*"
                        ],
                        "privileges": [
                            "all"
                        ],
                        "allow_restricted_indices": False
                    }
                ]
            }
        },
    )
    print(resp)
    const response = await client.security.createApiKey({
      name: "connector_name-connector-api-key",
      role_descriptors: {
        "connector_name-connector-role": {
          cluster: ["monitor", "manage_connector"],
          indices: [
            {
              names: [
                "index_name",
                ".search-acl-filter-index_name",
                ".elastic-connectors*",
              ],
              privileges: ["all"],
              allow_restricted_indices: false,
            },
          ],
        },
      },
    });
    console.log(response);
    POST /_security/api_key
    {
      "name": "connector_name-connector-api-key",
      "role_descriptors": {
        "connector_name-connector-role": {
          "cluster": [
            "monitor",
            "manage_connector"
          ],
          "indices": [
            {
              "names": [
                "index_name",
                ".search-acl-filter-index_name",
                ".elastic-connectors*"
              ],
              "privileges": [
                "all"
              ],
              "allow_restricted_indices": false
            }
          ]
        }
      }
    }
  2. Обновите свой файл config.yml со значением ключа API encoded.

Подробные сведения обо всех доступных API-интерфейсах коннекторов см. в документации Elasticsearch API.

Использование

Для использования этого коннектора как самоуправляемого коннектора, см. Самоуправляемые коннекторы. Для дополнительных операций с использованием см. Коннекторы UI в Kibana.

Персональный токен доступа GitHub

Настройте персональный токен доступа GitHub для получения данных из GitHub.

Выполните следующие шаги для генерации токена доступа GitHub:

  • Перейдите к Настройки GitHub → Настройки разработчика → Персональные токены доступа → Токены (классические).
  • Выберите Generate new token.
  • Добавьте примечание и выберите следующие области действия:

    • repo
    • user
    • read:org
  • Выберите Generate token и скопируйте токен.
Приложение GitHub

Настройте приложение GitHub для получения данных из GitHub.

Выполните следующие шаги для создания приложения GitHub:

  • Перейдите к Настройки GitHub → Настройки разработчика → Приложения GitHub.
  • Выберите New GitHub App.
  • Добавьте имя и URL-адрес домашней страницы, отмените выбор Active в разделе Webhook.
  • В разделе Permissions выберите Read-only для Commit statuses, Contents, Issues, Metadata и Pull requests в разделе Repository permissions, выберите Read-only для Members в разделе Organization permissions.
  • Выберите Any account для Where can this GitHub App be installed?.
  • Нажмите Create GitHub App.
  • Прокрутите вниз до раздела Private keys и нажмите Generate a private key.
  • Нажмите Install App в верхнем левом углу, выберите организации/личные учетные записи, на которые вы хотите установить приложение GitHub, и нажмите Install.
  • Вы можете установить его на все или выбранные репозитории и нажать Install.
Совместимость

Поддерживаются как GitHub, так и GitHub Enterprise.

Настройка

При использовании рабочего процесса создания коннектора, эти поля изначально будут использовать настройки по умолчанию, заданные в исходном коде коннектора. Они заданы в определении функции get_default_configuration.

Эти настраиваемые поля будут отображены со своими соответствующими метками в пользовательском интерфейсе Kibana. После подключения вы сможете обновить эти значения в Kibana.

Требуются следующие поля конфигурации:

data_source
GitHub Cloud или GitHub Server.
host
URL экземпляра GitHub Server. (Только GitHub Server)
auth_method
Метод аутентификации экземпляра GitHub. Переключайтесь между Personal access token и GitHub App.
token
Персональный токен доступа GitHub для аутентификации экземпляра GitHub. Это поле доступно только для метода аутентификации Personal access token.
repo_type
Переключайтесь между Organization и Other. Обратите внимание, что безопасность на уровне документов (DLS) доступна только для репозиториев Organization.
org_name
Название организации для извлечения данных. Это поле доступно только когда Authentication method установлено на Personal access token и Repository Type установлено на Organization.
app_id
ID приложения GitHub. Это поле доступно только когда Authentication method установлено на GitHub App.
private_key
Закрытый ключ, сгенерированный для приложения GitHub. Это поле доступно только когда Authentication method установлено на GitHub App.
repositories

Список репозиториев для извлечения данных из экземпляра GitHub, разделённый запятыми. Если значение равно *, коннектор извлечёт данные из всех репозиториев, присутствующих в аккаунте настроенного пользователя.

Значение по умолчанию — *.

Примеры:

  • elasticsearch,elastic/kibana
  • *

Владение репозиторием

Если часть "OWNER/" в аргументе репозитория "OWNER/REPO" опущена, она по умолчанию равна имени аутентифицированного пользователя.

В предоставленных примерах:

  • репозиторий elasticsearch, который будет синхронизирован, будет репозиторием <OWNER>/elasticsearch
  • репозиторий kibana, который будет синхронизирован, будет репозиторием, принадлежащим Elastic

Часть "OWNER/" в аргументе репозитория "OWNER/REPO" должна быть указана, когда GitHub App выбрано в качестве Authentication method.

Это поле можно обойти с помощью расширенных правил синхронизации.

ssl_enabled
Включена ли проверка SSL. Значение по умолчанию — False.
ssl_ca

Содержимое сертификата SSL. Примечание: если ssl_enabled равно False, значение в этом поле игнорируется. Пример сертификата:

-----BEGIN CERTIFICATE-----
MIID+jCCAuKgAwIBAgIGAJJMzlxLMA0GCSqGSIb3DQEBCwUAMHoxCzAJBgNVBAYT
...
7RhLQyWn2u00L7/9Omw=
-----END CERTIFICATE-----
use_document_level_security
Включить безопасность на уровне документов (DLS). При включении полные синхронизации извлекут списки управления доступом для каждого документа и сохранят их в поле _allow_access_control. DLS доступен только при установке Repository Type на значение Organization.
retry_count
Число попыток повторного подключения после неудачного запроса к GitHub. Значение по умолчанию — 3.
use_text_extraction_service
Требует отдельной установки сервиса Elastic Text Extraction Service. Требует, чтобы настройки конвейера отключали извлечение текста. Значение по умолчанию — False.
Развертывание с помощью Docker

Вы можете развернуть коннектор GitHub как самоуправляемый коннектор с помощью Docker. Следуйте этим инструкциям.

Шаг 1: Скачать файл образца конфигурации

Скачайте файл образца конфигурации. Вы можете сделать это вручную или выполнить следующую команду:

curl https://raw.githubusercontent.com/elastic/connectors/main/config.yml.example --output ~/connectors-config/config.yml

Не забудьте обновить значение аргумента --output, если имя вашей директории отличается или вы хотите использовать другое имя файла конфигурации.

Шаг 2: Обновить файл конфигурации для вашего подключенного компонента (self-managed)

Обновите файл конфигурации следующими настройками, чтобы он соответствовал вашей среде:

  • elasticsearch.host
  • elasticsearch.api_key
  • connectors

Если вы запускаете службу подключения к контейнеризированной версии Elasticsearch и Kibana, файл конфигурации будет выглядеть так:

# When connecting to your cloud deployment you should edit the host value
elasticsearch.host: http://host.docker.internal:9200
elasticsearch.api_key: <ELASTICSEARCH_API_KEY>

connectors:
  -
    connector_id: <CONNECTOR_ID_FROM_KIBANA>
    service_type: github
    api_key: <CONNECTOR_API_KEY_FROM_KIBANA> # Optional. If not provided, the connector will use the elasticsearch.api_key instead

Использование метода аутентификации elasticsearch.api_key рекомендуется. Однако вы также можете использовать elasticsearch.username и elasticsearch.password для аутентификации с вашим экземпляром Elasticsearch.

Примечание: Вы можете изменить другие значения по умолчанию, просто раскомментировав соответствующие настройки в файле конфигурации и изменив их значения.

Шаг 3: Запустить Docker образ

Запустите Docker образ с помощью службы подключения, используя следующую команду:

docker run \
-v ~/connectors-config:/config \
--network "elastic" \
--tty \
--rm \
docker.elastic.co/enterprise-search/elastic-connectors:8.17.3 \
/app/bin/elastic-ingest \
-c /config/config.yml

Дополнительные сведения см. в DOCKER.md в репозитории elastic/connectors.

Найдите все доступные Docker образы в официальном репозитории.

У нас также есть вариант быстрого запуска с использованием Docker Compose, позволяющий сразу запустить все необходимые службы: Elasticsearch, Kibana и службу подключения. Дополнительную информацию см. в README в репозитории elastic/connectors.

Документы и синхронизация

Подключение синхронизирует следующие объекты и сущности:

  • Репозитории
  • Запросы на вытягивание (Pull Requests)
  • Задачи (Issues)
  • Файлы и папки

Обрабатываются только следующие расширения файлов:

  • .markdown
  • .md
  • .rst
  • Содержимое файлов размером более 10 МБ не будет извлечено.
  • Разрешения не синхронизируются. Все документы, индексированные в развертывании Elastic, будут видны всем пользователям с доступом к этому индексу Elasticsearch.
Типы синхронизации

Полная синхронизация поддерживается по умолчанию для всех подключений.

Это подключение также поддерживает инкрементную синхронизацию.

Правила синхронизации

Базовые правила синхронизации одинаковы для всех подключений и доступны по умолчанию. Подробнее см. Типы правил синхронизации.

Расширенные правила синхронизации

Для вступления в силу расширенных правил синхронизации требуется полная синхронизация.

В этом разделе описаны расширенные правила синхронизации для этого подключения. Расширенные правила синхронизации определяются с помощью фрагмента JSON DSL, специфичного для источника.

В следующих разделах приведены примеры расширенных правил синхронизации для этого подключения.

Индексирование документа и файлов на основе имени ветки, настроенного через ключ ветки

[
  {
    "repository": "repo_name",
    "filter": {
      "branch": "sync-rules-feature"
    }
  }
]

Индексирование документа на основе запроса к задачам, относящимся к ошибкам, через ключ задачи

[
  {
    "repository": "repo_name",
    "filter": {
      "issue": "is:bug"
    }
  }
]

Индексирование документа на основе запроса к PR, относящимся к открытым PR, через ключ PR

[
  {
    "repository": "repo_name",
    "filter": {
      "pr": "is:open"
    }
  }
]

Индексирование документа и файлов на основе запросов и имени ветки

[
  {
    "repository": "repo_name",
    "filter": {
      "issue": "is:bug",
      "pr": "is:open",
      "branch": "sync-rules-feature"
    }
  }
]

Все документы, полученные по данному правилу, индексируются независимо от того, был ли документ уже проиндексирован по предыдущему правилу. Это может привести к дублированию документов, но количество индексированных документов будет отличаться в логах. Проверьте индекс Elasticsearch для фактического количества документов.

Расширенные правила для пересечений

[
  {
    "filter": {
      "pr": "is:pr is:merged label:auto-backport merged:>=2023-07-20"
    },
    "repository": "repo_name"
  },
  {
    "filter": {
      "pr": "is:pr is:merged label:auto-backport merged:>=2023-07-15"
    },
    "repository": "repo_name"
  }
]

Если GitHub App выбран в качестве метода аутентификации, необходимо предоставить часть "OWNER/" в аргументе репозитория "OWNER/REPO".

Извлечение содержимого

См. Извлечение содержимого.

Операции с подключением (self-managed)
Тестирование от начала до конца

Фреймворк подключения позволяет операторам запускать функциональные тесты на реальном источнике данных. Дополнительные сведения см. в тестировании подключения.

Для выполнения E2E тестирования подключения к GitHub выполните следующую команду:

$ make ftest NAME=github

Для более быстрых тестов добавьте флаг DATA_SIZE=small:

make ftest NAME=github DATA_SIZE=small
Известные проблемы

В настоящее время для этого подключения нет известных проблем. Список известных проблем для всех подключений см. в Известных проблемах.

Устранение неполадок

См. Устранение неполадок.

Безопасность

См. Безопасность.

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/es-connectors-github.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API