From 508d2494373ca60ef3c123d2aace515ec760ec3f Mon Sep 17 00:00:00 2001 From: "pavel.korolkov" Date: Fri, 13 Mar 2026 15:22:14 +0500 Subject: [PATCH 1/4] docs: Add github PR widget --- .../admin/external-services.ru.md | 18 +++++++++ .../documentation/admin/widgets/types.ru.md | 37 +++++++++++++++++++ .../documentation/release-notes/v1.4.0.ru.md | 4 ++ 3 files changed, 59 insertions(+) diff --git a/content/documentation/admin/external-services.ru.md b/content/documentation/admin/external-services.ru.md index 5f83591..bc684fc 100644 --- a/content/documentation/admin/external-services.ru.md +++ b/content/documentation/admin/external-services.ru.md @@ -159,6 +159,24 @@ Private-Token: <ваш-gitlab-token> Подробнее о том, как получить GitLab token можно узнать в [официальной документации](https://docs.gitlab.com/api/rest/authentication/). +### GitHub + +**Тип авторизации:** Personal Access Token (или токен приложения). + +**Заголовки:** + +| Заголовок | Формат значения | +|-----------------|--------------------| +| `Authorization` | `Bearer <токен>` | + +**Пример:** + +```sh +Authorization: Bearer <ваш-github-token> +``` + +Токен создаётся в настройках GitHub: «Settings» → «Developer settings» → «Personal access tokens». + ### Harbor **Тип авторизации:** Basic Authentication. diff --git a/content/documentation/admin/widgets/types.ru.md b/content/documentation/admin/widgets/types.ru.md index 88e4935..5de064c 100644 --- a/content/documentation/admin/widgets/types.ru.md +++ b/content/documentation/admin/widgets/types.ru.md @@ -73,6 +73,43 @@ title: Типы виджетов Для выполнения действий с PR требуются соответствующие права доступа в репозитории Bitbucket. {{< /alert >}} +## GitHub. Pull Requests + +Виджет отображает Pull Requests (PR) репозитория на GitHub и позволяет просматривать изменения, создавать, сливать и закрывать PR. + +### Авторизация + +Конфигурация авторизации описана в разделе [Внешние сервисы](../external-services/#github). + +### Конфигурация + +| Название | Обязательность | Описание | Значение по умолчанию | +|----------------------|----------------|------------------------------------------------------------------------------------------------------------------------------------------|-----------------------| +| Владелец репозитория | **да** | Владелец репозитория (организация или пользователь). Пример: для `https://github.com/example/my-repo` укажите `example`. | — | +| Репозиторий | **да** | Имя репозитория без `.git`. Пример: для `https://github.com/example/my-repo` укажите `my-repo`. | — | + +### Статус + +В настройках запроса виджета можно фильтровать PR по статусу: + +- **Открыт** — только открытые PR (не черновики). +- **Черновик** — только черновики. +- **Закрыт** — только закрытые PR. +- **Все** — любые PR. + +По умолчанию отображаются открытые PR. В таблице отображаются номер, название, описание, статус, метки, автор, даты; для каждого PR доступны действия через меню. + +### Действия + +- **Изменения** — просмотр списка изменённых файлов и диффа по каждому файлу. +- **Слить** — слияние открытого PR (доступно только для открытых PR, не черновиков). Перед слиянием запрашивается подтверждение. +- **Закрыть** — закрытие PR без слияния. Перед закрытием запрашивается подтверждение. +- **Создать PR** — создание нового Pull Request. В диалоге указываются заголовок, исходная ветка (Исходная ветка), целевая ветка (Ветка назначения) и при необходимости описание. Список веток загружается из репозитория. + +{{< alert level="info" >}} +Для выполнения действий с PR требуются соответствующие права доступа в репозитории GitHub. +{{< /alert >}} + ## CodeScoring. Зависимости Виджет позволяет вывести таблицу с зависимостями продукта на основе информации из CodeScoring с указанием названия зависимости, версии, лицензии, количество уязвимостей и другой информацией для каждой зависимости. diff --git a/content/documentation/release-notes/v1.4.0.ru.md b/content/documentation/release-notes/v1.4.0.ru.md index 53ec930..e3f3efa 100644 --- a/content/documentation/release-notes/v1.4.0.ru.md +++ b/content/documentation/release-notes/v1.4.0.ru.md @@ -23,6 +23,10 @@ CREATE EXTENSION IF NOT EXISTS pg_trgm; - **Глобальный поиск** — добавлен поиск по сущностям платформы ([подробнее](../../user/interface/#глобальный-поиск)). +### Виджеты + +- **GitHub. Pull Requests** — для просмотра и управления Pull Requests в GitHub ([подробнее](../../admin/widgets/types/#github-pull-requests)). + ### Действия - **Wait** — добавлено действие для паузы на заданное время ([подробнее](../../admin/actions/types/#wait)). From 717a17823293e02d2ba3c4e7b730f3bcc66c1865 Mon Sep 17 00:00:00 2001 From: Aleksandr Radchenko <102186217+dacetascien@users.noreply.github.com> Date: Fri, 13 Mar 2026 19:00:38 +0300 Subject: [PATCH 2/4] change workflows to reusable (#125) --- .github/workflows/deploy-prod.yaml | 134 +---------------------------- 1 file changed, 2 insertions(+), 132 deletions(-) diff --git a/.github/workflows/deploy-prod.yaml b/.github/workflows/deploy-prod.yaml index 0f4ef82..cf0e3d5 100644 --- a/.github/workflows/deploy-prod.yaml +++ b/.github/workflows/deploy-prod.yaml @@ -7,136 +7,6 @@ on: types: - closed -# Cancel in-progress jobs for the same tag/branch. -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: false - -permissions: - contents: read - id-token: write - jobs: - deploy: - runs-on: "regular" - if: > - github.event.pull_request.merged == true && - github.event.pull_request.base.ref == 'main' && - startsWith(github.repository, 'deckhouse/') - steps: - - name: Checkout code - uses: actions/checkout@v6 - with: - ref: ${{ github.event.pull_request.merge_commit_sha || github.sha }} - submodules: recursive - fetch-depth: 0 - - - name: Set environment - id: env - run: | - echo "env=production" >> $GITHUB_OUTPUT - - - name: Import secrets - id: secrets - uses: hashicorp/vault-action@v3 - with: - url: https://seguro.flant.com - path: github - role: deckhouse-web-products - method: jwt - jwtGithubAudience: github-access-aud - secrets: | - projects/data/6db2f1ee-9b6f-4f4f-8381-2fb43060478a/github/registry_host DECKHOUSE_REGISTRY_HOST | DECKHOUSE_REGISTRY_HOST ; - projects/data/6db2f1ee-9b6f-4f4f-8381-2fb43060478a/github/registry_host DECKHOUSE_DEV_REGISTRY_HOST | DECKHOUSE_DEV_REGISTRY_HOST ; - projects/data/101ceaca-97cd-462f-aed5-070d9b9de175/dev-registry/writetoken login | DECKHOUSE_DEV_REGISTRY_USER ; - projects/data/101ceaca-97cd-462f-aed5-070d9b9de175/dev-registry/writetoken password | DECKHOUSE_DEV_REGISTRY_PASSWORD ; - projects/data/101ceaca-97cd-462f-aed5-070d9b9de175/registry-write/demotoken login | DECKHOUSE_REGISTRY_USER ; - projects/data/101ceaca-97cd-462f-aed5-070d9b9de175/registry-write/demotoken password | DECKHOUSE_REGISTRY_PASSWORD ; - projects/data/6db2f1ee-9b6f-4f4f-8381-2fb43060478a/github/registry_host DECKHOUSE_REGISTRY_READ_HOST | DECKHOUSE_REGISTRY_READ_HOST ; - projects/data/6db2f1ee-9b6f-4f4f-8381-2fb43060478a/github/registry_read_token login | DECKHOUSE_REGISTRY_READ_USER ; - projects/data/6db2f1ee-9b6f-4f4f-8381-2fb43060478a/github/registry_read_token password | DECKHOUSE_REGISTRY_READ_PASSWORD ; - projects/data/6db2f1ee-9b6f-4f4f-8381-2fb43060478a/github/documentation_deploy_secret KUBECONFIG_BASE64_PROD_25 | KUBECONFIG_BASE64_PROD ; - - - name: Check dev registry credentials - id: check_dev_registry - env: - HOST: ${{steps.secrets.outputs.DECKHOUSE_DEV_REGISTRY_HOST}} - run: | - if [[ -n $HOST ]]; then - echo "has_credentials=true" >> $GITHUB_OUTPUT - echo "web_registry_path=${{steps.secrets.outputs.DECKHOUSE_DEV_REGISTRY_HOST }}/deckhouse/site" >> $GITHUB_OUTPUT - fi - - - name: Login to dev registry - uses: docker/login-action@v3 - if: ${{ steps.check_dev_registry.outputs.has_credentials == 'true' }} - with: - registry: ${{ steps.secrets.outputs.DECKHOUSE_DEV_REGISTRY_HOST }} - username: ${{ steps.secrets.outputs.DECKHOUSE_DEV_REGISTRY_USER }} - password: ${{ steps.secrets.outputs.DECKHOUSE_DEV_REGISTRY_PASSWORD }} - logout: false - - - name: Check rw registry credentials - id: check_rw_registry - env: - HOST: ${{steps.secrets.outputs.DECKHOUSE_REGISTRY_HOST}} - run: | - if [[ -n $HOST ]]; then - echo "has_credentials=true" >> $GITHUB_OUTPUT - echo "web_registry_path=${{steps.secrets.outputs.DECKHOUSE_REGISTRY_HOST }}/deckhouse/site" >> $GITHUB_OUTPUT - fi - - - name: Login to rw registry - uses: docker/login-action@v3 - if: ${{ steps.check_rw_registry.outputs.has_credentials == 'true' }} - with: - registry: ${{ steps.secrets.outputs.DECKHOUSE_REGISTRY_HOST }} - username: ${{ steps.secrets.outputs.DECKHOUSE_REGISTRY_USER }} - password: ${{ steps.secrets.outputs.DECKHOUSE_REGISTRY_PASSWORD }} - logout: false - - - name: Check readonly registry credentials - id: check_readonly_registry - env: - HOST: ${{ steps.secrets.outputs.DECKHOUSE_REGISTRY_READ_HOST }} - run: | - if [[ -n $HOST ]]; then - echo "has_credentials=true" >> $GITHUB_OUTPUT - echo "web_registry_path=${{ steps.secrets.outputs.DECKHOUSE_REGISTRY_READ_HOST }}/deckhouse/site" >> $GITHUB_OUTPUT - fi - - - name: Login to readonly registry - uses: docker/login-action@v3 - if: ${{ steps.check_readonly_registry.outputs.has_credentials == 'true' }} - with: - registry: ${{ steps.secrets.outputs.DECKHOUSE_REGISTRY_READ_HOST }} - username: ${{ steps.secrets.outputs.DECKHOUSE_REGISTRY_READ_USER }} - password: ${{ steps.secrets.outputs.DECKHOUSE_REGISTRY_READ_PASSWORD }} - logout: false - - - name: Build - id: build - uses: werf/actions/build@v2 - with: - channel: beta - kube-config-base64-data: ${{ steps.secrets.outputs.KUBECONFIG_BASE64_PROD }} - env: ${{ steps.env.outputs.env }} - env: - WERF_VIRTUAL_MERGE: 0 - WERF_REPO: ${{ steps.check_rw_registry.outputs.web_registry_path }} - WERF_SECONDARY_REPO: ${{ steps.check_dev_registry.outputs.web_registry_path }} - WERF_SET_URL: "global.url=deckhouse.io" - WERF_SET_URL_RU: "global.url_ru=deckhouse.ru" - - - name: Deploy to ${{ steps.env.outputs.env }} - id: deploy - uses: werf/actions/converge@v2 - with: - channel: beta - kube-config-base64-data: ${{ steps.secrets.outputs.KUBECONFIG_BASE64_PROD }} - env: ${{ steps.env.outputs.env }} - env: - WERF_VIRTUAL_MERGE: 0 - WERF_REPO: ${{ steps.check_readonly_registry.outputs.web_registry_path }} - WERF_SET_URL: "global.url=deckhouse.io" - WERF_SET_URL_RU: "global.url_ru=deckhouse.ru" + call-reusable: + uses: deckhouse/hugo-web-product-module/.github/workflows/deploy-prod.yaml@main \ No newline at end of file From e696fd2c5569805670482670b9d207f42e4f44fd Mon Sep 17 00:00:00 2001 From: Nikita Velgin Date: Tue, 17 Mar 2026 20:58:13 +0300 Subject: [PATCH 3/4] fixes --- content/documentation/admin/external-services.ru.md | 2 +- content/documentation/admin/widgets/types.ru.md | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/content/documentation/admin/external-services.ru.md b/content/documentation/admin/external-services.ru.md index bc684fc..7b8b054 100644 --- a/content/documentation/admin/external-services.ru.md +++ b/content/documentation/admin/external-services.ru.md @@ -161,7 +161,7 @@ Private-Token: <ваш-gitlab-token> ### GitHub -**Тип авторизации:** Personal Access Token (или токен приложения). +**Тип авторизации:** Personal Access Token. **Заголовки:** diff --git a/content/documentation/admin/widgets/types.ru.md b/content/documentation/admin/widgets/types.ru.md index 5de064c..8b69285 100644 --- a/content/documentation/admin/widgets/types.ru.md +++ b/content/documentation/admin/widgets/types.ru.md @@ -80,13 +80,14 @@ title: Типы виджетов ### Авторизация Конфигурация авторизации описана в разделе [Внешние сервисы](../external-services/#github). +В настройках внешнего сервиса или в конфигурации виджета в поле **URL** необходимо указать `https://api.github.com`. ### Конфигурация | Название | Обязательность | Описание | Значение по умолчанию | |----------------------|----------------|------------------------------------------------------------------------------------------------------------------------------------------|-----------------------| | Владелец репозитория | **да** | Владелец репозитория (организация или пользователь). Пример: для `https://github.com/example/my-repo` укажите `example`. | — | -| Репозиторий | **да** | Имя репозитория без `.git`. Пример: для `https://github.com/example/my-repo` укажите `my-repo`. | — | +| Репозиторий | **да** | Название репозитория без `.git`. Пример: для `https://github.com/example/my-repo` укажите `my-repo`. | — | ### Статус @@ -97,14 +98,14 @@ title: Типы виджетов - **Закрыт** — только закрытые PR. - **Все** — любые PR. -По умолчанию отображаются открытые PR. В таблице отображаются номер, название, описание, статус, метки, автор, даты; для каждого PR доступны действия через меню. +По умолчанию отображаются открытые PR. В таблице отображаются: номер, название, описание, статус, метки, автор, дата создания, дата обновления; для каждого PR доступны действия через меню. ### Действия - **Изменения** — просмотр списка изменённых файлов и диффа по каждому файлу. -- **Слить** — слияние открытого PR (доступно только для открытых PR, не черновиков). Перед слиянием запрашивается подтверждение. -- **Закрыть** — закрытие PR без слияния. Перед закрытием запрашивается подтверждение. -- **Создать PR** — создание нового Pull Request. В диалоге указываются заголовок, исходная ветка (Исходная ветка), целевая ветка (Ветка назначения) и при необходимости описание. Список веток загружается из репозитория. +- **Слить** — слияние открытого PR (доступно только для открытых PR, не черновиков). +- **Закрыть** — закрытие PR без слияния. +- **Создать PR** — создание нового Pull Request. В диалоге указываются название, исходная ветка, целевая ветка и описание. {{< alert level="info" >}} Для выполнения действий с PR требуются соответствующие права доступа в репозитории GitHub. From f839188e3efc5a2fa83a0ceede54acd17f858a2f Mon Sep 17 00:00:00 2001 From: Nikita Velgin Date: Tue, 17 Mar 2026 21:00:10 +0300 Subject: [PATCH 4/4] fixes --- content/documentation/release-notes/v1.4.0.ru.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/documentation/release-notes/v1.4.0.ru.md b/content/documentation/release-notes/v1.4.0.ru.md index e3f3efa..b6d6bbc 100644 --- a/content/documentation/release-notes/v1.4.0.ru.md +++ b/content/documentation/release-notes/v1.4.0.ru.md @@ -25,6 +25,8 @@ CREATE EXTENSION IF NOT EXISTS pg_trgm; ### Виджеты +Добавлены новые виджеты: + - **GitHub. Pull Requests** — для просмотра и управления Pull Requests в GitHub ([подробнее](../../admin/widgets/types/#github-pull-requests)). ### Действия