{"id":34360011,"url":"https://github.com/storj-archived/pushy-cat","last_synced_at":"2026-03-13T02:34:25.295Z","repository":{"id":16262743,"uuid":"19010872","full_name":"storj-archived/pushy-cat","owner":"storj-archived","description":"For automatically updating static websites from Github webhooks.","archived":false,"fork":false,"pushed_at":"2020-12-28T20:38:01.000Z","size":26,"stargazers_count":5,"open_issues_count":2,"forks_count":5,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-12-21T11:45:51.496Z","etag":null,"topics":["github-webhooks","hooks","static-site"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/storj-archived.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-04-21T23:49:38.000Z","updated_at":"2023-06-30T17:30:45.000Z","dependencies_parsed_at":"2022-09-22T11:52:56.825Z","dependency_job_id":null,"html_url":"https://github.com/storj-archived/pushy-cat","commit_stats":null,"previous_names":["storj-archived/pushy-cat"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/storj-archived/pushy-cat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/storj-archived%2Fpushy-cat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/storj-archived%2Fpushy-cat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/storj-archived%2Fpushy-cat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/storj-archived%2Fpushy-cat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/storj-archived","download_url":"https://codeload.github.com/storj-archived/pushy-cat/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/storj-archived%2Fpushy-cat/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30455913,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-13T02:22:12.178Z","status":"ssl_error","status_checked_at":"2026-03-13T02:06:49.475Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["github-webhooks","hooks","static-site"],"created_at":"2025-12-18T04:06:58.797Z","updated_at":"2026-03-13T02:34:25.273Z","avatar_url":"https://github.com/storj-archived.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"pushycat\n=========\n\nListens to GitHub webhooks and executes scripts accordingly.\n\nUse case: automatically update static websites.\n\n## Installation\n\nIf you're running Ubuntu, the preferred method of installation is through a deb\npackage.\n\nIf you cannot or do not want to install pushycat through a deb package, clone\nthis repository, install the required eggs (`pip install -r requirements.txt`),\nset up the configuration files, and run the daemon:\n\n```\npushycatd --conf /path/to/config.json\n```\n\nIf you wish to run hook scripts with multiple users, pushycatd must be run as\nroot, so that it can create child processes with different users.\n\n\n### Configuration\n\nThe main configuration file lives, by default, in `/etc/pushycat/config.json`.\nYou can see an example in `examples/debian/config.json`. It supports the following settings:\n\n- user - username that should run the http server\n- listen - listen address, in \"host:port\" format, for the http server\n- path - http path where the webhooks are to be sent\n- hooks - file path for the hook definition file\n- scripts - file path for the default scripts directory\n\nThe user setting can only be different from the user running `pushycatd` if it\nis running as root. The last setting is only required if you wish to use the\n`pushycat-add` helper. It requires that a file called `create-or-update-git.sh`\nexists in that directory.\n\n\n#### Hooks configuration\n\nCreate a hooks.json similar to the provided hooks.example.json. For example, if\nyou want to track the main branch on a repository, so that it automatically\npulls a local copy, you would set it up like so:\n\n```json\n[\n  {\n    \"user\":       \"storj\",\n    \"repository\": \"https://github.com/Storj/storj.io\",\n    \"branch\":     \"main\",\n    \"run\":        [\"/path/to/create-or-update-git.sh\", \"/var/www/storj.io\"]\n  }\n]\n```\n\nThree extra arguments will be appended to the executable whenever it is called:\nrepository url, branch name, and the most recent commit hash. In the example\nabove, `create-or-update-git.sh` would be called with four arguments:\n\n```\ncreate-or-update-git.sh\n    \"/var/www/storj.io\"\n    \"https://github.Storj/storj.io\"\n    \"main\"\n    \"b8e38b7b05e5fe3130ee788c211020bc5af2415b\"\n```\n\nDue to this behaviour, it is recommended that you always create a wrapper\nscript to avoid passing unwanted arguments to your executable.\n\nIf you just wish to update a git directory whenever there's a push event, you can use\nthe `pushycat-add` tool, instead of editing the hooks file by hand. The following command\nwill add the json shown above:\n\n```\npushycat-add https://github.com/Storj/storj.io /var/www/storj.io storj\n```\n\nThis tool also supports two optional arguments: `--conf /path/to/conf` and\n`--branch branch-name`.\n\n\n#### GitHub webhook configuration\n\nAdd an url in the form `http://host:portpath` to your GitHub project, according to\nthe settings in `/etc/pushycat/config.json`.\n\nFor example, if you set the listen setting to `0.0.0.0:8080` and path to `/webhook/`,\nthe url should be something like `http://your-ip:8080/webhook/`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstorj-archived%2Fpushy-cat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstorj-archived%2Fpushy-cat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstorj-archived%2Fpushy-cat/lists"}