Caractéristiques :
- KISS;
- auto-hébergé;
- absence de frais (par exemple, bountysource et gitcoin prennent 10% sur les paiements);
- prise en charge de plusieurs crypto-monnaies (actuellement Bitcoin, Ethereum et Cardano);
- un support pour GitLab, Gitea et d'autres hébergeurs Git est prévu à l'avenir.
- liste des tùches globale provenant de tous (c'est-à -dire un, au moment de la rédaction de l'article) les instances sur donate.dumpstack.io.
Mécanisme de fonctionnement pour GitHub cÎté propriétaire du dépÎt :
- (optionnel) il est nĂ©cessaire de dĂ©ployer le service, une configuration prĂȘte pour NixOS peut ĂȘtre utilisĂ©e;
- il est nĂ©cessaire d'ajouter GitHub Action â Ă l'intĂ©rieur, un utilitaire est appelĂ©, qui scanne les tĂąches du projet et ajoute/actualise un commentaire sur l'Ă©tat actuel des portefeuilles pour les dons, la partie privĂ©e des portefeuilles Ă©tant stockĂ©e uniquement sur le serveur de dons (dans le futur, avec la possibilitĂ© d'ĂȘtre dĂ©placĂ©e hors ligne pour de plus gros dons, pour la confirmation manuelle du paiement);
- dans toutes les tĂąches actuelles (et nouvelles), un message de github-actions[bot] avec les adresses de portefeuille pour les dons apparaĂźt (exemple).
Mécanisme de fonctionnement cÎté exécuteur de la tùche :
- dans le commentaire du commit, il est indiqué quelle tùche ce commit résout (voir fermeture des problÚmes à l'aide de mots-clés);
- dans le corps de la demande de tirage, les adresses des portefeuilles sont indiquées dans un format spécifique (par exemple, BTC{adresse}).
- lorsque la demande de tirage est acceptée, le paiement est effectué automatiquement.
- si les portefeuilles ne sont pas indiquĂ©s, ou si tous ne sont pas indiquĂ©s, alors le paiement pour les portefeuilles non indiquĂ©s est effectuĂ© sur les portefeuilles par dĂ©faut (par exemple, cela peut ĂȘtre un portefeuille de projet commun).
Sécurité :
- la surface d'attaque est globalement petite;
- en raison des mĂ©canismes de fonctionnement, le service doit avoir la capacitĂ© d'envoyer des fonds lui-mĂȘme, donc obtenir l'accĂšs au serveur signifiera le contrĂŽle des fonds dans tous les cas â la seule solution peut ĂȘtre de travailler en mode non automatisĂ© (par exemple, confirmation des paiements manuellement), qui sera probablement (si le projet devient suffisamment rĂ©ussi pour qu'un don soit fait pour cette fonctionnalitĂ©, alors non seulement probable, mais certain) un jour mise en Ćuvre;
- les parties critiques sont clairement séparées (il s'agit en fait d'un seul fichier pay.go de 200 lignes), simplifiant ainsi la révision de code de sécurité;
- Le code a passé une révision de sécurité indépendante, ce qui n'indique pas l'absence de vulnérabilités, mais réduit la probabilité de leur existence, surtout compte tenu de la fréquence de révisions prévue ;
- Il existe Ă©galement des parties qui ne sont pas contrĂŽlĂ©es (par exemple, les API GitHub/GitLab/etc.), les vulnĂ©rabilitĂ©s potentielles dans des API tierces seront comblĂ©es par des vĂ©rifications supplĂ©mentaires, nĂ©anmoins, dans l'ensemble, le problĂšme dans l'Ă©cosystĂšme actuel est insoluble et hors de portĂ©e (une vulnĂ©rabilitĂ© potentielle, par exemple, permettant de fermer des pull requests d'autres utilisateurs et ainsi d'ajouter du code Ă des projets Ă©trangers â a des consĂ©quences beaucoup plus globales).
Source : linux.org.ru
