2017-09-07 1 views
0

J'essaie de restreindre le fichier binaire (dll, pdf, exe) en cours de validation dans notre instance GitLab. Ma moto est nécessaire pour abandonner le commit si le commit a des fichiers binaires. J'ai le code pour abandonner la livraison en Python,Pré-recevoir un crochet pour vérifier le fichier binaire

#!/usr/bin/env python3 

import os 

def scanDir(dirName): 
    for root, dirs, files in os.walk(dirName): 
     for fileName in files: 
      if fileName.split('.')[-1] in ["txt","dll","pdf"]: 
       return 1 
    return 0 

Mon problème dans gitlab ce sont des crochets en fichier rubis, mon code est en python, il n `t fonctionne dans le code de rubis. (How to load the python file in ruby hook?)

Aussi je ne sais pas ce qui est le chemin dois-je besoin de donner à def scanDir(dirName): j'ai essayé de mon mieux, mais je ne peux pas en mesure le faire en Ruby parce que je débutant à ruby.

Quelqu'un peut-il aider à ajouter le crochet pour restreindre le fichier binaire?

Répondre

0

GitLab hooks might be in any language.

Il n'est pas clair pourquoi vous ne pouvez pas utiliser votre code python tel quel.


FWIW, le code traduit serait:

def scan_dir(dir_name) 
    Dir["#{dir_name}/**/*"].any? do |f| 
    %w|.txt .pdf .dll|.include?(File.extname(f)) 
    end 
end 
+0

Merci pour votre guidage, Quelle dir_name pourrais-je passer pour vérifier les fichiers? –

+0

Je ne suis pas sûr de 'GitLab', mais je pense que ce serait un dossier racine du projet. – mudasobwa

+0

Ok, dans votre réponse où le code renvoie 0 ou 1 parce qu'il n'y a pas de commande de sortie, c'est pourquoi j'ai demandé –