Ir al contenido principal

Contributing

Casbin es una poderosa biblioteca de autorización que soporta modelos de control de acceso con implementaciones en muchos lenguajes de programación. Si eres competente en cualquier lenguaje de programación, puedes contribuir al desarrollo de Casbin. Los nuevos colaboradores son siempre bienvenidos.

Actualmente, hay dos tipos principales de proyectos:

  • Proyectos orientados a algoritmos - Estos proyectos involucran la implementación de algoritmos en diferentes lenguajes de programación. Casbin soporta una amplia gama de lenguajes, incluyendo Golang, Java, C++, Elixir, Dart y Rust, junto con sus productos relacionados.
golangjavanodejsphp
CasbinjCasbinnode-CasbinPHP-Casbin
Listo para producciónListo para producciónListo para producciónListo para producción
pythondotnetc++rust
PyCasbinCasbin.NETCasbin-CPPCasbin-RS
Listo para producciónListo para producciónListo para producciónListo para producción
  • Proyectos orientados a aplicaciones - Estos proyectos están relacionados con aplicaciones construidas sobre Casbin.
ProyectoDemoDetallesPilas de habilidades
CasdoorCasdoorCasdoor es una plataforma centralizada de autenticación/UI-first/Single-Sign-On (SSO) basada en OAuth 2.0/OIDC.JavaScript + React y Golang + Beego + SQL
CasnodeForo CasbinCasnode es un software de foro de próxima generación.JavaScript + React y Golang + Beego + SQL
Casbin OASistema OACasbin-OA es un sistema oficial de procesamiento, evaluación y visualización de manuscritos para escritores técnicos de Casbin.JavaScript + React y Golang + Beego + MySQL
Casbin EditorEditor CasbinCasbin-editor es un editor basado en la web para modelos y políticas de Casbin.TypeScript + React

Participar

Hay muchas maneras de contribuir a Casbin. Aquí hay algunas ideas para empezar:

  • ¡Usa Casbin e informa problemas! Al usar Casbin, informa cualquier problema que encuentres para ayudar a promover el desarrollo de Casbin. Ya sea un error o una propuesta, se recomienda presentar un problema en GitHub. Sin embargo, sería mejor tener una discusión primero en Discord o GitHub Discussions antes de presentar un problema.

    Nota: Al informar un problema, por favor usa inglés para describir los detalles de tu problema.

  • ¡Ayuda con la documentación! Contribuir a la documentación es un buen punto de partida para tu contribución.

  • ¡Ayuda a resolver problemas! Hemos preparado una tabla que contiene tareas fáciles adecuadas para principiantes, con diferentes niveles de desafíos etiquetados con diferentes tags. Puedes consultar la tabla aquí.

Pull Requests

Casbin utiliza GitHub como su plataforma de desarrollo, por lo que las pull requests son la principal manera de contribuir.

Antes de abrir una pull request, hay algunas cosas que necesitas saber:

  • Explica por qué estás enviando la pull request y qué hará por el repositorio.

  • Asegúrate de que la pull request haga solo una cosa. Si hay varios cambios, por favor divídelos en pull requests separadas.

  • Si estás añadiendo archivos nuevos, por favor incluye la licencia de Casbin en la parte superior de los nuevos archivos.

    // 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.
  • En proyectos como Casdoor, Casnode, y Casbin OA, puede que necesites configurar una demostración para mostrar al mantenedor cómo tu pull request ayuda con el desarrollo del proyecto.

  • Al abrir una pull request y comprometer tu contribución, se recomienda usar commits semánticos con el siguiente formato: <type>(<scope>): <subject>. El <scope> es opcional. Para un uso más detallado, por favor consulta Conventional Commits.

Licencia

Al contribuir a Casbin, aceptas que tus contribuciones estarán licenciadas bajo la Licencia Apache.