Workflow n8n

Automatisation Dashboard avec n8n : collecte de données en continu

  • Ce workflow n8n a pour objectif de centraliser et d'automatiser la collecte de données provenant de différentes plateformes comme Docker, GitHub et npm. Il s'adresse principalement aux équipes techniques et aux développeurs qui souhaitent suivre les performances de leurs projets en temps réel. Grâce à cette automatisation n8n, les utilisateurs peuvent obtenir des informations précieuses sur les téléchargements, les étoiles et les problèmes ouverts de leurs dépôts, ce qui facilite la prise de décision et l'optimisation des ressources.
  • Le workflow commence par un déclencheur de type Cron, qui permet d'exécuter le processus à intervalles réguliers. Ensuite, les données sont récupérées via des requêtes HTTP pour chaque service : Docker, GitHub et npm. Par exemple, les nœuds 'Retrieve Docker Data' et 'Retrieve npm Data' effectuent des appels API pour obtenir les métriques pertinentes. Les données brutes sont ensuite traitées par des nœuds de fonction, tels que 'Massage npm Data' et 'Massage Docker Data', qui permettent de structurer et d'enrichir les informations avant de les envoyer à la configuration du tableau de bord.
  • En intégrant ces données dans un tableau de bord, les utilisateurs bénéficient d'une vue d'ensemble sur la santé de leurs projets, ce qui leur permet d'identifier rapidement les problèmes et d'améliorer leur efficacité opérationnelle. Cette automatisation n8n représente une valeur ajoutée significative pour les entreprises souhaitant optimiser leur gestion de projet et leur suivi de performance.
Tags clés :automatisationGitHubDockernpmtableau de bord
Catégorie: Scheduled · Tags: automatisation, GitHub, Docker, npm, tableau de bord0

Workflow n8n GitHub, Docker, npm, tableau de bord : vue d'ensemble

Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.

Workflow n8n GitHub, Docker, npm, tableau de bord : détail des nœuds

  • Cron

    Ce noeud déclenche le workflow à des intervalles définis selon une planification.

  • Dashboard Configuration

    Ce noeud configure les paramètres du tableau de bord avec des valeurs et des options spécifiées.

  • Retrieve Docker Data

    Ce noeud effectue une requête HTTP pour récupérer des données Docker à partir d'une URL donnée.

  • Docker Pulls

    Ce noeud effectue une requête HTTP pour récupérer des données sur les téléchargements Docker.

  • Docker Stars

    Ce noeud effectue une requête HTTP pour récupérer des données sur les étoiles Docker.

  • Retrieve npm Data

    Ce noeud effectue une requête HTTP pour récupérer des données npm à partir d'une URL spécifiée.

  • GitHub Watchers

    Ce noeud effectue une requête HTTP pour récupérer des données sur les observateurs GitHub.

  • GitHub Forks

    Ce noeud effectue une requête HTTP pour récupérer des données sur les forks GitHub.

  • GitHub Open Issues

    Ce noeud effectue une requête HTTP pour récupérer des données sur les problèmes ouverts sur GitHub.

  • GitHub Stars

    Ce noeud effectue une requête HTTP pour récupérer des données sur les étoiles GitHub.

  • npm Maintenance

    Ce noeud effectue une requête HTTP pour récupérer des données sur la maintenance des paquets npm.

  • npm Popularity

    Ce noeud effectue une requête HTTP pour récupérer des données sur la popularité des paquets npm.

  • npm Quality

    Ce noeud effectue une requête HTTP pour récupérer des données sur la qualité des paquets npm.

  • npm Final

    Ce noeud effectue une requête HTTP pour récupérer des données finales sur les paquets npm.

  • Product Hunt Rating

    Ce noeud effectue une requête HTTP pour récupérer la note d'un produit sur Product Hunt.

  • Product Hunt Reviews

    Ce noeud effectue une requête HTTP pour récupérer les avis sur un produit sur Product Hunt.

  • Product Hunt Votes

    Ce noeud effectue une requête HTTP pour récupérer les votes d'un produit sur Product Hunt.

  • Product Hunt Comments

    Ce noeud effectue une requête HTTP pour récupérer les commentaires sur un produit sur Product Hunt.

  • GitHub

    Ce noeud interagit avec l'API GitHub pour effectuer des opérations sur un dépôt spécifique.

  • Retrieve Product Hunt Data

    Ce noeud effectue une requête HTTP pour récupérer des données sur un produit depuis Product Hunt.

  • Massage npm Data

    Ce noeud applique une fonction personnalisée pour traiter les données npm.

  • Massage Product Hunt Data

    Ce noeud applique une fonction personnalisée pour traiter les données de Product Hunt.

  • Massage Docker Data

    Ce noeud applique une fonction personnalisée pour traiter les données Docker.

  • Massage GitHub Data

    Ce noeud applique une fonction personnalisée pour traiter les données GitHub.

Inscris-toi pour voir l'intégralité du workflow

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "id": "6",
  "name": "Dashboard",
  "nodes": [
    {
      "name": "Cron",
      "type": "n8n-nodes-base.cron",
      "position": [
        -290,
        180
      ],
      "parameters": {
        "triggerTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "name": "Dashboard Configuration",
      "type": "n8n-nodes-base.set",
      "color": "#FF0000",
      "notes": "Update project settings",
      "position": [
        -10,
        180
      ],
      "parameters": {
        "values": {
          "string": [
            {
              "name": "dashboardHostname",
              "value": "http://192.168.0.14:8080"
            },
            {
              "name": "dashboardAuthToken",
              "value": "n8n-rocks!"
            },
            {
              "name": "product_hunt_post_id",
              "value": "170391"
            },
            {
              "name": "npm_package",
              "value": "n8n"
            },
            {
              "name": "docker_name",
              "value": "n8nio"
            },
            {
              "name": "docker_repository",
              "value": "n8n"
            },
            {
              "name": "github_owner",
              "value": "n8n-io"
            },
            {
              "name": "github_repo",
              "value": "n8n"
            }
          ]
        },
        "options": {}
      },
      "notesInFlow": true,
      "typeVersion": 1
    },
    {
      "name": "Retrieve Docker Data",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        260,
        300
      ],
      "parameters": {
        "url": "=https://hub.docker.com/v2/repositories/{{$node[\"Dashboard Configuration\"].json[\"docker_name\"]}}/{{$node[\"Dashboard Configuration\"].json[\"docker_repository\"]}}",
        "options": {},
        "queryParametersUi": {
          "parameter": []
        },
        "headerParametersUi": {
          "parameter": [
            {
              "name": "User-Agent",
              "value": "n8n"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "name": "Docker Pulls",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        630,
        220
      ],
      "parameters": {
        "url": "={{$node[\"Dashboard Configuration\"].json[\"dashboardHostname\"]}}/widgets/docker_pulls",
        "options": {},
        "requestMethod": "POST",
        "bodyParametersUi": {
          "parameter": [
            {
              "name": "auth_token",
              "value": "={{$node[\"Dashboard Configuration\"].json[\"dashboardAuthToken\"]}}"
            },
            {
              "name": "current",
              "value": "={{$node[\"Massage Docker Data\"].json[\"pull_count\"]}}"
            }
          ]
        }
      },
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "name": "Docker Stars",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        630,
        400
      ],
      "parameters": {
        "url": "={{$node[\"Dashboard Configuration\"].json[\"dashboardHostname\"]}}/widgets/docker_stars",
        "options": {},
        "requestMethod": "POST",
        "bodyParametersUi": {
          "parameter": [
            {
              "name": "auth_token",
              "value": "={{$node[\"Dashboard Configuration\"].json[\"dashboardAuthToken\"]}}"
            },
            {
              "name": "current",
              "value": "={{$node[\"Massage Docker Data\"].json[\"star_count\"]}}"
            }
          ]
        }
      },
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "name": "Retrieve npm Data",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        250,
        50
      ],
      "parameters": {
        "url": "=https://api.npms.io/v2/package/{{$node[\"Dashboard Configuration\"].json[\"npm_package\"]}}",
        "options": {},
        "headerParametersUi": {
          "parameter": [
            {
              "name": "User-Agent",
              "value": "n8n"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "name": "GitHub Watchers",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        820,
        640
      ],
      "parameters": {
        "url": "={{$node[\"Dashboard Configuration\"].json[\"dashboardHostname\"]}}/widgets/github_watchers",
        "options": {},
        "requestMethod": "POST",
        "bodyParametersUi": {
          "parameter": [
            {
              "name": "auth_token",
              "value": "={{$node[\"Dashboard Configuration\"].json[\"dashboardAuthToken\"]}}"
            },
            {
              "name": "current",
              "value": "={{$node[\"Massage GitHub Data\"].json[\"subscribers_count\"]}}"
            }
          ]
        }
      },
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "name": "GitHub Forks",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        820,
        800
      ],
      "parameters": {
        "url": "={{$node[\"Dashboard Configuration\"].json[\"dashboardHostname\"]}}/widgets/github_forks",
        "options": {},
        "requestMethod": "POST",
        "bodyParametersUi": {
          "parameter": [
            {
              "name": "auth_token",
              "value": "={{$node[\"Dashboard Configuration\"].json[\"dashboardAuthToken\"]}}"
            },
            {
              "name": "current",
              "value": "={{$node[\"Massage GitHub Data\"].json[\"forks_count\"]}}"
            }
          ]
        }
      },
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "name": "GitHub Open Issues ",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        620,
        860
      ],
      "parameters": {
        "url": "={{$node[\"Dashboard Configuration\"].json[\"dashboardHostname\"]}}/widgets/github_open_issues",
        "options": {},
        "requestMethod": "POST",
        "bodyParametersUi": {
          "parameter": [
            {
              "name": "auth_token",
              "value": "={{$node[\"Dashboard Configuration\"].json[\"dashboardAuthToken\"]}}"
            },
            {
              "name": "current",
              "value": "={{$node[\"Massage GitHub Data\"].json[\"open_issues_count\"]}}"
            }
          ]
        }
      },
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "name": "GitHub Stars",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        620,
        560
      ],
      "parameters": {
        "url": "={{$node[\"Dashboard Configuration\"].json[\"dashboardHostname\"]}}/widgets/github_stars",
        "options": {},
        "requestMethod": "POST",
        "bodyParametersUi": {
          "parameter": [
            {
              "name": "auth_token",
              "value": "={{$node[\"Dashboard Configuration\"].json[\"dashboardAuthToken\"]}}"
            },
            {
              "name": "current",
              "value": "={{$node[\"Massage GitHub Data\"].json[\"stargazers_count\"]}}"
            }
          ]
        }
      },
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "name": "npm Maintenance",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        830,
        -90
      ],
      "parameters": {
        "url": "={{$node[\"Dashboard Configuration\"].json[\"dashboardHostname\"]}}/widgets/npm_maintenance",
        "options": {},
        "requestMethod": "POST",
        "bodyParametersUi": {
          "parameter": [
            {
              "name": "auth_token",
              "value": "={{$node[\"Dashboard Configuration\"].json[\"dashboardAuthToken\"]}}"
            },
            {
              "name": "value",
              "value": "={{$node[\"Massage npm Data\"].json[\"score\"][\"detail\"][\"maintenance\"]}}"
            }
          ]
        }
      },
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "name": "npm Popularity",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1030,
        0
      ],
      "parameters": {
        "url": "={{$node[\"Dashboard Configuration\"].json[\"dashboardHostname\"]}}/widgets/npm_popularity",
        "options": {},
        "requestMethod": "POST",
        "bodyParametersUi": {
          "parameter": [
            {
              "name": "auth_token",
              "value": "={{$node[\"Dashboard Configuration\"].json[\"dashboardAuthToken\"]}}"
            },
            {
              "name": "value",
              "value": "={{$node[\"Massage npm Data\"].json[\"score\"][\"detail\"][\"popularity\"]}}"
            }
          ]
        }
      },
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "name": "npm Quality",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1030,
        150
      ],
      "parameters": {
        "url": "={{$node[\"Dashboard Configuration\"].json[\"dashboardHostname\"]}}/widgets/npm_quality",
        "options": {},
        "requestMethod": "POST",
        "bodyParametersUi": {
          "parameter": [
            {
              "name": "auth_token",
              "value": "={{$node[\"Dashboard Configuration\"].json[\"dashboardAuthToken\"]}}"
            },
            {
              "name": "value",
              "value": "={{$node[\"Massage npm Data\"].json[\"score\"][\"detail\"][\"quality\"]}}"
            }
          ]
        }
      },
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "name": "npm Final",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        830,
        190
      ],
      "parameters": {
        "url": "={{$node[\"Dashboard Configuration\"].json[\"dashboardHostname\"]}}/widgets/npm_final",
        "options": {},
        "requestMethod": "POST",
        "bodyParametersUi": {
          "parameter": [
            {
              "name": "auth_token",
              "value": "={{$node[\"Dashboard Configuration\"].json[\"dashboardAuthToken\"]}}"
            },
            {
              "name": "value",
              "value": "={{$node[\"Massage npm Data\"].json[\"score\"][\"final\"]}}"
            }
          ]
        }
      },
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "name": "Product Hunt Rating",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        630,
        -510
      ],
      "parameters": {
        "url": "={{$node[\"Dashboard Configuration\"].json[\"dashboardHostname\"]}}/widgets/prod_hunt_rating",
        "options": {},
        "requestMethod": "POST",
        "bodyParametersUi": {
          "parameter": [
            {
              "name": "auth_token",
              "value": "={{$node[\"Dashboard Configuration\"].json[\"dashboardAuthToken\"]}}"
            },
            {
              "name": "value",
              "value": "={{$node[\"Retrieve Product Hunt Data\"].json[\"data\"][\"post\"][\"reviewsRating\"]}}"
            }
          ]
        }
      },
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "name": "Product Hunt Reviews",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        830,
        -410
      ],
      "parameters": {
        "url": "={{$node[\"Dashboard Configuration\"].json[\"dashboardHostname\"]}}/widgets/prod_hunt_reviews",
        "options": {},
        "requestMethod": "POST",
        "bodyParametersUi": {
          "parameter": [
            {
              "name": "auth_token",
              "value": "={{$node[\"Dashboard Configuration\"].json[\"dashboardAuthToken\"]}}"
            },
            {
              "name": "current",
              "value": "={{$node[\"Massage Product Hunt Data\"].json[\"data\"][\"post\"][\"reviewsCount\"]}}"
            }
          ]
        }
      },
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "name": "Product Hunt Votes",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        830,
        -260
      ],
      "parameters": {
        "url": "={{$node[\"Dashboard Configuration\"].json[\"dashboardHostname\"]}}/widgets/prod_hunt_votes",
        "options": {},
        "requestMethod": "POST",
        "bodyParametersUi": {
          "parameter": [
            {
              "name": "auth_token",
              "value": "={{$node[\"Dashboard Configuration\"].json[\"dashboardAuthToken\"]}}"
            },
            {
              "name": "current",
              "value": "={{$node[\"Massage Product Hunt Data\"].json[\"data\"][\"post\"][\"votesCount\"]}}"
            }
          ]
        }
      },
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "name": "Product Hunt Comments",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        630,
        -210
      ],
      "parameters": {
        "url": "={{$node[\"Dashboard Configuration\"].json[\"dashboardHostname\"]}}/widgets/prod_hunt_comments",
        "options": {},
        "requestMethod": "POST",
        "bodyParametersUi": {
          "parameter": [
            {
              "name": "auth_token",
              "value": "={{$node[\"Dashboard Configuration\"].json[\"dashboardAuthToken\"]}}"
            },
            {
              "name": "current",
              "value": "={{$node[\"Massage Product Hunt Data\"].json[\"data\"][\"post\"][\"commentsCount\"]}}"
            }
          ]
        }
      },
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "name": "GitHub",
      "type": "n8n-nodes-base.github",
      "color": "#FF0000",
      "position": [
        250,
        710
      ],
      "parameters": {
        "owner": "={{$node[\"Dashboard Configuration\"].json[\"github_owner\"]}}",
        "resource": "repository",
        "operation": "get",
        "repository": "={{$node[\"Dashboard Configuration\"].json[\"github_repo\"]}}"
      },
      "credentials": {
        "githubApi": ""
      },
      "typeVersion": 1
    },
    {
      "name": "Retrieve Product Hunt Data",
      "type": "n8n-nodes-base.httpRequest",
      "color": "#FF0000",
      "notes": "Update authorization token",
      "position": [
        250,
        -360
      ],
      "parameters": {
        "url": "https://api.producthunt.com/v2/api/graphql",
        "options": {},
        "requestMethod": "POST",
        "queryParametersUi": {
          "parameter": [
            {
              "name": "query",
              "value": "={\n  post(id: {{$node[\"Dashboard Configuration\"].json[\"product_hunt_post_id\"]}}) {\n    commentsCount\n    votesCount\n    reviewsCount\n    reviewsRating\n    name\n  }\n}"
            }
          ]
        },
        "headerParametersUi": {
          "parameter": [
            {
              "name": "User-Agent",
              "value": "n8n"
            },
            {
              "name": "authorization",
              "value": "Bearer <Enter Product Hunt token here>"
            }
          ]
        }
      },
      "notesInFlow": true,
      "typeVersion": 1
    },
    {
      "name": "Massage npm Data",
      "type": "n8n-nodes-base.function",
      "position": [
        440,
        50
      ],
      "parameters": {
        "functionCode": "items[0].json.score.detail.maintenance = parseFloat(items[0].json.score.detail.maintenance.toFixed(2));\nitems[0].json.score.detail.popularity= parseFloat(items[0].json.score.detail.popularity.toFixed(2));\nitems[0].json.score.detail.quality= parseFloat(items[0].json.score.detail.quality.toFixed(2));\nitems[0].json.score.final= parseFloat(items[0].json.score.final.toFixed(2));\n\nreturn items;"
      },
      "typeVersion": 1
    },
    {
      "name": "Massage Product Hunt Data",
      "type": "n8n-nodes-base.function",
      "position": [
        440,
        -360
      ],
      "parameters": {
        "functionCode": "items[0].json.data.post.commentsCount = items[0].json.data.post.commentsCount.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\nitems[0].json.data.post.votesCount= items[0].json.data.post.votesCount.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\nitems[0].json.data.post.reviewsCount= items[0].json.data.post.reviewsCount.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n\nreturn items;\n"
      },
      "typeVersion": 1
    },
    {
      "name": "Massage Docker Data",
      "type": "n8n-nodes-base.function",
      "position": [
        460,
        300
      ],
      "parameters": {
        "functionCode": "items[0].json.star_count = items[0].json.star_count.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\nitems[0].json.pull_count = items[0].json.pull_count.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n\nreturn items;\n"
      },
      "typeVersion": 1
    },
    {
      "name": "Massage GitHub Data",
      "type": "n8n-nodes-base.function",
      "position": [
        450,
        710
      ],
      "parameters": {
        "functionCode": "items[0].json.stargazers_count = items[0].json.stargazers_count.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\nitems[0].json.subscribers_count = items[0].json.subscribers_count.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\nitems[0].json.forks_count = items[0].json.forks_count.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\nitems[0].json.open_issues_count = items[0].json.open_issues_count.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n\nreturn items;"
      },
      "typeVersion": 1
    }
  ],
  "active": true,
  "settings": {},
  "connections": {
    "Cron": {
      "main": [
        [
          {
            "node": "Dashboard Configuration",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GitHub": {
      "main": [
        [
          {
            "node": "Massage GitHub Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Massage npm Data": {
      "main": [
        [
          {
            "node": "npm Maintenance",
            "type": "main",
            "index": 0
          },
          {
            "node": "npm Quality",
            "type": "main",
            "index": 0
          },
          {
            "node": "npm Popularity",
            "type": "main",
            "index": 0
          },
          {
            "node": "npm Final",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Retrieve npm Data": {
      "main": [
        [
          {
            "node": "Massage npm Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Massage Docker Data": {
      "main": [
        [
          {
            "node": "Docker Stars",
            "type": "main",
            "index": 0
          },
          {
            "node": "Docker Pulls",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Massage GitHub Data": {
      "main": [
        [
          {
            "node": "GitHub Stars",
            "type": "main",
            "index": 0
          },
          {
            "node": "GitHub Watchers",
            "type": "main",
            "index": 0
          },
          {
            "node": "GitHub Forks",
            "type": "main",
            "index": 0
          },
          {
            "node": "GitHub Open Issues ",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Retrieve Docker Data": {
      "main": [
        [
          {
            "node": "Massage Docker Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Dashboard Configuration": {
      "main": [
        [
          {
            "node": "Retrieve Product Hunt Data",
            "type": "main",
            "index": 0
          },
          {
            "node": "Retrieve npm Data",
            "type": "main",
            "index": 0
          },
          {
            "node": "Retrieve Docker Data",
            "type": "main",
            "index": 0
          },
          {
            "node": "GitHub",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Massage Product Hunt Data": {
      "main": [
        [
          {
            "node": "Product Hunt Rating",
            "type": "main",
            "index": 0
          },
          {
            "node": "Product Hunt Reviews",
            "type": "main",
            "index": 0
          },
          {
            "node": "Product Hunt Votes",
            "type": "main",
            "index": 0
          },
          {
            "node": "Product Hunt Comments",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Retrieve Product Hunt Data": {
      "main": [
        [
          {
            "node": "Massage Product Hunt Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Workflow n8n GitHub, Docker, npm, tableau de bord : pour qui est ce workflow ?

Ce workflow s'adresse aux développeurs, aux équipes techniques et aux responsables de projets qui cherchent à automatiser la collecte de données sur les performances de leurs applications. Il est idéal pour les entreprises de taille moyenne à grande, ayant une certaine expertise technique.

Workflow n8n GitHub, Docker, npm, tableau de bord : problème résolu

Ce workflow résout le problème de la collecte manuelle de données provenant de plusieurs sources, ce qui peut être chronophage et sujet à des erreurs. En automatisant ce processus, les utilisateurs réduisent le risque d'inexactitudes et gagnent un temps précieux. Après la mise en place de cette automatisation n8n, ils obtiennent des rapports en temps réel sur les performances de leurs projets, leur permettant de réagir rapidement aux problèmes et d'optimiser leurs ressources.

Workflow n8n GitHub, Docker, npm, tableau de bord : étapes du workflow

Étape 1 : Le workflow est déclenché par un Cron, permettant une exécution régulière.

  • Étape 1 : Les données sont récupérées à partir de Docker via le nœud 'Retrieve Docker Data'.
  • Étape 2 : Les métriques de GitHub sont obtenues grâce au nœud 'GitHub', qui interroge les dépôts pour les étoiles, les forks et les problèmes ouverts.
  • Étape 3 : Les données npm sont récupérées avec le nœud 'Retrieve npm Data'.
  • Étape 4 : Les informations brutes sont traitées par des nœuds de fonction, tels que 'Massage npm Data' et 'Massage Docker Data', pour les structurer.
  • Étape 5 : Enfin, les données traitées sont configurées pour alimenter le tableau de bord via le nœud 'Dashboard Configuration'.

Workflow n8n GitHub, Docker, npm, tableau de bord : guide de personnalisation

Pour personnaliser ce workflow, vous pouvez modifier les paramètres des nœuds HTTP pour adapter les URL des API selon vos besoins. Par exemple, ajustez les requêtes dans les nœuds 'Retrieve Docker Data' et 'Retrieve npm Data' pour cibler des dépôts spécifiques. Vous pouvez également changer la fréquence d'exécution du Cron pour mieux correspondre à vos exigences. Pensez à sécuriser les appels API en ajoutant des clés d'authentification dans les en-têtes des requêtes. Enfin, vous pouvez intégrer d'autres services ou outils en ajoutant de nouveaux nœuds HTTP ou en utilisant des fonctions pour enrichir davantage les données collectées.