跳转至主要内容

Contributing

Casbin是一个强大的授权库,支持许多编程语言的访问控制模型实现。 如果你精通任何一种编程语言,你可以为Casbin的开发做出贡献。 我们始终欢迎新的贡献者。

目前,主要有两种类型的项目:

  • 以算法为导向的项目 - 这些项目涉及在不同的编程语言中实现算法。 Casbin支持多种语言,包括Golang、Java、C++、Elixir、Dart和Rust,以及它们的相关产品。
golangjavanodejsphp
CasbinjCasbinnode-CasbinPHP-Casbin
生产就绪生产就绪生产就绪生产就绪
pythondotnetc++rust
PyCasbinCasbin.NETCasbin-CPPCasbin-RS
生产就绪生产就绪生产就绪生产就绪
  • 以应用为导向的项目 - 这些项目与基于Casbin构建的应用有关。
项目演示详情技能栈
CasdoorCasdoorCasdoor是一个以UI为主的基于OAuth 2.0/OIDC的集中式身份验证/单点登录(SSO)平台。JavaScript + React 和 Golang + Beego + SQL
CasnodeCasbin 论坛Casnode是下一代论坛软件。JavaScript + React 和 Golang + Beego + SQL
Casbin OAOA系统Casbin-OA是Casbin技术写作的官方稿件处理、评估和展示系统。JavaScript + React 和 Golang + Beego + MySQL
Casbin编辑器Casbin编辑器Casbin-editor是一个用于Casbin模型和策略的基于web的编辑器。TypeScript + React

参与其中

有许多方式可以为Casbin做出贡献。 以下是一些开始的建议:

  • 使用Casbin并报告问题! 在使用Casbin时,报告你遇到的任何问题,以帮助推动Casbin的开发。 无论是bug还是提案,在GitHub上提交问题都是推荐的做法。 然而,在提交问题之前,最好先在DiscordGitHub Discussions上进行讨论。

    注意:在报告问题时,请用英语描述你的问题的详细情况。

  • 帮助完善文档! 对文档的贡献是你开始贡献的好起点。

  • 帮助解决问题! 我们准备了一个包含适合初学者的简单任务的表格,不同级别的挑战用不同的标签标记。 你可以在这里查看表格。

拉取请求

Casbin使用GitHub作为其开发平台,因此拉取请求是主要的贡献方式。

在开启一个拉取请求之前,你需要知道一些事情:

  • 解释你为什么发送拉取请求,以及它将为仓库做什么。

  • 确保拉取请求只做一件事。 如果有多个更改,请将它们分割成单独的拉取请求。

  • 如果你正在添加新的文件,请在新文件的顶部包含Casbin许可证。

    // 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.
  • 在像CasdoorCasnodeCasbin OA这样的项目中,你可能需要设置一个演示来向维护者展示你的拉取请求如何帮助项目的开发。

  • 在开启一个拉取请求和提交你的贡献时,建议使用以下格式的语义提交:<type>(<scope>): <subject><scope>是可选的。 更详细的使用方法,请参考Conventional Commits

许可证

通过对Casbin的贡献,你同意你的贡献将在Apache许可证下被许可。