{"id":19572694,"url":"https://github.com/kbariotis/go-discover","last_synced_at":"2025-04-27T04:32:27.073Z","repository":{"id":136169019,"uuid":"185472202","full_name":"kbariotis/go-discover","owner":"kbariotis","description":"Discover what your peers are doing in GitHub","archived":false,"fork":false,"pushed_at":"2019-10-31T15:15:59.000Z","size":177,"stargazers_count":7,"open_issues_count":7,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-04-15T02:18:15.335Z","etag":null,"topics":["discoverability","github","github-api","graph","social-network"],"latest_commit_sha":null,"homepage":null,"language":"Go","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/kbariotis.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-05-07T20:18:43.000Z","updated_at":"2024-06-19T07:40:58.948Z","dependencies_parsed_at":null,"dependency_job_id":"881dfc6b-ed06-43c4-b0ca-ecdff4815cff","html_url":"https://github.com/kbariotis/go-discover","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kbariotis%2Fgo-discover","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kbariotis%2Fgo-discover/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kbariotis%2Fgo-discover/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kbariotis%2Fgo-discover/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kbariotis","download_url":"https://codeload.github.com/kbariotis/go-discover/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224059189,"owners_count":17248753,"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","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":["discoverability","github","github-api","graph","social-network"],"created_at":"2024-11-11T06:28:14.256Z","updated_at":"2024-11-11T06:28:15.136Z","avatar_url":"https://github.com/kbariotis.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Discover\n\n\u003e A weekly GitHub newsletter tailored for you. Discover what your peers are doing on GitHub.\n\nDiscover monitors the people you follow on GitHub and sends you a weekly newsletter with their activity. Discover projects your friends are working on, new repositories they recently discovered, and issues or releases you might have missed.\n\nIt consists of three parts.\n\n__Crawler__\n\nThe crawler is the part that monitors GitHub activity. It constantly crawls the activity of the people you follow and feeds our Graph DB. Based on that, then, we are able to export data based on your connections.\n\n__API__\n\nThe API is serving our website.\n\n__Extraction (Better name pending?!)__\n\nExtraction is the part that queries our GraphDB, prepares the email template and sends it out as a weekly newsletter.\n\n## Technologies\n\nThis project is using:\n\n* Written in Go\n* Neo4j for our GraphDB\n* docker/docker-compose\n* PostgreSQL for everything relational\n* Redis for cache\n* Mailgun for emails\n* GitHub duh?\n\n## Usage\n\nConsult the table below and export your preferences as environment variables.\n\n```sh\nexport GITHUB_TOKEN=...\nmake run-crawler\nmake run-extraction\nmake run-api\n```\n\n__Available env vars:__\n\n| Variable | Description | Required | Default |\n| --- | --- | --- | --- |\n| `GITHUB_TOKEN` | GitHub token for the crawler | yes | |\n| `LOG_LEVEL` | Log level: `error`, `info`, `debug`, `trace` | no | `info` |\n| `QUEUE_STORE_DIR` | path for `dqueue` persistence; defaults to `~/go-discover`\n| `SUGGESTION_STORE_TYPE` | | no | sqlite3\n| `SUGGESTION_STORE_DSN` |  | no | ./local/suggestions.db\n| `NEO4J_HOST` | | no | http://localhost:7474/db/data\n| `REDIS_HOST` | | no | localhost:6379\n| `API_BIND_ADDRESS` | | no | 0.0.0.0:8080\n| `GITHUB_CLIENT_SECRET` | GitHub OAuth secret | yes | |\n| `GITHUB_CLIENT_ID` | GitHub OAuth ID | yes | |\n| `GITHUB_CALLBACK_URL` | GitHub OAuth callback URL | no | http://localhost:8080/github/callback |\n| `MAILGUN_DOMAIN` | | yes | |\n| `MAILGUN_APIKEY` | | yes | |\n| `MAIL_SENDER_ADDRESS` | | yes | |\n| `LOCK_USER_DURATION` | | no | 12h |\n| `LOCK_REPOSITORY_DURATION` | | no | 24h | |\n\n## Development\n\n```sh\nmake tools\nmake deps\nmake lint\nmake test\n```\n\n__Available make targets:__\n\n* `make deps` - installs dependencies\n* `make tools` - installs required tools under `./bin`\n* `make lint` - lints package using `./bin/golangci-lint`\n* `make build-api` - builds `cmd/api` as `./bin/api`\n* `make build-crawler` - builds `cmd/crawler` as `./bin/crawler`\n* `make build-extraction` - builds `cmd/extraction` as `./bin/extraction`\n* `make run-api` - builds and runs `cmd/api`\n* `make run-crawler` - builds and runs `cmd/crawler`\n* `make run-extraction` - builds and runs `cmd/extraction`\n* `make test` - tests package\n* `make clean` - removes temp files\n\n\n## Contribute\n\nWant to contribute to this project?\n\nWe absolutely welcome contributions to this project. Take a look at our open [issues](https://github.com/kbariotis/go-discover/issues) and submit a PR if you see one you can help with.\n\nFeel free to get in touch with us to discuss more about this project and how you can get involved. We love hearing from people!\n\n## Creators\n\n| Name | Twitter |\n| --- | --- |\n| Kostas Bariotis | [@kbariotis](https://twitter.com/kbariotis) |\n| George Antoniadis | [@geoah](https://twitter.com/geoah) |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkbariotis%2Fgo-discover","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkbariotis%2Fgo-discover","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkbariotis%2Fgo-discover/lists"}