Verdaccio

Verdaccio

  • Documentación
  • Blog
  • Twitter
  • Ayuda
  • GitHub
  • Contributors
  • Patrocinanos
  • Languages iconEspañol
    • English
    • Français
    • 中文
    • Russian
    • Yoruba
    • Ayuda con traducciones

›Características

Introducción

  • Qué es Verdaccio?
  • Instalación
  • Herramienta de Linea de Comando
  • Using a private registry
  • Quien usa Verdaccio?
  • Security Policy
  • Logotype
  • Uses Cases

    • Pruebas End to End
    • Caching strategies
    • GitHub Actions
    • Linking a Remote Registry

    Talks & Articles

    • Articles
    • Talks

Características

  • Archivo de Configuración
  • Uplinks
  • Acceso a Paquetes
  • Autenticación
  • Notificaciones
  • Registrador
  • Interfaz Web de Usuario

Servidor

  • Configuración del Servidor
  • Configuración de Proxy Inverso
  • Configurar los Certificados SSL
  • Instalación como un Servicio de Windows
  • Instalación en servidor IIS

Desarrollo

  • Plugins
  • Extensiones en Desarrollo
  • Dev Guides

    • Plugin Generator
    • Extensión de Autenticación
    • Extensión de Middleware
    • Extensión de Almacenamiento
  • Nodo API

DevOps

  • Docker
  • Kubernetes
  • Integración Continua
  • Cloud

    • Amazon Web Services

    Tools

    • Ansible
    • Puppet
    • Libro de Cocina del Chef

Guías

  • Mejores Prácticas
  • Protegiendo paquetes
  • Amazon Web Services
Translate

Notificaciones

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.

Uso

Un ejemplo con un hook de HipChat, Stride y Google Hangouts Chat:

Verdaccio supports any API, feel free to add more examples.

Notificación sencilla

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"}'

Múltiples notificaciones

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 }}"}]}]}}'

Modelo

Usamos Handlebars como el motor del modelo principal.

Ejemplos de Formato

# iterate all versions
{{ name }}{{#each versions}} v{{version}}{{/each}}

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

Propiedades

Lista de las propiedades accesibles mediante el modelo

  • Metadata
  • Publisher (quién está publicando)
  • Paquete Publicado (package@1.0.0)

Metadata

Paquete de metadata a la que el modelo tiene acceso

{
    "_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": {}
}

Publisher

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

Vea a continuación el tipo de objeto publisher:

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

Un ejemplo:

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"}'

Nota: no es posible obtener la información de publisher si el archivo package.json ya tiene la propiedad publisher.

Paquete Publicado

You can access to the package is being published with the keyword {{publishedPackage}} as follows.

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

Configuración

PropiedadTipoRequeridoSoportePor DefectoDescripción
methodstringNoallHTTP verb
packagePatternstringNoallSolo ejecutar esta notificación si el nombre del paquete coincide con la expresión regular
packagePatternFlagsstringNoallCualquier bandera para ser usada con la expresión regular
headersarray/objectYesallSi el endpoint requiere encabezados específicos, defínelos aquí como un arreglo (key:value).
endpointstringYesalldefine el URL para el endpoint
contentstringYesallcualquier expresión Handlebar
← AutenticaciónRegistrador →
  • Uso
  • Modelo
    • Ejemplos de Formato
    • Propiedades
    • Metadata
    • Publisher
    • Paquete Publicado
  • Configuración
Verdaccio
Docs
Getting StartedDockerConfigurationLogos
Community
User ShowcaseStack OverflowProject ChatFollow Verdaccio on Twitter
More
BlogGitHubStar