Skip to Content
Nuova versione 12 disponibile 🎉

GitHub Actions

GitHub Actions offre un modo pratico per automatizzare l'offuscamento del tuo codice, permettendoti di definire le attività di offuscamento come parte della pipeline di build e di distribuzione.

Questo esempio presenta una semplice applicazione WebApi che mostra come integrare senza difficoltà Babel Obfuscator con GitHub Actions. Lo scopo dell’integrazione è mostrare con quanta facilità Babel Obfuscator si aggiunge al tuo progetto tramite il pacchetto NuGet e come accedere in modo sicuro al file di licenza tramite i segreti di GitHub.

L’esempio fornisce inoltre indicazioni utili su come configurare NuGet per accedere direttamente all’archivio dei pacchetti di GitHub e installare nel tuo progetto la dipendenza dal pacchetto NuGet di Babel Obfuscator. Seguendo le istruzioni passo per passo puoi adottare facilmente Babel Obfuscator nel tuo progetto e sfruttare le sue potenti capacità di offuscamento.

Per aiutarti a iniziare, il codice sorgente dell’esempio è disponibile nel nostro repository GitHub, dove puoi esaminare l’integrazione più in dettaglio.

git clone https://github.com/babelfornet/webapi-actions-example.git

Per integrare Babel Obfuscator con GitHub Actions devi aggiungere al tuo progetto un riferimento al pacchetto NuGet di Babel Obfuscator. Il pacchetto fa entrare Babel Obfuscator nel processo di build e offusca l’assembly target. Può essere scaricato e installato direttamente dal feed NuGet privato di GitHub.

Per predisporre il pacchetto NuGet di Babel Obfuscator nell’archivio dei pacchetti di GitHub devi creare un token di accesso con privilegi sufficienti per pubblicare, installare ed eliminare pacchetti NuGet dall’archivio dei pacchetti di GitHub (vedi la documentazione di GitHub ). Puoi poi usare lo strumento da riga di comando dotnet per caricare il pacchetto NuGet di Babel Obfuscator.

dotnet nuget push .\Babel.Obfuscator.nupkg --api-key TOKEN --source https://nuget.pkg.github.com/USERNAME/index.json

Nel comando precedente:

  • TOKEN è il tuo token di accesso personale con privilegi sufficienti per pubblicare pacchetti.
  • USERNAME è il nome del tuo account personale su GitHub.

Per installare il pacchetto NuGet di Babel Obfuscator dall’archivio dei pacchetti di GitHub, aggiungi al tuo progetto il seguente file di configurazione XML:

<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <add key="nuget" value="https://www.nuget.org/api/v2" /> <add key="github" value="https://nuget.pkg.github.com/USERNAME/index.json" /> </packageSources> <activePackageSource> <add key="All" value="(Aggregate source)" /> </activePackageSource> <packageSourceCredentials> <github> <add key="Username" value="babelfornet" /> <add key="ClearTextPassword" value="%PACKAGES_TOKEN%" /> </github> </packageSourceCredentials> </configuration>

Nel file di configurazione XML precedente:

  • PACKAGES_TOKEN è la variabile d’ambiente che contiene il tuo token di accesso personale con i privilegi di lettura dall’archivio
  • USERNAME è il nome del tuo account personale su GitHub.

Dopo aver installato il pacchetto NuGet di Babel Obfuscator, puoi configurare GitHub Actions per usarlo nel tuo workflow di integrazione continua (CI). A questo scopo crea nel repository un file YAML che definisce il workflow. Il file YAML specifica i passi eseguiti durante il processo di CI, compreso il passo di build.

Ecco un esempio di file YAML:

name: dotnet package on: [push] jobs: build: runs-on: ubuntu-latest strategy: matrix: dotnet-version: [ '8.0.x' ] steps: - uses: actions/checkout@v3 - name: Setup .NET Core SDK ${{ matrix.dotnet-version }} uses: actions/setup-dotnet@v3 with: dotnet-version: ${{ matrix.dotnet-version }} - name: Install dependencies run: dotnet restore env: PACKAGES_TOKEN: ${{ secrets.PACKAGES_TOKEN }} - name: Build run: dotnet build --configuration Release --no-restore env: BABEL_LICENSE: ${{ secrets.BABEL_LICENSE_SECRET }}

Oltre al riferimento al pacchetto, nel workflow di CI devi anche impostare la variabile d’ambiente BABEL_LICENSE sul percorso del tuo file di licenza. Puoi farlo aggiungendo la riga seguente al file del workflow, nella sezione env:

BABEL_LICENSE: ${{ secrets.BABEL_LICENSE_SECRET }}

Il segreto BABEL_LICENSE_SECRET contiene la chiave di licenza, che viene passata a Babel Obfuscator durante il processo di build impostando la seguente proprietà nel file di progetto.

<PropertyGroup> <BabelLicense>$(BABEL_LICENSE)</BabelLicense> </PropertyGroup>

Puoi creare BABEL_LICENSE_SECRET nelle impostazioni del repository GitHub, in Security > Secrets and variables > Actions.

Aggiorna la variabile BABEL_LICENSE_SECRET in base al tipo di licenza ricevuto.

Licenza flottante

Imposta BABEL_LICENSE_SECRET sulla chiave della licenza flottante, come segue:

BABEL_LICENSE_SECRET=floating:UAZK7-GTO0E-98KR1-CKPUJ

Licenza a file

Imposta BABEL_LICENSE_SECRET sul percorso del file di licenza, per esempio:

BABEL_LICENSE_SECRET=./Babel/babel.licenses

Nel complesso, questo esempio mostra come integrare Babel Obfuscator con GitHub Actions e sottolinea l’importanza di proteggere l’accesso a informazioni sensibili come le chiavi di licenza.

Last updated on