GitMaya
GitMaya copied to clipboard
🌊 One repo = one chat, make git flow in chat, next generation gitops for boosting developer-teams productivity, supports feishu, discord and slack
ä¸æ¬¾å¼æºçãé«æ§è½ç GitOps one chat = one repo
æ¯æé£ä¹¦ãdiscordãslack ç (å®å
¨å¼æº)
ç®ä½ä¸æ · English
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
ð é¨ç½²æµç¨
建议使ç¨å¨çº¿çæ¬ï¼ ð¥ ç«å³å°è¯ 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
æ件é¦å
ï¼ä¸è½½ 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_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
NOTE: æ件æ¯æå¤è¡å符串ï¼å æ¤.pem æ件å¯ä»¥ç´æ¥ç²è´´å°
.env
æ件ä¸
3. è¿è¡éå
第ä¸æ¬¡è¿è¡æ¶ï¼å®å°åå§åæ°æ®åºï¼å æ¤æ¥å¿ä¸å¯è½å å«ä¸äºé误æ¶æ¯ã
$ docker-compose up -d
B
ä½¿ç¨ Zeabur æ Sealos é¨ç½²ï¼å³å°æ¨åºï¼ï¼
æ们å³å°æ¯æ 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 æºå¨äººã
ð åè
- ä»é¶å¼å§é¨ç½²é£ä¹¦ App æºå¨äºº
- ä»é¶å¼å§é¨ç½² GitHub App
- é£ä¹¦ App å®æ¹ææ¡£
- GitHub App å®æ¹ææ¡£
ð¦ çæç³»ç»
GitMaya ç³»åæå¤ä¸ªä»åºï¼è¿æ¯å ¶ä¸ä¹ä¸ï¼
ä»åº | è¯è¨ | ç¨é | |
---|---|---|---|
ð | GitMaya | Python | æå¡å¨ç«¯ä»£ç |
GitMaya-Cli | Python | è¶ çº§ Git 管çå·¥å · |
ð¤ ç«å³åä¸è´¡ç®
Gitmaya æ¯å®å ¨å¼æºçï¼ç±å¼åè ä»¬å ±åæé ã请éæ¶éè¿ä»£ç å°ä½ æ³è¦çåè½å为ç°å®ã
|
|
---|---|
ð» æ¿ä»£æ¹æ¡
GitMaya` åå°ä»¥ä¸å·¥å ·çå¯åã
å®ä»¬é½å¾æ£ï¼ä½å ³æ³¨çéç¹ååè½éåä¸åï¼æå ´è¶£ä¹å¯ä»¥è¯è¯ :)
Copyright © 2024 ConnectAI-E.
This project is MIT licensed.