Drew DeVault, autore dell'ambiente utente e del client di posta , sull'implementazione dell'hub per i progetti nella sua piattaforma di sviluppo collaborativo . Ora gli sviluppatori possono creare progetti che diversi servizi, oltre a visualizzare progetti esistenti e cercare all'interno di essi.
La piattaforma Sourcehut è nota per la sua capacità di funzionare completamente senza JavaScript, per le elevate prestazioni e per l'organizzazione del lavoro in forma di mini-servizi in stile Unix. La funzionalità del progetto in Sourcehut è composta da singoli componenti che possono essere combinati e utilizzati separatamente, ad esempio solo ticket o solo codice senza la necessaria associazione di un repository con i ticket. La possibilità di combinare liberamente le risorse rende difficile determinare quali risorse appartengano a un progetto. L'hub per i progetti affronta questo problema e consente di raccogliere tutte le informazioni relative al progetto in un unico posto. Ad esempio, ora è possibile inserire su una pagina di progetto una descrizione generale e includere i repository, le sezioni di tracciamento degli errori, la documentazione, i canali di supporto e le mailing list associati al progetto.
Per l'integrazione con piattaforme esterne è disponibile un'API e un sistema di connessione per web-handler (webhook). Tra le funzionalità aggiuntive, Sourcehut supporta wiki, sistemi di integrazione continua, discussioni tramite email, visualizzazione ad albero degli archivi delle mailing list, revisione delle modifiche via Web, aggiunta di annotazioni al codice (collegamento di link e documentazione). Oltre a Git, è supportato Mercurial. Il codice è scritto nei linguaggi Python e Go, e sotto licenza GPLv3.
È possibile creare repository pubblici, privati e nascosti con un sistema di controllo accessi flessibile, che consente la partecipazione allo sviluppo anche di utenti senza account locali (autenticazione tramite OAuth o partecipazione tramite email). Per informare e coordinare le correzioni alle vulnerabilità, è disponibile un sistema di rapporti privati sui problemi. Le email inviate da ogni servizio sono criptate e verificate tramite PGP. Per l'accesso viene applicata l'autenticazione a due fattori basata su chiavi temporanee TOTP. Viene mantenato un log di audit dettagliato per l'analisi degli incidenti.
L'infrastruttura integrata di integrazione continua consente
l'esecuzione di build automatizzate in ambienti virtuali su vari sistemi Linux e BSD. È consentito il trasferimento diretto nel CI delle attività di build senza caricarle in un repository. I risultati della build vengono visualizzati nell'interfaccia, inviati via email o trasferiti tramite webhook. Per analizzare i guasti è possibile collegarsi agli ambienti di build tramite SSH.
Attualmente, Sourcehut funziona più velocemente dei servizi concorrenti; ad esempio, le pagine con informazioni riassuntive, elenco di commit, log delle modifiche, visione del codice, issue e albero dei file si aprono da 3-4 volte più velocemente di GitHub e GitLab, e da 8-10 volte più velocemente di Bitbucket. Si deve notare che Sourcehut non ha ancora superato la fase di sviluppo alpha, e molte delle funzionalità pianificate non sono ancora disponibili; ad esempio, non esiste ancora un'interfaccia web per le richieste di merge (la richiesta di merge viene creata attraverso l'apertura di un ticket e l'allegato di un link al ramo ramificato in Git). Un aspetto negativo è anche l'interfaccia insolita, non familiare agli utenti di GitHub e GitLab, ma rimane comunque semplice e immediatamente comprensibile.
Fonte: opennet.ru
