searchcode server est un puissant moteur de recherche de code doté d'une interface utilisateur Web élégante.
Le serveur searchcode fonctionne en tandem avec votre système de contrôle de code source, indexant des milliers de référentiels et de fichiers, vous permettant ainsi qu'à vos développeurs de trouver et de réutiliser rapidement du code dans toutes les équipes.
Voir https://searchcodeserver.com/ pour plus de détails ou http://demo.searchcodeserver.com/ pour une démo en direct qui indexe plusieurs projets à l'aide de GIT et SVN.
Si vous construisez à partir des sources, vous ne bénéficiez d'aucune assistance et devez travailler dans le cadre des restrictions spécifiées par la licence Fair Source (voir LICENSE.txt pour plus de détails). Pour acheter de l'assistance, voir https://searchcodeserver.com/pricing.html
Si vous souhaitez soumettre du code à intégrer dans le serveur de code de recherche, veuillez spécifier qu'il bénéficie d'une double licence sous Apache Public License v2 et GPL v3. Cela permet de l'intégrer directement sans avoir à se soucier des problèmes de licence à l'avenir.
Avant d'effectuer une soumission, assurez-vous d'exécuter (nécessite fabric<2.0 EG pip install 'fabric<2.0')
fab test
Tous les tests doivent réussir avant qu'une soumission ne soit acceptée.
Pour créer un serveur de code de recherche, vous devez disposer d'une machine Windows, Linux ou OSX avec Java 11 installé et une configuration Maven. Idéalement, vous souhaitez utiliser un système d'exploitation Unix avec Python et Python Fabric installés.
Notez que les tâches Fabric (fab) ne sont actuellement pas prises en charge sous Windows. Vous pouvez essayer de les utiliser, mais vous devrez probablement le faire sous Bash pour Windows ou quelque chose de similaire.
Pour exécuter les tests unitaires javascript, exécutez-les dans votre navigateur si nécessaire en ouvrant
./src/test/javascript/index.html
Pour tester l'application, vous pouvez soit exécuter
mvn test
ou
fab test
Notez que ces tests ne couvriront que certaines unités d'intégration et javascript. Pour une couverture complète
fab test_full
avec l'application exécutée en arrière-plan pour garantir que tout fonctionne comme prévu.
Pour créer une version complète d'IE prête pour la production, vous devez exécuter
fab build_release
qui testera la compilation et créera une version dans le dossier de version et produira le fichier "searchcode-server.tar.gz" qui est une version prête à être déployée.
Si vous souhaitez simplement tester et exécuter, vous pouvez exécuter
fab run
cependant, ce sera la création par défaut d'un package et l'exécuter. Pour exécuter rapidement, ouvrez simplement l'IDE de votre choix et commencez à exécuter App.java.
Il existe un ensemble spécial de tests utilisés pour vérifier que la logique d'indexation des référentiels GIT et File fonctionne correctement. Pour ce faire, vous devez exécuter l'un des scripts shell suivants :
./assets/integration_test/gitload/gitload.sh
./assets/integration_test/gitupdate/gitupdate.sh
./assets/integration_test/fileupdatetest/fileload.sh
./assets/integration_test/fileload/fileload.sh
Ajoutez ensuite les git en tant que référentiels GIT dans l'application et ceux en fichiers en tant que référentiels FILE. Il est également utile de définir les propriétés
check_repo_chages=60
check_filerepo_changes=60
mais ce n'est pas obligatoire. Ensuite, exécutez le code de recherche. Les scripts ajouteront/supprimeront/ mettront à jour des fichiers toutes les 60 secondes, ce qui devrait forcer le code de recherche à ajouter/mettre à jour/supprimer des fichiers de l'index dans le but d'atteindre autant de chemins de code que possible. Une fois cela fait, il ne devrait pas y avoir plus de 400 documents indexés à tout moment (en cas d'indexation des 4 référentiels) et un minimum de 201 (les fichiers fileload.sh + les fichiers fileupdatetest + les fichiers gitupdate). Laissez les choses fonctionner pendant plusieurs heures pour vous assurer que la logique fonctionne correctement.
Avant qu'une version ne soit publiée, une build doit réussir toutes les vérifications ci-dessus, les tests logiques de l'indexeur étant exécutés pendant au moins 24 heures. Pour garantir que les performances sont acceptables, les tests sont également exécutés sur un netbook alimenté par Atom.
Pour exécuter le serveur de code de recherche localement, vous devez disposer d'une machine Windows, Linux ou OSX sur laquelle Java 11 est installé. Les tests et l'empaquetage ont été effectués à l'aide de la version ci-dessous.
$ java -version
openjdk version "11.0.1" 2018-10-16
OpenJDK Runtime Environment (build 11.0.1+13-Debian-2)
OpenJDK 64-Bit Server VM (build 11.0.1+13-Debian-2, mixed mode, sharing)
Décompressez le fichier que vous avez téléchargé dans un répertoire dans lequel vous souhaitez exécuter le serveur de code de recherche. Ce répertoire doit disposer de plus d'espace disque que la taille des référentiels que vous souhaitez indexer.
Une fois décompressé en supposant que Java est dans votre chemin (vérifiez avec la commande java -version), vous devriez pouvoir exécuter le code de recherche avec la commande suivante pour Linux/OSX/BSD
./searchcode-server.sh
ou pour Windows
searchcode-server.bat
Après quelques instants, le serveur de code de recherche devrait être prêt à fonctionner. Par défaut, il fonctionnera sur le port 8080. Pour vous y connecter, entrez ce qui suit dans le navigateur :
http://SERVER_IP:8080
Assurez-vous de remplacer SERVER_IP par l'adresse IP si votre serveur ou localhost s'exécute localement. Si vous voyez une page avec une barre de recherche, tout va bien.
Pour un contrôle plus approfondi, vous souhaiterez peut-être modifier les fichiers ci-dessus et inclure l'argument java -Xmx pour spécifier la quantité de RAM à utiliser ou toute autre option Java que vous souhaitez transmettre.
Pour administrer votre instance de serveur de code de recherche, vous devez cliquer sur le lien Admin en haut à droite. Entrez le mot de passe par défaut Adm1n234 (modifiez-le via le fichier de propriétés) pour ajouter des référentiels git. Si vous avez besoin d'aide, consultez la page de documentation (lien en bas de chaque page).
Pour configurer à l'aide d'Ubuntu en tant que tâche de mise à jour ou SystemD, consultez https://searchcodeserver.com/knowledge-base/upstart-and-systemd-startup-scripts-for-ubuntu.html
Gardez toujours à l’esprit qu’il est préférable d’effectuer les mises à niveau avec une réindexation complète. Vous pouvez le faire soit en supprimant le contenu du répertoire d'index que vous avez configuré dans votre fichier searchcode.properties, soit en cliquant sur le bouton "Recrawl & Rebuild Indexes" dans l'écran d'administration.
Pour mettre à niveau votre instance actuelle de code de recherche, procédez comme suit.
Arrêtez votre instance actuelle du serveur de code de recherche
Faites une copie de sauvegarde des fichiers searchcode.properties et searchcode.sqlite de vos instances actuelles.
Décompressez le package dans un nouveau répertoire.
Vous pouvez soit
Redémarrez votre instance
Connectez-vous à l'écran d'administration et cliquez sur le bouton "Recrawl & Rebuild Indexes"
Il vaut également la peine de comparer votre fichier searchcode.properties au nouveau (ou à la page de documentation), car vous pouvez utiliser une nouvelle configuration. Assurez-vous également de vérifier la page des paramètres car il y aura probablement de nouveaux paramètres que vous pourrez utiliser.
Les images d'arrière-plan sont toutes redimensionnées à l'aide de la commande suivante avant d'être validées
convert 1.jpg -quality 75 -resize 1600x1200 1.jpg
Si vous souhaitez utiliser Luke pour inspecter l'index, vous devrez utiliser la version correspondant à Lucence dans le pom.xml. Actuellement, il s'agit de la version 5.5.0, vous devrez donc utiliser la même version de Luke https://github.com/DmitryKey /luke/releases/tag/luke-5.5.0
Copyright (c) 2016 Services en ligne Boyter
L'utilisation de ce logiciel est régie par la licence Fair Source incluse dans le fichier LICENSE.txt
Afin de faire face au cas de mon décès ou de l'abandon de ce logiciel, il contient une clause ouverte à terme selon laquelle la licence changera exactement 3 ans après la date de publication d'une version. Cela signifie que si la version 1.0.0 a été publiée le 1er juillet 2010, elle pourra être utilisée en utilisant la licence alternative répertoriée le 2 juillet 2013. Cette licence, cette version et cette heure sont toutes spécifiées ci-dessous.
Après la date suivante NON ENCORE SPÉCIFIÉE, la version du logiciel '1.3.15' est sous double licence sous la licence Fair Source incluse dans le fichier LICENSE.txt ou sous la licence publique générale GNU version 3 avec les conditions spécifiées sur https://www.gnu .org/licenses/gpl-3.0.txt
La base de données OWASP est sous licence https://creativecommons.org/licenses/by-sa/3.0/ et provient de Creative Commons à partir de https://codecrawler.codeplex.com/ https://www.owasp.org/index.php/ Catégorie : OWASP_Code_Crawler et https://www.owasp.org/index.php/OWASP_Code_Review_Guide_Table_of_Contents, cette base de données a été modifiée en JSON et avec de légers corrections d’orthographe et de ponctuation le cas échéant.
La base de données File Classifier est sous licence https://creativecommons.org/licenses/by-sa/3.0/