Перейти до основного контенту

Contributing

Casbin - це потужна бібліотека авторизації, яка підтримує моделі контролю доступу з реалізаціями на багатьох мовах програмування. Якщо ви володієте будь-якою мовою програмування, ви можете внести свій вклад у розвиток Casbin. Нові учасники завжди вітаються.

Наразі існує два основних типи проектів:

  • Проекти, орієнтовані на алгоритми - Ці проекти передбачають реалізацію алгоритмів на різних мовах програмування. Casbin підтримує широкий спектр мов, включаючи Golang, Java, C++, Elixir, Dart та Rust, разом з їхніми пов'язаними продуктами.
golangjavanodejsphp
CasbinjCasbinnode-CasbinPHP-Casbin
Готовий до виробництваГотовий до виробництваГотовий до виробництваГотовий до виробництва
pythondotnetc++rust
PyCasbinCasbin.NETCasbin-CPPCasbin-RS
Готовий до виробництваГотовий до виробництваГотовий до виробництваГотовий до виробництва
  • Проекти, орієнтовані на застосунки - Ці проекти пов'язані з додатками, створеними на основі Casbin.
ПроектДемоДеталіСтек технологій
CasdoorCasdoorCasdoor - це платформа централізованої автентифікації/Єдиного входу (SSO), заснована на OAuth 2.0/OIDC.JavaScript + React та Golang + Beego + SQL
CasnodeФорум CasbinCasnode - це програмне забезпечення для форумів нового покоління.JavaScript + React та Golang + Beego + SQL
Casbin OAСистема OACasbin-OA - це офіційна система обробки, оцінки та відображення рукописів для технічних письменників Casbin.JavaScript + React та Golang + Beego + MySQL
Casbin EditorРедактор CasbinCasbin-editor - це веб-редактор для моделей та політик Casbin.TypeScript + React

Як долучитися

Існує багато способів зробити внесок у Casbin. Ось деякі ідеї для початку:

  • Використовуйте Casbin та повідомляйте про проблеми! При використанні Casbin повідомляйте про будь-які проблеми, з якими ви стикаєтеся, щоб сприяти розвитку Casbin. Чи то баг, чи пропозиція, рекомендується подавати заявку на GitHub. Однак, краще спочатку обговорити на Discord або GitHub Discussions перед поданням заявки.

    Примітка: При повідомленні про проблему, будь ласка, використовуйте англійську мову для опису деталей вашої проблеми.

  • Допоможіть з документацією! Внесок у документацію - це хороша точка старту для вашого внеску.

  • Допоможіть вирішити проблеми! Ми підготували таблицю з легкими завданнями, підходящими для початківців, з різними рівнями викликів, позначеними різними тегами. Ви можете перевірити таблицю тут.

Pull Requests

Casbin використовує GitHub як платформу для розробки, тому pull requests є основним способом внесення вкладу.

Перед тим як відкрити pull request, є кілька речей, які вам потрібно знати:

  • Поясніть, чому ви надсилаєте pull request та що він зробить для репозиторію.

  • Переконайтеся, що pull request робить лише одну річ. Якщо є кілька змін, будь ласка, розділіть їх на окремі pull requests.

  • Якщо ви додаєте нові файли, будь ласка, включіть ліцензію 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.
  • У проектах на кшталт Casdoor, Casnode, та Casbin OA, вам може знадобитися налаштувати демонстрацію, щоб показати керівнику, як ваш pull request допомагає у розвитку проекту.

  • При відкритті pull request та надсиланні вашого внеску рекомендується використовувати семантичні коміти з наступним форматом: <type>(<scope>): <subject>. <scope> є необов'язковим. Для більш детального використання, будь ласка, зверніться до Conventional Commits.

Ліцензія

Вносячи вклад у Casbin, ви погоджуєтеся, що ваші внески будуть ліцензовані за Apache License.