Skip to content

Latest commit

 

History

History
506 lines (341 loc) · 15.5 KB

README_zh.md

File metadata and controls

506 lines (341 loc) · 15.5 KB

GitMaya - 在聊天中进行Git流程

一个开源的、高性能的GitOps工具 one chat = one repo 从此告别双边协同
支持飞书、discord、slack 等 (完全开源)


🖥 立即尝试 GitMaya

English · 简体中文

gitmaya.mp4

🔥 功能列表

🧑🏻‍💻 所有代码完全开源

以开发者为中心,由开发者设计,为开发者打造。

🌐 跨平台的愉悦体验

享受在不同平台上的无缝沟通,IM计划支持 Feishu, Discord, Slack, Microsoft Teams, 和 Telegram

Git计划支持GIthub, GitLab, SourceForge 和 Bitbucket

开发者在哪里,GitMaya就在哪里。

🔄 One Repo = One Chat

体验 "One Repo = One Chat" 的完美同步,让协作流畅无阻!

💬 简化 GitHub 消息互动:

从您喜爱的聊天平台直接管理所有 GitHub 互动,不再需要切换上下文。

🚀 Issue 全集成

即时处理Issue,随时同步处理进度。

🔄 Pr 全集成

高效的PR处理流程,code-diff、comment、merge,一应俱全。

🛠 CI/CD 和 GitHub Actions 全集成

通过在您的聊天平台中直接集成 CI/CD 和 GitHub Actions。

🚚 保持在代码审查流程中

最大化生产力,有效协作保持注意力。

📃 部署流程

部署 GitMaya 需要共计 3 个步骤。

步骤 1. 安装 GitHub 应用

您首先需要创建一个 GitHub 应用,详细信息请参考 从零开始部署 GitHub 应用

步骤 2. 部署 GitMaya

您可以选择使用 自托管本地部署 来部署 GitMaya 的前端和后端。

步骤 3. 部署飞书 App 机器人

部署飞书(Lark)机器人应用的步骤已经集成到 GitMaya 的入门流程中。完成入门流程将自动完成与飞书相关的配置。更多详细信息,请参考 从零开始部署飞书 App 机器人

🛳 自托管

GitMaya 提供支持无服务器和 Docker 镜像 的自托管版本。这使您能够在几分钟内部署自己的聊天机器人,无需任何先前的知识。

A 使用 Docker-Compose 部署

我们提供了一个 Docker 镜像,用于在您自己的私人设备上部署 GitMaya 服务。使用以下命令启动 GitMaya 服务:

1. 下载 docker-compose.yml.env 文件

首先,下载 docker-compose.yml.env 文件;它们包含 GitMaya 服务的配置,包括 MySQL、Celery 和 Redis。

$ wget https://raw.githubusercontent.com/ConnectAI-E/GitMaya/main/deploy/docker-compose.yml
$ wget https://raw.githubusercontent.com/ConnectAI-E/GitMaya/main/deploy/.env.example -O .env

2. 配置环境变量

接下来,您需要配置 .env 文件。您应该用您在 步骤 1 中创建的 GitHub App 信息替换这些变量。

$ vim .env

GITHUB_APP_NAMEGITHUB_APP_IDGITHUB_APP_PRIVATE_KEYGITHUB_CLIENT_IDGITHUB_CLIENT_SECRETGITHUB_WEBHOOK_SECRET 替换到 .env 文件中

SECRET_KEY="<REPLACE>"
FLASK_PERMANENT_SESSION_LIFETIME=86400*30
FLASK_SQLALCHEMY_DATABASE_URI="mysql+pymysql://root:gitmaya2023@mysql:3306/gitmaya?charset=utf8mb4&binary_prefix=true"

GITHUB_APP_NAME=your-deploy-name
GITHUB_APP_ID=114514
GITHUB_APP_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----
<replace you private key>
-----END RSA PRIVATE KEY-----"

GITHUB_CLIENT_ID=your_client_id
GITHUB_CLIENT_SECRET=your_client_secret

GITHUB_WEBHOOK_SECRET=secret
DOMAIN=127.0.0.1

NOTE: 文件支持多行字符串,因此.pem 文件可以直接粘贴到 .env 文件中

3. 运行镜像

第一次运行时,它将初始化数据库,因此日志中可能包含一些错误消息。

$ docker-compose up -d

B 使用 Zeabur 或 Sealos 部署(即将推出!)

我们即将支持 Zeabur 的一键部署。

Deploy with Zeabur

⌨️ 本地部署

1. 克隆仓库

将仓库克隆到您的本地机器或服务器:

$ git clone https://github.com/ConnectAI-E/GitMaya.git
$ cd GitMaya

2. 安装依赖

使用 pip

如果您使用 pip

$ pip install -r requirements.txt

使用 pdm(推荐)

如果您使用 pdm

$ pdm install

激活虚拟环境:

$ eval $(pdm venv activate)

3. 配置文件

在开始之前,请确保您具备以下配置文件:

  • .env: 配置飞书、GitHub 和各种中间件变量。我们提供了一个 .env.example 作为参考

通过替换相关变量配置数据库

# 数据库设置
FLASK_SQLALCHEMY_DATABASE_URI="mysql+pymysql://root:gitmaya2023@mysql:3306/gitmaya?charset=utf8mb4&binary_prefix=true"

配置 Celery,使用 Redis 作为 Broker

# Celery 设置
CELERY_BROKER_URL=redis://redis:6379/1
CELERY_RESULT_BACKEND=redis://redis:6379/2

配置 GitHub App,详细信息请参考: 从零开始部署 GitHub App

# GitHub 设置
GITHUB_APP_NAME=test
GITHUB_APP_ID=1024
GITHUB_CLIENT_ID=test
GITHUB_CLIENT_SECRET=test
GITHUB_WEBHOOK_SECRET=secret
GITHUB_APP_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----
<replace you private key>
-----END RSA PRIVATE KEY-----"

配置服务器地址

DOMAIN=127.0.0.1

(可选)配置 Flask

# Flask 设置
SECRET_KEY="test"
FLASK_PERMANENT_SESSION_LIFETIME=86400

4. 运行服务器

启动 Redis:

$ docker run -d -p 6379:6379 redis:alpine

启动 Celery,使用 Redis 作为 Broker:

$ cd server
$ celery -A tasks.celery worker -l INFO -c 2

启动 MySQL:

$ docker run --name mysql -e MYSQL_ROOT_PASSWORD=gitmaya2023 -e MYSQL_DATABASE=gitmaya -e TZ=Asia/Shanghai -p 3306:3306 -v /path/to/your/mysql/data:/var/lib/mysql -v /path/to/your/mysql/conf.d:/etc/mysql/conf.d -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

创建数据库和表 (仅需要一次):

$ flask --app server/server:app create

使用 gunicorn 运行 GitMaya 服务器:

$ gunicorn --worker-class=gevent --workers 1 --bind 0.0.0.0:8888 -t 600 --keep-alive 60 --log-level=info server:app

📕 参考

📦 生态系统

GitMaya 系列有多个仓库,这是其中之一:

仓库 语言 用途
👉 GitMaya Python 服务器端代码
GitMaya-Cli Python 超级 Git 管理工具

🤝 立即参与贡献

Gitmaya 是完全开源的,由开发者们共同打造。请随时通过代码将你想要的功能变为现实。




Top Contributors of ConnectAI-E/GitMaya - Last 28 days

👻 替代方案

gitmaya 受到以下工具的启发。

它们都很棒,但关注的重点和功能集合不同,有兴趣也可以试试 :)

📝 License

Copyright © 2024 ConnectAI-E.
This project is MIT licensed.