企業(yè)微信GitLab群機器人腳本

environment: Python3.7 flask, argparse, requests
port:5000
usage: python3 gitlabRobot.py --wechatUrl http://foo.bar
啟動后, 在GitLab 項目設(shè)置 - webhook 配置即可
webhook: http://{服務(wù)器地址}/webhook

# coding=UTF-8
from flask import Flask, request, json
import argparse
import requests

app = Flask(__name__)

@app.route('/webhook', methods=['POST'])
def webhook():
    # 請求參數(shù)
    params = request.json
    # 用戶名
    user_name = params['user_name']
    # 提交類型
    object_kind = params['object_kind']
    # 總commits數(shù)
    total_commits_count = str(params['total_commits_count'])
    # 項目名稱
    repository_name = params['repository']['name']
    # 分支
    ref = params['ref']
    # 發(fā)送內(nèi)容
    content = user_name + ' ' + object_kind + '了' + total_commits_count + '個commits到' + repository_name + '倉庫的' + ref + '分支\n'
    # 引用形式列出提交的id
    for object in params['commits']:
        content = content + '> ['+ object['id'][0:8] +']'+'('+ object['url'] +')' + ': ' + object['title'] + '\n'

    body = {
        "msgtype": "markdown",
        "markdown": {
            "content": content
        }
    }

    requests.request('POST', url, headers={'Content-Type': 'application/json'}, json=body)
    return 'OK'

if __name__ == '__main__':
    #獲取ArgumentParser對象
    parser = argparse.ArgumentParser()
    #添加參數(shù)
    parser.add_argument('--wechatUrl', type=str)
    #args是一個命名空間
    url = args = parser.parse_args().wechatUrl
    if url is not None:
        # 可以接收webhook的地址和端口,可以指定GitLab地址 自定義端口
        app.run('0.0.0.0', 5000)
    print("啟動參數(shù) --wechatUrl 為空, 程序退出")

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容