{"id":19081586,"url":"https://github.com/lc-soft/gitdigger","last_synced_at":"2025-08-04T12:08:30.521Z","repository":{"id":147032872,"uuid":"99578274","full_name":"lc-soft/GitDigger","owner":"lc-soft","description":"The community for open source project. It provides new ways to help developers discover and contributing to open source projects.","archived":false,"fork":false,"pushed_at":"2020-05-01T12:53:09.000Z","size":349,"stargazers_count":16,"open_issues_count":6,"forks_count":7,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-30T07:48:50.858Z","etag":null,"topics":["bootstrap","flask","flask-sqlalchemy","jquery","postgresql","redis","webpack","website"],"latest_commit_sha":null,"homepage":"https://gitdigger.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lc-soft.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,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2017-08-07T12:57:58.000Z","updated_at":"2023-02-04T01:10:12.000Z","dependencies_parsed_at":"2024-02-01T17:48:06.370Z","dependency_job_id":null,"html_url":"https://github.com/lc-soft/GitDigger","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/lc-soft/GitDigger","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lc-soft%2FGitDigger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lc-soft%2FGitDigger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lc-soft%2FGitDigger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lc-soft%2FGitDigger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lc-soft","download_url":"https://codeload.github.com/lc-soft/GitDigger/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lc-soft%2FGitDigger/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268694148,"owners_count":24291742,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-04T02:00:09.867Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["bootstrap","flask","flask-sqlalchemy","jquery","postgresql","redis","webpack","website"],"created_at":"2024-11-09T02:37:22.677Z","updated_at":"2025-08-04T12:08:30.490Z","avatar_url":"https://github.com/lc-soft.png","language":"Python","readme":"# GitDigger\n\n## 简述\n\n一个为开源项目而生的社区，用于帮助开发者发现感兴趣的开源项目以及相关的新鲜事，让他们能够方便的了解到各个开源项目都有哪些需要解决的问题、有哪些问题是自己能够提供帮助的，以此为开源项目吸引更多的贡献者。\n\n目前还处于开发阶段，很多功能未完成，如果你是经验丰富的 Python 开发者，可以向此项目提供技术支持，包括但不仅限于：数据库表结构设计、性能优化、代码规范、模块规划、国际化。\n\n## 需求及目标\n\n作为普通开发者，平常无聊的时候会想看看其他人在干什么，长长见识，比如写了什么代码、都在讨论什么问题（Issue）、有哪些有意思的问题和问题评论、哪些项目发布了新版本等等。对于在某些领域有丰富经验的人，可能还会想知道哪些项目正遇到自己擅长领域的问题，看看自己能不能帮上忙。像 GitHub 等代码托管平台主要专注于源代码托管，为开源项目提供的推广手段很少，普通用户想发现感兴趣的项目和开发者会比较麻烦；而开源资讯类网站的内容时效性又很强，同一时间断内更新的资讯过多的话会变得混杂，普通项目的更新资讯容易被埋没。\n\n作为开源项目作者或维护者，一个人的时间和精力都是有限的，有时会被一些琐碎的问题浪费很多时间，例如：解决各种小 bug，添加各种小功能。同类型的问题处理多了会很感到枯燥，但又不得不去做，做多了又会耽误主线任务开发进度，还会浪费动力。当遇到一些大点问题时，会希望有人能给予技术支持，例如：\n\n- 这块代码是否有更好的实现\n- 要实现这种功能，有哪些可参考的资料\n- 如何调整数据结构和算法以提升性能\n- 如何更好的重构代码\n- 如何正确命名标识符\n- 如何设计目录结构\n- 如何让代码更简单易读\n- 有哪些需要注意的坑\n- 怎样写好 README.md\n\n自己搜索相关资料比较费时，可能会找不到答案，而去某些问答网站提问的话，需要写详尽的描述，还可能需要提供最小示例，比较麻烦也费时间，还很有可能得不到答案。这只是开发方面，对于普通开发者，不管项目的代码更新得有多频繁，也不会有人知道这个项目，除非主动去推广，通常的推广手段是在各大平台发布版本更新资讯，但持续时间有限，过了一两周又会回到无人问津的状态。\n\n要解决上述问题，需要有个平台能够：\n\n- 挖掘开源项目的各种信息，包括：问题（Issues）、拉取请求（Pull Requests）、评论、发行版新闻（Releases），供用户浏览。\n- 展示开源项目及相关的动态，让用户能够方便的找到近期活跃的项目，也能够从最近动态中了解到大家都在干什么。\n- 支持让开源项目作者将一些问题（Issue）标记为“需要帮助”来获得更多的曝光，吸引更多有经验的人来向作者提供帮助。\n\n## 技术栈\n\n- 服务端\n  - 服务器：[Nginx](http://nginx.org/)\n  - 编程语言：[Python](https://www.python.org/)\n  - Web 框架：[Flask](http://flask.pocoo.org/)\n  - 数据库：[PostgreSQL](https://www.postgresql.org/)、[Redis](https://redis.io/)\n  - 任务队列：[Celery](http://www.celeryproject.org/)\n- 前端\n  - 库：[jQuery](http://jquery.com/)\n  - UI 组件库：[Bootstrap](http://getbootstrap.com/)\n  - CSS 预编译器：[Sass](http://sass-lang.com/)\n  - 构建工具：[Webpack](http://webpack.github.io/)\n  - 特性：响应式布局\n\n为减少项目的开发时间和复杂度，网站页面以服务端渲染为主，即便作者是个 Web 前端程序员也不打算浪费时间去折腾前后端分离、单页应用等技术，除非有人能长期负责全职开发此项目的后端。\n\n## 相关网站\n\n- [CodeTriage](https://www.codetriage.com/) - Free community tools for contributing to Open Source projects\n\n## 安装与配置\n\n### 依赖\n\nGitDigger 依赖于以下软件：\n\n- [Flask](https://github.com/pallets/flask) - a microframework for Python.\n- [Flask-Script](https://github.com/smurfix/flask-script) - Flask extension to help writing external scripts for Flask applications.\n- [Flask-SQLAlchemy](https://github.com/mitsuhiko/flask-sqlalchemy) - Adds SQLAlchemy support to Flask.\n- [Flask-Migrate](https://github.com/miguelgrinberg/Flask-Migrate) - SQLAlchemy database migrations for Flask applications using Alembic\n- [Flask-Login](https://github.com/maxcountryman/flask-login) - Flask user session management. \n- [Flask-Paginate](https://github.com/lixxu/flask-paginate) - Pagination support for flask. \n- [Flask-WTF](https://github.com/lepture/flask-wtf) - Simple integration of Flask and WTForms, including CSRF, file upload and Recaptcha integration.\n- [GitHub-Flask](https://github.com/cenkalti/github-flask) - Flask extension for authenticating users with GitHub and making requests to the API. \n- [GitHub-Webhook](https://github.com/bloomberg/python-github-webhook) - A framework for writing webhooks for GitHub, in Python.\n- [Psycopg2](https://github.com/psycopg/psycopg2) - PostgreSQL database adapter for the Python programming language.\n- [PostgreSQL](https://www.postgresql.org/download/) - The world's most advanced open source database.\n- [NodeJS](https://nodejs.org/) - a JavaScript runtime built on Chrome's V8 JavaScript engine.\n- [Redis](https://github.com/antirez/redis) - a in-memory database that persists on disk.\n- [Celery](https://github.com/celery/celery) - a asynchronous task queue/job queue based on distributed message passing.\n\nLinux 用户可以直接运行 setup.sh 脚本安装这些依赖：\n\n    sh ./setup.sh\n\n### 配置\n\nconfig 目录下存放着配置文件，其中以下文件需要你按照实际情况来配置：\n\n- github.py - GitHub 应用信息配置\n- database.py - 数据库配置\n\n具体示例可参考与它们名称对应的 .example 文件，建议直接复制它们并去掉 .example 后缀名。\n\n### 服务器\n\n如需将此网站部署到线上生产环境中，则需要以下步骤。\n\n修改 `config/nginx/sites-avaliable/gitdigger.com.conf` 文件，将里面的路径改成你的实际路径。之后，复制 `config/nginx` 目录到 nginx 的配置目录：\n\n    cp -r config/nginx/* /etc/nginx\n\n为配置文件建立软连接，以启用该配置文件：\n\n    ln -s /etc/nginx/sites-available/gitdigger.com.conf /etc/nginx/sites-enabled/gitdigger.com.conf\n\n修改 `config/uwsgi.ini`，将里面的路径改成你的实际路径。之后启动 uwsgi 服务：\n\n    uwsgi --ini config/uwsgi.ini\n\n### 数据库\n\n以 PostgreSQL 为例，先创建 gitdigger 用户：\n\n    sudo -u postgres createuser gitdigger -P\n\n之后为 gitdigger 用户创建 gitdigger_development 数据库：\n\n    sudo -u postgres createdb -O gitdigger gitdigger_development\n\n创建数据库迁移文件，然后升级数据库：\n\n    pipenv run python manage.py db migrate\n    pipenv run python manage.py db upgrade\n\n### 任务队列\n\n    celery worker -A app.worker -l info\n    celery beat -A app.worker\n\n## 资源\n\n安装 NodeJS 依赖包：\n\n    npm install\n\n构建 CSS、JavaScript 等相关资源文件：\n\n    npm run build\n\n## 启动\n\n先确保 PostgreSQL 和 Redis 服务器已经启动，然后使用以下命令运行网站主程序：\n\n    pipenv run python main.py\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flc-soft%2Fgitdigger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flc-soft%2Fgitdigger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flc-soft%2Fgitdigger/lists"}