Verdaccio

Verdaccio

  • Docs
  • Blog
  • Twitter
  • Help
  • GitHub
  • Contributors
  • Sponsor Us
  • Languages iconFrançais
    • English
    • Español
    • 中文
    • Russian
    • Yoruba
    • Aidez à traduire

›Features

Introduction

  • C'est quoi Verdaccio?
  • Installation
  • Outil de ligne de commande
  • Using a private registry
  • Who is using Verdaccio?
  • Security Policy
  • Logotype
  • Uses Cases

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

    Talks & Articles

    • Articles
    • Talks

Features

  • Fichier de configuration
  • Uplinks
  • Paquet d'accès
  • Authentication
  • Notifications
  • Enregistreur
  • Interface d'Utilisateur Web

Server

  • Configuration du serveur
  • Configuration du proxy inverse
  • Configurez les Certificats SSL
  • Installation en tant que service Windows
  • Installation sur le serveur IIS

Development

  • Plugins
  • Développement des Plugins
  • Dev Guides

    • Plugin Generator
    • Plugin d’authentification
    • Plugin Middleware
    • Plugin de stockage
  • Node API

DevOps

  • Docker
  • Kubernetes
  • Intégration Continue
  • Cloud

    • Amazon Web Services

    Tools

    • Ansible
    • Puppet
    • Chef Cookbook

Guides

  • Best Practices
  • Protection des paquets
  • Amazon Web Services
Translate

Notifications

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.

Utilisation

Un exemple avec HipChat, Stride et Google Hangouts Chat, cliquez sur:

Verdaccio supporte tous les API, n'hésitez pas à ajouter d'autres exemples.

Notification unique

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

Notification multiple

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

Modèle

Nous utilisons Handlebars comme moteur de gabarit principal.

Exemples de format

# itérer toutes les versions
{{ name }}{{#each versions}} v{{version}}{{/each}}

# Publication de l'éditeur et du paquet "Dist-tag"
{{ publisher.name }} a publié {{ publishedPackage }}

Propriétés

Liste des propriétés accessibles via un modèle

  • Métadonnées
  • Éditeur (celui qui publie)
  • Package publié (package@1.0.0)

Métadonnées

Package de métadonnées auquel le modèle a accès

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

Editeur

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

Voir le type d'objet publisher ci-dessous:

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

Un exemple:

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

Remarque: Il est impossible d'obtenir des informations sur l'éditeur si le fichier package.json possède déjà la propriété éditeur.

Package Publié

Vous pouvez accéder au paquet est publié avec le mot-clé {{publishedPackage}} comme suit.

{{ publisher.name }} a publié {{ publishedPackage }}

Configuration

PropriétéTypeObligatoireSoutienPar défautDescription
méthodechaîne de caractèresNontousHTTP verb
packagePatternchaîne de caractèresNontousN'effectuez cette notification que si le nom du package correspond à l'expression régulière
packagePatternFlagschaîne de caractèresNontousTous les drapeaux à utiliser avec l'expression régulière
en-têtestableau/objetOuitousSi ce noeud final nécessite des en-têtes spécifiques, définissez-les ici comme un tableau de clé: valeur des objets.
endpointchaîne de caractèresOuitousdéfinir l'URL de l'endpoint pour cet appel
contentchaîne de caractèresOuitoustoute expression Handlebar
← AuthenticationEnregistreur →
  • Utilisation
  • Modèle
    • Exemples de format
    • Propriétés
    • Métadonnées
    • Editeur
    • Package Publié
  • Configuration
Verdaccio
Docs
Getting StartedDockerConfigurationLogos
Community
User ShowcaseStack OverflowProject ChatFollow Verdaccio on Twitter
More
BlogGitHubStar