Source code for app_webhook.views_github

from django.shortcuts import render, HttpResponse
from django.views.decorators.csrf import csrf_exempt
from share.util_file import log_event
import json
import hashlib, hmac, base64
import os
from main_settings.settings import BASE_DIR
from .models import WebhookLog
from .shell_cmd import Cmds
from .hook import GithubHook
from main_settings.settings import BASE_DIR
import pathlib
from share.env_conf import WebhookConfig

# Create your views here.

FILENAME = 'github_webhook.log'
GITHUB_LOGFILE = os.path.join(BASE_DIR, 'log', FILENAME)

[docs]@csrf_exempt def github_hook(request): if request.method == 'POST': # 注意github配置时,选择的是form还是json # 如果是json log = GithubHook(request, sec_code=str(WebhookConfig.github_sec_code)) filename = 'demo_script.sh' dirname = pathlib.Path(BASE_DIR).parent # log.shell_script = os.path.join(dirname, filename) log.shell_script = WebhookConfig.github_hook_script print(f'script file ---> {log.shell_script}') log.save_log() print(f'verified ---> {log.verified}') # dummy commit # TODO: 如果是form return HttpResponse('ok') return HttpResponse('not post\n')
[docs]def list_githublog(request, count=5): if request.method == 'GET': logs = WebhookLog.objects.all().order_by('-id')[:count] return render(request, 'app_webhook/github_log.html', {'logs': logs}) return HttpResponse("no ok")