Vai al contenuto principale

Contributing

Casbin è una libreria di autorizzazione potente che supporta modelli di controllo degli accessi con implementazioni in molte lingue di programmazione. Se sei competente in qualsiasi linguaggio di programmazione, puoi contribuire allo sviluppo di Casbin. I nuovi contributori sono sempre benvenuti.

Attualmente, ci sono due tipi principali di progetti:

  • Progetti orientati agli algoritmi - Questi progetti implicano l'implementazione di algoritmi in diverse lingue di programmazione. Casbin supporta un'ampia gamma di lingue, tra cui Golang, Java, C++, Elixir, Dart e Rust, insieme ai loro prodotti correlati.
golangjavanodejsphp
CasbinjCasbinnode-CasbinPHP-Casbin
Pronto per la produzionePronto per la produzionePronto per la produzionePronto per la produzione
pythondotnetc++rust
PyCasbinCasbin.NETCasbin-CPPCasbin-RS
Pronto per la produzionePronto per la produzionePronto per la produzionePronto per la produzione
  • Progetti orientati alle applicazioni - Questi progetti riguardano applicazioni costruite sopra Casbin.
ProgettoDemoDettagliStack di competenze
CasdoorCasdoorCasdoor è una piattaforma di autenticazione centralizzata/Single-Sign-On (SSO) incentrata sull'interfaccia utente, basata su OAuth 2.0/OIDC.JavaScript + React e Golang + Beego + SQL
CasnodeForum CasbinCasnode è un software forum di nuova generazione.JavaScript + React e Golang + Beego + SQL
Casbin OASistema OACasbin-OA è un sistema ufficiale per la gestione, valutazione e visualizzazione di manoscritti per gli scrittori tecnici di Casbin.JavaScript + React e Golang + Beego + MySQL
Casbin EditorCasbin EditorCasbin-editor è un editor basato sul web per modelli e politiche di Casbin.TypeScript + React

Impegnarsi

Ci sono molti modi per contribuire a Casbin. Ecco alcune idee per iniziare:

  • Usa Casbin e segnala problemi! Quando usi Casbin, segnala eventuali problemi che incontri per aiutare a promuovere lo sviluppo di Casbin. Sia che si tratti di un bug o di una proposta, è consigliato aprire un issue su GitHub. Tuttavia, sarebbe meglio avere una discussione prima su Discord o GitHub Discussions prima di aprire un issue.

    Nota: Quando segnali un problema, per favore usa l'inglese per descrivere i dettagli del tuo problema.

  • Aiuta con la documentazione! Contribuire alla documentazione è un buon punto di partenza per il tuo contributo.

  • Aiuta a risolvere problemi! Abbiamo preparato una tabella contenente compiti facili adatti ai principianti, con diversi livelli di sfide etichettati con tag diversi. Puoi controllare la tabella qui.

Richieste di Pull

Casbin utilizza GitHub come piattaforma di sviluppo, quindi le richieste di pull sono il principale modo per contribuire.

Prima di aprire una richiesta di pull, ci sono alcune cose che devi sapere:

  • Spiega perché stai inviando la richiesta di pull e cosa farà per il repository.

  • Assicurati che la richiesta di pull faccia solo una cosa. Se ci sono più modifiche, per favore dividile in richieste di pull separate.

  • Se stai aggiungendo nuovi file, per favore includi la licenza Casbin nella parte superiore del/dei nuovo/i file/i.

    // Copyright 2021 The casbin Authors. All Rights Reserved.
    //
    // Licensed under the Apache License, Version 2.0 (the "License");
    // you may not use this file except in compliance with the License.
    // You may obtain a copy of the License at
    //
    // http://www.apache.org/licenses/LICENSE-2.0
    //
    // Unless required by applicable law or agreed to in writing, software
    // distributed under the License is distributed on an "AS IS" BASIS,
    // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    // See the License for the specific language governing permissions and
    // limitations under the License.
  • Nei progetti come Casdoor, Casnode, e Casbin OA, potresti dover configurare una demo per mostrare al maintainer come la tua richiesta di pull aiuta con lo sviluppo del progetto.

  • Quando apri una richiesta di pull e committi il tuo contributo, si raccomanda di utilizzare commit semantici con il seguente formato: <type>(<scope>): <subject>. Il <scope> è opzionale. Per un uso più dettagliato, si prega di fare riferimento a Conventional Commits.

Licenza

Contribuendo a Casbin, accetti che i tuoi contributi saranno concessi in licenza sotto la Licenza Apache.