2015-09-28 12 views
7

Ho installato un'istanza di Artifactory (4.1.2) che sto usando per memorizzare artefatti java. Spingo artefatti per l'istanza utilizzando il plugin Gradle configurato come di seguitoImpedire la sovrascrittura di distribuzioni utilizzando l'artefice

artifactory { 
    contextUrl = 'http://example.com/artifactory' 
    publish { 
     repository { 
      // The Artifactory repository key to publish to 
      repoKey = 'libs-release-local' 

      username = artifactory_username 
      password = artifactory_password 
     } 
     defaults { 
      publications('releaseJar') 
     } 
    } 
} 

voglio essere in grado di impedire la sovrascrittura manufatti già schierati dalla versione. Questo sembra essere una richiesta comune e la docs dire

È possibile impedire a un utente o un gruppo di sovrascrivere un rilascio schierato o un'istantanea unica non concedendo l'autorizzazione Elimina. Le istantanee non univoche possono sempre essere sovrascritte (a condizione che l'autorizzazione di distribuzione sia concessa).

Tuttavia, ho creato un utente deploy che è nei gruppi 1 | deployers con i permessi relativi 1 | CanDeploy.

L'autorizzazione CanDeploy dispone delle autorizzazioni Deploy/Cache solo per il gruppo deployers.

Tuttavia! Posso sovrascrivere l'artefatto distribuito con i miei cuori usando gradle artifactoryPublish.

Qualsiasi consiglio è ben accetto :)

EDIT: Da questa domanda la funzionalità ha iniziato a lavorare, se lo desideri. Questo è molto strano visto che non ho modificato affatto le impostazioni di Artifactory, ma ora sto restituendo un 403 quando provo a caricare un artefatto con la stessa versione num che è già stata distribuita. Posso solo presumere che ci sia qualcosa di strano per quanto riguarda la memorizzazione nella cache delle autorizzazioni di accesso o qualcosa che ha portato le mie modifiche attraverso l'interfaccia utente web a non diventare efficace per un giorno o due - snervante ma al momento funziona. Per il momento lascerò la domanda mentre mi assicuro che funzioni!

risposta

3

Il modo più semplice per verificare le autorizzazioni è impostato nella scheda "Autorizzazioni effettive" nell'interfaccia utente del browser. Quando si seleziona il repository "releaseJar", se si vede che l'autorizzazione "delete" è stata selezionata sull'utente "deploy" di quanto si potrebbe avere un altro target di autorizzazione che fornisce l'autorizzazione di eliminazione a questo utente. È possibile visualizzare l'elenco delle destinazioni di autorizzazione utilizzate da un singolo utente nella pagina "Utenti". Spero che questo aiuti.

+1

Thx per la risposta: l'utente di distribuzione solo come permesso 'Deploy/Cache'. Tuttavia questo ora ha iniziato a funzionare. Si prega di consultare la modifica sulla domanda. – Dori