{"id":19065267,"url":"https://github.com/hackersandslackers/ghost-sql-sanitation","last_synced_at":"2026-01-19T01:01:42.155Z","repository":{"id":51318239,"uuid":"197251195","full_name":"hackersandslackers/ghost-sql-sanitation","owner":"hackersandslackers","description":":ghost: 🖲 Sanitize Ghost Blog SQL data on a schedule to ensure content quality.","archived":false,"fork":false,"pushed_at":"2025-09-22T16:48:35.000Z","size":75,"stargazers_count":1,"open_issues_count":25,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-22T18:47:41.969Z","etag":null,"topics":["blog-maintenance","mysql","pymysql","python3","sql","sql-queries"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hackersandslackers.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-07-16T18:57:30.000Z","updated_at":"2020-08-23T17:58:47.000Z","dependencies_parsed_at":"2023-09-30T07:24:39.052Z","dependency_job_id":"edd30c23-d547-42b8-b47d-46d678302374","html_url":"https://github.com/hackersandslackers/ghost-sql-sanitation","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hackersandslackers/ghost-sql-sanitation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackersandslackers%2Fghost-sql-sanitation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackersandslackers%2Fghost-sql-sanitation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackersandslackers%2Fghost-sql-sanitation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackersandslackers%2Fghost-sql-sanitation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hackersandslackers","download_url":"https://codeload.github.com/hackersandslackers/ghost-sql-sanitation/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackersandslackers%2Fghost-sql-sanitation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28556064,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T00:46:33.223Z","status":"ssl_error","status_checked_at":"2026-01-19T00:46:32.754Z","response_time":98,"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":["blog-maintenance","mysql","pymysql","python3","sql","sql-queries"],"created_at":"2024-11-09T00:49:16.290Z","updated_at":"2026-01-19T01:01:42.137Z","avatar_url":"https://github.com/hackersandslackers.png","language":"Python","funding_links":["https://www.buymeacoffee.com/hackersslackers"],"categories":[],"sub_categories":[],"readme":"# Ghost Blog Data Sanitizer\n\n![Python](https://img.shields.io/badge/Python-v3.7-blue.svg?logo=python\u0026longCache=true\u0026logoColor=white\u0026colorB=5e81ac\u0026style=flat-square\u0026colorA=4c566a)\n![Flask](https://img.shields.io/badge/Flask-v1.0.2-blue.svg?longCache=true\u0026logo=python\u0026style=flat-square\u0026logoColor=white\u0026colorB=5e81ac\u0026colorA=4c566a)\n![PyMySQL](https://img.shields.io/badge/PyMySQL-v0.9.3-blue.svg?longCache=true\u0026logo=python\u0026longCache=true\u0026style=flat-square\u0026logoColor=white\u0026colorB=5e81ac\u0026colorA=4c566a)\n![SQLAlchemy](https://img.shields.io/badge/SQLAlchemy-1.3.6-red.svg?longCache=true\u0026style=flat-square\u0026logo=scala\u0026logoColor=white\u0026colorA=4c566a\u0026colorB=bf616a)\n![Google Cloud Functions](https://img.shields.io/badge/Google--Cloud--Functions-v93-blue.svg?longCache=true\u0026logo=google\u0026longCache=true\u0026style=flat-square\u0026logoColor=white\u0026colorB=5e81ac\u0026colorA=4c566a)\n![GitHub Last Commit](https://img.shields.io/github/last-commit/google/skia.svg?style=flat-square\u0026colorA=4c566a\u0026colorB=a3be8c)\n[![GitHub Issues](https://img.shields.io/github/issues/hackersandslackers/ghost-sql-sanitation.svg?style=flat-square\u0026colorA=4c566a\u0026colorB=ebcb8b\u0026logo=Github)](https://github.com/hackersandslackers/ghost-sql-sanitation/issues)\n[![GitHub Stars](https://img.shields.io/github/stars/hackersandslackers/ghost-sql-sanitation.svg?style=flat-square8\u0026colorA=4c566a\u0026colorB=ebcb8b\u0026logo=Github)](https://github.com/hackersandslackers/ghost-sql-sanitation/stargazers)\n[![GitHub Forks](https://img.shields.io/github/forks/hackersandslackers/ghost-sql-sanitation.svg?style=flat-square\u0026colorA=4c566a\u0026colorB=ebcb8b\u0026logo=Github)](https://github.com/hackersandslackers/ghost-sql-sanitation/network)\n\nEnsure the quality of your blog posts by generating missing meta data, enforcing consistency, and never letting fields go unpopulated. **Ghost Blog Data Sanitizer** is an automated job to protect authors from publishing posts with subpar or missing fields which are critical to SEO.\n\n\n## Getting Started\n\nInstallation is recommended with Pipenv:\n\n```shell\n$ git clone https://github.com/hackersandslackers/ghost-sql-sanitation.git\n$ cd ghost-sql-sanitation\n$ pipenv shell\n$ pipenv update\n$ python3 main.py\n```\n\nInstallation via [Poetry](https://python-poetry.org/):\n\n```shell\n$ git clone https://github.com/hackersandslackers/bigquery-python-tutorial.git\n$ cd ghost-sql-sanitation\n$ poetry install\n$ poetry run\n```\n\nAlternatively, try installing via `setup.py`:\n\n```shell\n$ git clone https://github.com/hackersandslackers/ghost-sql-sanitation.git\n$ cd ghost-sql-sanitation\n$ python3 setup.py run\n```\n\nThe following environment variables are required to run this script:\n\n* `DATABASE_USERNAME`: User with access to your Ghost blog's database.\n* `DATABASE_PASSWORD`: Password for the above user.\n* `DATABASE_HOST`: The host name where your database lives (either a managed DB, or publicly accessible local DB)\n* `DATABASE_NAME`: The name of the database/schema where your Ghost tables live.\n* `DATABASE_PORT`: The port.\n* `DATABASE_CERT` _(optional)_: Path to SSL certificate for protected databases.\n* `DATABASE_PEM` _(optional)_: See above.\n* `DATABASE_KEY` _(optional)_: See above.\n* `SQL_FOLDER`: The local folder (in this repo) where your SQL files live.\n\n\n-----\n\n**Hackers and Slackers** tutorials are free of charge. If you found this tutorial helpful, a [small donation](https://www.buymeacoffee.com/hackersslackers) would be greatly appreciated to keep us in business. All proceeds go towards coffee, and all coffee goes towards more content.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhackersandslackers%2Fghost-sql-sanitation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhackersandslackers%2Fghost-sql-sanitation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhackersandslackers%2Fghost-sql-sanitation/lists"}