{"provider_url":"https://hatena.blog","published":"2025-03-11 00:03:09","image_url":null,"description":"Raspberry Pi \u3067 GitHub \u306e push \u3092\u691c\u77e5\u3057\u3001\u81ea\u52d5\u3067 git pull & \u30b3\u30de\u30f3\u30c9\u5b9f\u884c\u3059\u308b\u65b9\u6cd5\uff08Webhook\uff09 1. \u5fc5\u8981\u306a\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb sudo apt update sudo apt install -y git python3-flask 2. Webhook\u7528\u306ePython\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u4f5c\u6210 nano /home/pi/webhook.py \u4ee5\u4e0b\u306e\u5185\u5bb9\u3092\u8a18\u8ff0\uff1a from flask import Flask, request import os import subprocess app = Flask(__name__) @app.route('/\u2026","provider_name":"Hatena Blog","author_url":"https://blog.hatena.ne.jp/ruchi12377/","type":"rich","categories":[],"version":"1.0","title":"GitHub\u306bpush\u3059\u308b\u3068\u81ea\u52d5\u3067pull&\u518d\u8d77\u52d5\u3055\u305b\u308b\u65b9\u6cd5\uff08Webhook\uff09","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fruchi12377.hatenablog.com%2Fentry%2F2025%2F03%2F11%2F000309\" title=\"GitHub\u306bpush\u3059\u308b\u3068\u81ea\u52d5\u3067pull&amp;\u518d\u8d77\u52d5\u3055\u305b\u308b\u65b9\u6cd5\uff08Webhook\uff09 - \u308b\u3061tech\u30d6\u30ed\u30b0\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","blog_title":"\u308b\u3061tech\u30d6\u30ed\u30b0","height":"190","author_name":"ruchi12377","blog_url":"https://ruchi12377.hatenablog.com/","url":"https://ruchi12377.hatenablog.com/entry/2025/03/11/000309","width":"100%"}