Contributing
Casbin - це потужна бібліотека авторизації, яка підтримує моделі контролю доступу з реалізаціями на багатьох мовах програмування. Якщо ви володієте будь-якою мовою програмування, ви можете внести свій вклад у розвиток Casbin. Нові учасники завжди вітаються.
Наразі існує два основних типи проектів:
- Проекти, орієнтовані на алгоритми - Ці проекти передбачають реалізацію алгоритмів на різних мовах програмування. Casbin підтримує широкий спектр мов, включаючи Golang, Java, C++, Elixir, Dart та Rust, разом з їхніми пов'язаними продуктами.
Casbin | jCasbin | node-Casbin | PHP-Casbin |
Готовий до виробництва | Готовий до виробництва | Готовий до виробництва | Готовий до виробництва |
PyCasbin | Casbin.NET | Casbin-CPP | Casbin-RS |
Готовий до виробництва | Готовий до виробництва | Готовий до виробництва | Готовий до виробництва |
- Проекти, орієнтовані на застосунки - Ці проекти пов'язані з додатками, створеними на основі Casbin.
Проект | Демо | Деталі | Стек технологій |
---|---|---|---|
Casdoor | Casdoor | Casdoor - це платформа централізованої автентифікації/Єдиного входу (SSO), заснована на OAuth 2.0/OIDC. | JavaScript + React та Golang + Beego + SQL |
Casnode | Форум Casbin | Casnode - це програмне забезпечення для форумів нового покоління. | JavaScript + React та Golang + Beego + SQL |
Casbin OA | Система OA | Casbin-OA - це офіційна система обробки, оцінки та відображення рукописів для технічних письменників Casbin. | JavaScript + React та Golang + Beego + MySQL |
Casbin Editor | Редактор Casbin | Casbin-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.