Skip to content

🌊 One repo = one chat, make git flow in chat, next generation gitops for boosting developer-teams productivity, supports feishu, discord and slack

License

Notifications You must be signed in to change notification settings

ConnectAI-E/GitMaya

This branch is 9 commits behind main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ebc0814 · Feb 27, 2024
Feb 23, 2024
Feb 1, 2024
Feb 27, 2024
Feb 23, 2024
Jan 17, 2024
Jan 11, 2024
Jan 16, 2024
Dec 28, 2023
Dec 22, 2023
Jan 18, 2024
Feb 23, 2024
Feb 1, 2024
Jan 29, 2024
Jan 29, 2024
Jan 29, 2024

Repository files navigation

GitMaya - 在聊天中进行Git流程

一款开源的、高性能的 GitOps one chat = one repo
支持飞书、discord、slack 等 (完全开源)


🖥 立即尝试 GitMaya

简体中文 · English

gitmaya.mp4

👋 GitMaya 的来历

生活就该简单点,开源协作也得这么干。咱们就抓重点,聊天和代码托管,这俩是核心。所以,搞个进度管理工具,就围绕这俩转。

记住了,GitMaya 就像一辆忠实的吉普车,虽然不亮眼,但能带你去任何你想去的地方。

简洁至上,实用为王。

🔥 功能列表

🔄 One Repo = One Chat 在一个聊天群中管理项目所有进展(:现在也支持关联多个仓库

🚀 Issue 处理集成 不出群聊,接管所有 Issue 操作

🔄 Pr 处理集成 从 code-diff 到 merge pr,加速代码审核

🛠 CI/CD 和 GitHub Actions 处理集成 对话中便捷获取最新 Github Action 进展

💬 简化 GitHub 消息互动 在聊天工具管理所有 GitHub 互动,不再需要切换上下文。

🌐 跨平台支持 聊天平台支持 飞书, Discord, Slack, Microsoft Teams, 和 TG。代码托管支持 Github 和 GitLab

📃 部署流程

建议使用在线版本: 🖥 立即尝试 GitMaya

如果你想手动部署 GitMaya ,需要共计 3 个步骤。

步骤 1. 安装 GitHub 应用

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

步骤 2. 部署 GitMaya

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

🛳 自托管

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

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

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

About

🌊 One repo = one chat, make git flow in chat, next generation gitops for boosting developer-teams productivity, supports feishu, discord and slack

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages