Confessioni di un consulente IT

Progetto Shodan shell: creazione di un repository Git su Google Code

Posted in Geek Corner by pigreco314 on 19 luglio, 2013

In queste settimane di ozio confuso e forzato mi sto trastullando con la vecchia passione della programmazione, sebbene la mia pigrizia non consenta di andare oltre l’immediatezza dei linguaggi di scripting, in particolare Python.

Qualche mese fa mi sono imbattuto nel sito del database Shodan, un crawler che ispeziona gli indirizzi IP pubblici di internet documentando gli header delle risposte restituite dagli host a interrogazioni sulle porte ftp, ssh, http, telnet, smnp. Il database può essere liberamente consultato sia dall’interfaccia web sia tramite API disponibili per i linguaggi Python e Ruby e il protocollo JSON, per utilizzare le quali occorre una API key ottenibile gratuitamente dal sito.

Per semplificare l’accesso al database Shodan tramite le API mi sono divertito a scrivere una mini-shell in Python e a pubblicarla su Google Code.

Di Shodan e della mia shell parlerò in un successivo articolo. Qui mi limiterò a descrivere come inizializzare un repository di progetto su Google Code usando il sistema di revisione di codice Git.

La creazione di un nuovo repository su Google Code è cosa abbastanza semplice a farsi, seguendo le istruzioni che guidano la procedura passo passo. Come strumento di controllo revisione è possibile selezionarne uno tra: svn, git, mercurial. Ho scelto il secondo e per rendere il tutto più eccitante ho deciso di limitare l’utilizzo alla linea di comando evitando front-end grafici come github, Tortoise e simili.

Do per scontato che arrivati a questo punto abbiate già scaricato Git per la vostra piattaforma e creato il progetto in Google Code. Assumo inoltre che stiate lavorando in un ambiente Unix-like, come ad esempio: Linux, Mac Os X, Cygwin, ecc. Infatti, come ben avrete sperimentato voi stessi, operare dalla linea di comando in ambiente Windows è il M A L E e so che seguirete il mio esempio e non vi cimenterete.

Orbene, innanzitutto procuratevi la password assegnata automaticamente da Google Code per i commit del codice accedendo al tab “Source” del progetto e cliccando su googlecode.com password:

GoogleCodeGitPwd

Ciò fatto, nella $HOME del vostro utente create un file denominato .netrc e inserite quest’unica riga:

machine code.google.com login [GOOGLE USERNAME]  password [GOOGLE PASSWORD]

essendo [GOOGLE USERNAME] il nome del vostro utente Google (completo di suffisso @gmail) e [GOOGLE PASSWORD] la password ottenuta come descritto sopra.
Recatevi ora nella directory dove desiderate creare il vostro repository e inizializzatelo con il comando:

git clone https://[GOOGLE USERNAME]@code.google.com/p/[NOME PROGETTO]

dove [GOOGLE USERNAME] è il vostro utente Google ma questa volta senza suffisso @gmail e [NOME PROGETTO] è il nome che avete assegnato al vostro progetto: l’URL indicata sulla linea di comando è comunque la medesima riportata nella pagina “Source, Command-line access” raffigurata nell’immagine sopra. L’esecuzione del comando produrrà una nuova directory nel percorso locale denominata [NOME PROGETTO] e dovrebbe restituire il messaggio:

Warning: You appear to have cloned an empty repository

Il comando crea anche i file di controllo di Git, in particolare la directory .git. Spostatevi in questa directory e con un editor di testo aprite il file config ivi contenuto: vi troverete una sezione

[remote "origin"]

all’interno della quale è presente la direttiva

url = https://[GOOGLE USERNAME]@code.google.com/p/[NOME PROGETTO]

Rimuovete la parte [GOOGLE USERNAME@] in modo che la direttiva alla fine risulti essere semplicemente:

url = https://code.google.com/p/[NOME PROGETTO]

Questa modifica è richiesta per evitare un errore che si manifesterebbe in fase di push delle modifiche al server (maggiori dettagli qui: Using Git and .netrc)

Bene, ora potete copiare i file del vostro progetto nella directory creata dal comando “clone”. Fatto questo, dovrete dire a git quali file vanno sottoposti al controllo di revisione, cosa che si ottiene facilmente con il comando:

git add [NOME FILE]

Procedete poi con il commit dei nuovi file aggiunti:

git commit -m "Inserite il vostro commento qui"

E infine, sincronizzate il vostro repository locale con quello remoto su Google Code:

git push origin master

In chiusura, posso dire che il poco che ho visto di Google Code non mi ha impressionato ed è probabile che in futuro sposti il mio progetto su GitHub, anche perché dallo scorso Maggio, la piattaforma non consente più i download se non tramite Google Drive.

Tagged with: , , , ,

Rispondi qui