GitMaya
🌊 One repo = one chat, make git flow in chat, next generation gitops for boosting developer-teams productivity, supports feishu, discord and slack
Install / Use
/learn @ConnectAI-E/GitMayaREADME
<a name="readme-top"></a>
<div align="center"> <a href="https://gitmaya.com" target="_blank" style="display: block" align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/ConnectAI-E/GitMaya/assets/50035229/45cfd4f3-9c17-44d2-b6b7-3aa97c08006b" width="655" height="auto"> <img alt="GitMaya - 在聊天中进行Git流程" src="https://github.com/ConnectAI-E/GitMaya/assets/50035229/1c28f0ca-d6e6-4ebd-b858-c4be3eff845e" width="655" height="auto"> </picture> </a> <p align='center'> <samp>一款开源的、高性能的 GitOps one chat = one repo </samp> <br/> <samp>支持飞书、discord、slack 等 <sup><em>(完全开源)</em></sup></samp> </p> <!-- SHIELD GROUP -->[![][github-logo-shield]][github-logo-link] [![][github-contributors-shield]][github-contributors-link] [![][github-forks-shield]][github-forks-link] [![][github-stars-shield]][github-stars-link] [![][github-issues-shield]][github-issues-link] [![][github-license-shield]][github-license-link]<br>
</div> <p align="center"> <a href="https://gitmaya.com"> 🖥 Try GitMaya Now </a> </p> <p align="center"> <a href="https://gitmaya-doc.netlify.app/"> 📖 使用文档</a> </p> <strong align="center"> <samp> </samp> </strong>https://github.com/ConnectAI-E/GitMaya/assets/50035229/490b87d3-47f7-4a89-a4c7-737df359d67d
👋 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
📃 部署流程
建议使用在线版本:<a href="https://gitmaya.com"> 🖥 立即尝试 GitMaya </a>
如果你想手动部署 GitMaya ,需要共计 3 个步骤。
步骤 1. 安装 GitHub 应用
您首先需要创建一个 GitHub 应用,详细信息请参考 [从零开始部署 GitHub 应用][Deploy GitHub App From Scratch]。
步骤 2. 部署 GitMaya
您可以选择使用 自托管 或 本地部署 来部署 GitMaya 的前端和后端。
<details> <summary> <h4 id="self-hosting">🛳 自托管</h2>GitMaya 提供支持无服务器和 [Docker 镜像][docker-release-link] 的自托管版本。这使您能够在几分钟内部署自己的聊天机器人,无需任何先前的知识。
</summary>A 使用 Docker-Compose 部署
[![][docker-release-shield]][docker-release-link] [![][docker-size-shield]][docker-size-link] [![][docker-pulls-shield]][docker-pulls-link]
我们提供了一个 Docker 镜像,用于在您自己的私人设备上部署 GitMaya 服务。使用以下命令启动 GitMaya 服务:
<details> <summary>1. 下载 docker-compose.yml 和 .env 文件
</summary>
首先,下载 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
</details>
<details>
<summary>
2. 配置环境变量
</summary>接下来,您需要配置 .env 文件。您应该用您在 步骤 1 中创建的 GitHub App 信息替换这些变量。
$ vim .env
将 GITHUB_APP_NAME、GITHUB_APP_ID、GITHUB_APP_PRIVATE_KEY、GITHUB_CLIENT_ID、GITHUB_CLIENT_SECRET、GITHUB_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
</details> <details> <summary>NOTE: 文件支持多行字符串,因此.pem 文件可以直接粘贴到
.env文件中
3. 运行镜像
</summary>第一次运行时,它将初始化数据库,因此日志中可能包含一些错误消息。
$ docker-compose up -d
</details>
<!-- > \[!NOTE]
>
> 有关使用 Docker 部署的详细说明,请参阅 [📘 Docker 部署指南](https://github.com/connectai-e/gitmaya/wiki/Docker-Deployment) -->
<!-- <details><summary><h4>🫙 Docker-Compose 环境变量</h4></summary>
该项目提供了一些使用环境变量设置的额外配置项:
| 环境变量 | 是否必需 | 描述 | 示例 |
| -------------------- | -------- | -------------------------------------------------------- | -------------------- |
| `OPENAI_API_KEY` | 是 | 这是您在 OpenAI 帐户页面上申请的 API 密钥 | `sk-xxxxxx...xxxxxx` |
<!--
> \[!NOTE]
>
> 完整的环境变量列表可以在 [📘 Environment Variables](https://github.com/connectai-e/gitmaya/wiki/Environment-Variable) -->
B 使用 Zeabur 或 Sealos 部署(即将推出!)
我们即将支持 Zeabur 的一键部署。
<div align="left">| Deploy with Zeabur | | :---------------------------------------------------------: | | [![][deploy-on-zeabur-button-image]][deploy-on-zeabur-link] |
</div> <div align="right"> </div> </details> </details> </details> <details> <summary> <h4 id="local-development">⌨️ 本地部署</h2>将仓库克隆到本地进行开发
</summary> <details> <summary>1. 克隆仓库
</summary>将仓库克隆到您的本地机器或服务器:
$ git clone https://github.com/ConnectAI-E/GitMaya.git
$ cd GitMaya
</details>
<details>
<summary>
2. 安装依赖
</summary>使用 pip
如果您使用 pip
$ pip install -r requirements.txt
使用 pdm(推荐)
如果您使用 pdm
$ pdm install
激活虚拟环境:
$ eval $(pdm venv activate)
</details>
<details>
<summary>
3. 配置文件
</summary>在开始之前,请确保您具备以下配置文件:
.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][Deploy GitHub App From Scratch]
# 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
</details>
<details>
<summary>
4. 运行服务器
</summary>启动 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
</details>
</details>
<details>
<summary>
步骤 3. 部署飞书 App 机器人
</summary>部署飞书(Lark)机器人应用的步骤已经集成到 GitMaya 的入门流程中。完成入门流程将自动完成与飞书相关的配置。更多详细信息,请参考 [从零开始部署飞书 App 机器人][Deploy Feishu App Bot From Scratch]。
</details>📕 参考
- [从零开始部署飞书 App 机器人][Deploy Feishu App Bot From Scratch]
- [从零开始部署 GitHub App][Deploy GitHub App From Scratch]
- [飞书 App 官方文档][Feishu App Official Doc]
- [GitHub App 官方文档][GitHub App Official Doc]
📦 生态系统
GitMaya 系列有多个仓库,这是其中之一:
| | 仓库 | 语言 | 用途 | | --- | --------------------------------------------------------- | ------ | ----------------- | | 👉 | GitMaya | Python | 服务器端代码 | | | GitMaya-Cli | Python | 超级 Git 管理工具 |
<div align="right"> </div>🤝 立即参与贡献
Gitmaya 是完全开源的,由开发者们共同打造。请随时通过代码将你想要的功能变为现实。
[![][pr-welcome-shield]][pr-welcome-link]
<a href="https://github.com/connectai-e/gitmaya/graphs/contributors" target="_blank"> <table> <tr> <th colspan="2"> <br> <img src="https://contrib.rocks/image?repo=connectai-e/gitmaya"> <br><br> </th> </tr> <tr> <td> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://next.ossinsight.io/widgets/official/compose-recent-top-contributors/thumbnail.png?repo_id=734566084&image_size=auto&color_scheme=dark" width="373" height="auto"> <img alt="Top Contributors of ConnectAI-E/GitMaya - Last 28 days" src="https://next.ossinsight.io/widgets/official/compose-recent-top-contributors/thumbnail.png?repo_id=734566084&image_size=auto&color_scheme=light" width="373" height="auto"> </picture> </td> </tr> </table> </a> <div align="right"> </div>👻 替代方案
GitMaya` 受到以下工具的启发。
它们都很棒,但关注的重点和功能集合不同,有兴趣也可以试试 :)
<details><summary><h4>📝 License</h4></summary> </details>Copyright © 2024 [ConnectAI-E][profile-link]. <br /> This project is MIT licensed.
<!-- LINK GROUP -->Related Skills
apple-reminders
329.0kManage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.
gh-issues
329.0kFetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]
healthcheck
329.0kHost security hardening and risk-tolerance configuration for OpenClaw deployments
imsg
329.0kiMessage/SMS CLI for listing chats, history, and sending messages via Messages.app.
