Verdaccio

Verdaccio

  • Документация
  • Блог
  • Twitter
  • Помощь
  • GitHub
  • Команда
  • Sponsor Us
  • Languages iconRussian
    • English
    • Español
    • Français
    • 中文
    • Yoruba
    • Помочь перевести

›Features

Введение

  • Что такое Verdaccio?
  • Установка
  • Инструмент командной строки
  • Using a private registry
  • Кто использует Verdaccio?
  • Политика безопасности
  • Логотип
  • Uses Cases

    • End to End тестирование
    • Стратегии кэширования
    • GitHub Actions
    • Связь с удалённым репозиторием

    Talks & Articles

    • Статьи
    • Выступления

Features

  • Файл конфигурации
  • Аплинки
  • Доступ к пакетам
  • Аутентификация
  • Уведомления
  • Логи
  • Веб-интерфейс пользователя

Сервер

  • Конфигурация сервера
  • Настройка reverse proxy
  • Настройка SSL-сертификатов
  • Установка в качестве службы Windows
  • Установка на IIS сервер

Разработка

  • Плагины
  • Разработка плагинов
  • Dev Guides

    • Plugin Generator
    • Плагин аутентификации
    • Middleware плагин
    • Плагин хранилища
  • Node API

DevOps

  • Docker
  • Kubernetes
  • Непрерывная интеграция (CI)
  • Cloud

    • Amazon Web Services

    Tools

    • Ansible
    • Puppet
    • Поваренная книга

Руководства

  • Лучшие практики
  • Защита пакетов
  • Amazon Web Services
Translate

Уведомления

Notify was built primarily to use with Slack's Incoming webhooks, but will also deliver a simple payload to any endpoint. This is currently only active for the npm publish command.

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

Пример использования с хуками HipChat, Stride и Google Hangouts Chat:

Verdaccio поддерживает любое API, не стесняйтесь и добавляйте еще примеры.

Одиночное уведомление

notify:
  method: POST
  headers: [{'Content-Type': 'application/json'}]
  endpoint: https://usagge.hipchat.com/v2/room/3729485/notification?auth_token=mySecretToken
  content: '{"color":"green","message":"New package published: * {{ name }}*","notify":true,"message_format":"text"}'

Несколько уведомлений

notify:
  'example-google-chat':
    method: POST
    headers: [{'Content-Type': 'application/json'}]
    endpoint: https://chat.googleapis.com/v1/spaces/AAAAB_TcJYs/messages?key=myKey&token=myToken
    content: '{"text":"New package published: `{{ name }}{{#each versions}} v{{version}}{{/each}}`"}'
  'example-hipchat':
     method: POST
     headers: [{'Content-Type': 'application/json'}]
     endpoint: https://usagge.hipchat.com/v2/room/3729485/notification?auth_token=mySecretToken
     content: '{"color":"green","message":"New package published: * {{ name }}*","notify":true,"message_format":"text"}'
  'example-stride':
     method: POST
     headers: [{'Content-Type': 'application/json'}, {'authorization': 'Bearer secretToken'}]
     endpoint: https://api.atlassian.com/site/{cloudId}/conversation/{conversationId}/message
     content: '{"body": {"version": 1,"type": "doc","content": [{"type": "paragraph","content": [{"type": "text","text": "New package published: * {{ name }}* Publisher name: * {{ publisher.name }}"}]}]}}'

Шаблон

Мы используем Handlebars в качестве движка шаблонов.

Пример форматирования

# итерировать все версии
{{ name }}{{#each versions}} v{{version}}{{/each}}

# publisher and `dist-tag` package published
{{ publisher.name }} has published {{ publishedPackage }}

Свойства

Список свойств, доступных в шаблонах

  • Метаданные
  • Публикатор (тот кто опубликовал)
  • Опубликованный пакет (package@1.0.0)

Метаданные

Метаданные пакета, к которым имеет доступ шаблон

{
    "_id": "@test/pkg1",
    "name": "@test/pkg1",
    "description": "",
    "dist-tags": {
        "beta": "1.0.54"
    },
    "versions": {
        "1.0.54": {
            "name": "@test/pkg1",
            "version": "1.0.54",
            "description": "some description",
            "main": "index.js",
            "scripts": {
                "test": "echo \"Error: no test specified\" && exit 1"
            },
            "keywords": [],
            "author": {
                "name": "Author Name",
                "email": "author@domain.com"
            },
            "license": "MIT",
            "dependencies": {
                "webpack": "4.12.0"
            },
            "readmeFilename": "README.md",
            "_id": "@ test/pkg1@1.0.54",
            "_npmVersion": "6.1.0",
            "_nodeVersion": "9.9.0",
            "_npmUser": {},
            "dist": {
                "integrity": "sha512-JlXWpLtMUBAqvVZBvH7UVLhXkGE1ctmXbDjbH/l0zMuG7wVzQ7GshTYvD/b5C+G2vOL2oiIS1RtayA/kKkTwKw==",
                "shasum": "29c55c52c1e76e966e706165e5b9f22e32aa9f22",
                "tarball": "http://localhost:4873/@test/pkg1/-/@test/pkg1-1.0.54.tgz"
            }
        }
    },
    "readme": "# test",
    "_attachments": {
        "@test/pkg1-1.0.54.tgz": {
            "content_type": "application/octet-stream",
            "data": "H4sIAAAAAAAAE+y9Z5PjyJIgOJ ...",
            "length": 33112
        }
    },
    "time": {}
}

Публикатор

You can get access to the package publisher information in the content of a webhook using the publisher object.

Описание типа publisher:

{
  name: string,
  groups: string[],
  real_groups: string[]
}

Пример:

notify:
  method: POST
  headers: [{'Content-Type': 'application/json'}]
  endpoint: https://usagge.hipchat.com/v2/room/3729485/notification?auth_token=mySecretToken
  content: '{"color":"green","message":"New package published: * {{ name }}*. Publisher name: * {{ publisher.name }} *.","notify":true,"message_format":"text"}'

Заметка: невозможно получить информацию о публикаторе, если в файле package.json уже есть свойство publisher.

Опубликованный пакет

Вы можете получить доступ к пакету, который был опубликован, с помощью ключевого слова {{publishedPackage}}, как это показано ниже.

{{ publisher.name }} has published {{ publishedPackage }}

Конфигурация

СвойствоТипОбязательноеПоддержкаПо умолчаниюОписание
methodstringНетвсеHTTP метод
packagePatternstringНетвсеЗапускает уведомление, только если имя пакета соответствует регэкспу
packagePatternFlagsstringНетвсеФлаги для регэкспа
headersarray/objectДавсеЕсли эндпоинту нужны особенные хэдеры, укажите их здесь, в виде массива пар ключ-значение.
endpointstringДавсеURL эндпоинта для вызова
contentstringДавселюбое Handlebar-выражение
← АутентификацияЛоги →
  • Использование
  • Шаблон
    • Пример форматирования
    • Свойства
    • Метаданные
    • Публикатор
    • Опубликованный пакет
  • Конфигурация
Verdaccio
Docs
Getting StartedDockerConfigurationLogos
Community
User ShowcaseStack OverflowProject ChatFollow Verdaccio on Twitter
More
BlogGitHubStar