Knowband Blog | Ecommerce Modules

Come abilitare la chiusura automatica dei problemi tramite SVN Commit in Redmine

Step1: Istruzioni di installazione per i repository in SVN

Vai aRedmine> Amministrazione> Impostazioni> Archivi?and make sure the settings are as shown below:

Fetch automaticamente commit

Quando si attiva questa opzione, applicatiojn avvia automaticamente il recupero delle revisioni quando l’utente tenta di accedere alla pagina del repository

Il valore predefinito è: Sì

Puoi disabilitare questa opzione e automatizzare la chiamata al repository # fetch_changesets usando cron per recuperare regolarmente le revisioni di tutti i repository in background.

Per Velocity: non l’abbiamo disabilitato e allo stesso tempo abbiamo messo un fetch automatico ogni volta che viene effettuato un nuovo commit. Per sapere come ha fatto lo stesso, si prega di leggere oltre.

Esempio: ruby script / runner “Repository.fetch_changesets” -e produzione Per Redmine 2.x: runner / rails di ruby runner “Repository.fetch_changesets” -e produzione Per Redmine 3.x: bin / rails runner “Repository.fetch_changesets” -e produzione È possibile impostare la chiamata automatica da post-commit (per SVN) e post-ricezione (per GIT) e rendere i changeset recuperati dopo ogni commit. Si noti che l’esecuzione dell’istruzione sopra riporta i dettagli per ciascun repors aggiunto in qualsiasi progetto in Redmine, quindi nel caso in cui si abbia un numero elevato di tali repository aggiunti nei progetti, diventa un processo che richiede tempo. Per me è stato di circa 10 secondi per il repository 1. Ho più di repository di 100 per vari progetti, così inutilmente in attesa di ogni recupero ogni volta che un commit è fatto in qualsiasi repository non ha senso Puoi recuperare tutti i repository via browser usando il seguente URL:

http: / / <redmine url> / sys / fetch_changesets? key = <la tua chiave di servizio>

Per recuperare un solo repository tramite browser utilizzare il seguente URL: (Il recupero del solo repository per il quale è stato effettuato il commit è molto più efficiente e richiede meno tempo.

Fino a quando non si recupera il repository, le attività in Redmine non verranno chiuse.

L’identificatore del progetto può essere il numero del progetto, ad esid = 1?or the identifier name that you gave the project, e.g.,?id = mobileapp

http: / / <redmine url> / sys / fetch_changesets? key = <la chiave di servizio>? id = <identificatore di progetto> & key = <la chiave di servizio>

Esempio:https://www.myredmineurl.com/sys/fetch_changesets?id=mypid&&key=djdj57FGDJmkj67

Ulteriori informazioni sugli script post-commit:https://www.redmine.org/projects/redmine/wiki/HowTo_setup_automatic_refresh_of_repositories_in_Redmine_on_commit

Abilita WS per la gestione dei repository

Questa opzione dovrebbe essere attivata solo se hai installato lo script per la creazione automatica del repository SVN.Predefinito: No.Ma per eseguire il salvataggio automatico di ciascun repository su commit, si prega di abilitare questo anche se non si desidera creare automaticamente il repository SVN.

Chiave API WS di gestione del repository

Una chiave segreta per la gestione del repository WS. Questo sarà usato per prelevare segretamente ogni repository.

Numero massimo di revisioni visualizzate nel registro file

Fornisce un modo per limitare la quantità di revisioni che vengono recuperate da SCM per un determinato percorso esplorato.

Riferimenti ai problemi nei messaggi di commit

Quando recuperati dai repository, i messaggi di commit vengono scansionati per gli ID di riferimento o gli ID di problema corretti. Queste opzioni consentono di definire le parole chiave che possono essere utilizzate nel messaggio di commit per fare riferimento o correggere automaticamente i problemi e lo stato da applicare ai problemi risolti. Le parole chiave predefinite sono:

Non esiste uno stato predefinito definito per il problema fisso. Dovrai specificarlo se vuoi abilitare la chiusura automatica dei problemi. Se vuoi fare riferimento ai problemi senza usare parole chiave, inserisci una singola stella: * nel fileriferimento parole chiave?(Administration/Repository) setting. In this case, any issue ID found in the message will be linked to the changeset.

Example of a working commit message using default keywords:

Questo commit refs #1, #2 e corregge #3

Questo messaggio fa riferimento ai problemi 1 e 2 e corregge automaticamente il problema 3. Dopo che un ID parola problema può essere separato con uno spazio, una virgola o &. Le parole chiave sono caseinsensitive e almeno uno spazio o due punti è necessario tra la parola chiave e il primo hash per produrre una corrispondenza. Altri esempi che produrranno lo stesso risultato dell’esempio sopra:

Questo commit refs: #1, #2 e corregge #3 Questo comando Refs #1, #2 e corregge #3 Questo commit REFS: #1, #2 e corregge #3

Attivare la registrazione tempo

Consente la registrazione del tempo direttamente dai messaggi di commit. Questo ha senso solo se hai attivato il modulo “Time tracking” in detto progetto. In questo caso, puoi aggiungere parole speciali nel tuo messaggio di commit per indicare il tempo impiegato per un problema. La sintassi di base per farlo è:@ <Time>, dove il tempo consiste in un numero di ore o minuti. Ecco un elenco di molti messaggi di commit validi che potrebbero funzionare se vuoi dire di aver speso N ore sul problema 1234:

Funzione di implementazione #1234 @2 Funzione di implementazione #1234 @2h Funzione di implementazione #1234 @2hours Funzione di implementazione #1234 @15m Funzione di implementazione #1234 @15min Funzione di implementazione #1234 @3h15 Funzione di implementazione #1234 @3h15m Funzione di implementazione #1234 @3: 15 Funzione di implementazione #1234 @3.25 Funzione di implementazione #1234 @3.25h Funzione di implementazione #1234 @3,25 Funzione di implementazione #1234 @3,25h

Attività per il tempo Logged

Questo è il tipo di attività che dovrebbe essere usato quando si rileva che c’è un tempo di registrazione in un messaggio di commit (vedi sopra).


Step2: apportare modifiche al progetto

2. Assicurarsi di essere in grado di commettere e aggiornare il Repository del progetto a cui si intende accedere dal server su cui è installato Redmine.

Per Velocity:?For Velocity there is a generic user:?velsofsvn?che viene aggiunto a tutti i repository e questo è l’utente utilizzato sul server Redmine per aggiornare gli elenchi del repository quando si verificano dei commit. Quindi controlla se questo utente ha accesso al repository in fase di installazione per la chiusura automatica dei problemi tramite SVN. Nel caso in cui i problemi con l’accesso controllino se le restrizioni IP sono presenti nel repository sull’host Assembla / SVN. 2. Vai al tuo progetto come amministratore di sistema e vai a Impostazioni> Moduli. Abilita modulo repository. 3. Compila il modulo sotto riportato nel modulo Repository per quel progetto:

Identifier:?Any name you wish

URL:?URL of the Assembla repository. Example:?https://subversion.assembla.com/svn/protocol.cdms/trunk

Login:?Username which has access to the above repository. For Velocity: velsofsvn

Parola d’ordine:?Password which has access to the above repository. For Velocity: Password here:??https://docs.google.com/spreadsheets/d/1DuvyfZgCx125Mv04mhCgXqrOcTW7BQPtSGPbvO9pu-g/

4. Una volta completato Step#3, il repository inizierà a mostrare come mostrato di seguito:


Step3: apportare modifiche in Assembla SVN

5. Per accedere a questa pagina, devi essere un proprietario o un membro di ALLpermessi?(learn more about roles and permissions). To get here, go to your Assembla SVN repository > Settings > General Settings.

URL di trigger:
Questa funzione chiama un URL specifico dopo ogni commit. Il nostro server invia una richiesta al servizio remoto specificato nell’URL. Il risultato dipenderà da ciò che un utente imposta questo servizio da fare sotto questo specifico URL. GET URL dopo ogni commit può essere utilizzato per innescare una build, per esempio. Qui in Trigger URL devi inserire l’url dicussed sopra per Auto Recupero di un particolare repository: Esempio:https://www.myredmineurl.com/sys/fetch_changesets?id=mypid&&key=djdj57FGDJmkj67

È così. Dovresti essere attivo e funzionante.