Pular para o conteúdo principal

Contributing

O Casbin é uma poderosa biblioteca de autorização que suporta modelos de controle de acesso com implementações em várias linguagens de programação. Se você é proficiente em qualquer linguagem de programação, pode contribuir para o desenvolvimento do Casbin. Novos contribuidores são sempre bem-vindos.

Atualmente, existem dois principais tipos de projetos:

  • Projetos orientados a algoritmos - Esses projetos envolvem a implementação de algoritmos em diferentes linguagens de programação. O Casbin suporta uma ampla gama de linguagens, incluindo Golang, Java, C++, Elixir, Dart e Rust, juntamente com seus produtos relacionados.
golangjavanodejsphp
CasbinjCasbinnode-CasbinPHP-Casbin
Pronto para produçãoPronto para produçãoPronto para produçãoPronto para produção
pythondotnetc++rust
PyCasbinCasbin.NETCasbin-CPPCasbin-RS
Pronto para produçãoPronto para produçãoPronto para produçãoPronto para produção
  • Projetos orientados a aplicações - Esses projetos estão relacionados a aplicações construídas em cima do Casbin.
ProjetoDemonstraçãoDetalhesPilhas de habilidades
CasdoorCasdoorO Casdoor é uma plataforma centralizada de autenticação/UI-first/Single-Sign-On (SSO) baseada em OAuth 2.0/OIDC.JavaScript + React e Golang + Beego + SQL
CasnodeFórum CasbinO Casnode é um software de fórum de próxima geração.JavaScript + React e Golang + Beego + SQL
Casbin OASistema OAO Casbin-OA é um sistema oficial de processamento, avaliação e exibição de manuscritos para escritores técnicos do Casbin.JavaScript + React e Golang + Beego + MySQL
Casbin EditorEditor CasbinO Casbin-editor é um editor baseado na web para modelos e políticas do Casbin.TypeScript + React

Envolvendo-se

Há muitas maneiras de contribuir para o Casbin. Aqui estão algumas ideias para começar:

  • Use o Casbin e relate problemas! Ao usar o Casbin, relate quaisquer problemas que encontrar para ajudar a promover o desenvolvimento do Casbin. Seja um bug ou uma proposta, é recomendado registrar um problema no GitHub. No entanto, seria melhor ter uma discussão primeiro no Discord ou nas Discussões do GitHub antes de registrar um problema.

    Nota: Ao relatar um problema, por favor use o inglês para descrever os detalhes do seu problema.

  • Ajude com a documentação! Contribuir para a documentação é um bom ponto de partida para sua contribuição.

  • Ajude a resolver problemas! Preparamos uma tabela contendo tarefas fáceis adequadas para iniciantes, com diferentes níveis de desafios marcados com diferentes tags. Você pode verificar a tabela aqui.

Pull Requests

O Casbin usa o GitHub como sua plataforma de desenvolvimento, então pull requests são a principal maneira de contribuir.

Antes de abrir um pull request, há algumas coisas que você precisa saber:

  • Explique por que você está enviando o pull request e o que ele fará pelo repositório.

  • Certifique-se de que o pull request faça apenas uma coisa. Se houver várias alterações, por favor divida-as em pull requests separados.

  • Se você estiver adicionando novos arquivos, por favor inclua a licença do Casbin no topo dos novos arquivos.

    // 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.
  • Em projetos como Casdoor, Casnode, e Casbin OA, você pode precisar configurar uma demonstração para mostrar ao mantenedor como seu pull request ajuda no desenvolvimento do projeto.

  • Ao abrir um pull request e enviar sua contribuição, é recomendado usar commits semânticos com o seguinte formato: <type>(<scope>): <subject>. O <scope> é opcional. Para um uso mais detalhado, por favor consulte Commits Convencionais.

Licença

Ao contribuir para o Casbin, você concorda que suas contribuições serão licenciadas sob a Licença Apache.