{"id":19163406,"url":"https://github.com/maemreyo/dev-works-logger","last_synced_at":"2026-04-09T07:03:02.510Z","repository":{"id":62616415,"uuid":"560665140","full_name":"maemreyo/dev-works-logger","owner":"maemreyo","description":"Collect data from GraphQL Github and forward to platforms","archived":false,"fork":false,"pushed_at":"2022-11-08T23:36:48.000Z","size":82,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-03T21:43:48.682Z","etag":null,"topics":["bot","cli-app","cronjob-scheduler","discord-bot","discord-hooks","docker","email","git-hooks","github-hooks","graphql-client","grapql","rust","twitter-api","webhooks"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maemreyo.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-11-02T01:42:38.000Z","updated_at":"2024-07-09T19:12:51.000Z","dependencies_parsed_at":"2023-01-22T05:18:17.699Z","dependency_job_id":null,"html_url":"https://github.com/maemreyo/dev-works-logger","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":"maemreyo/rust-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maemreyo%2Fdev-works-logger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maemreyo%2Fdev-works-logger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maemreyo%2Fdev-works-logger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maemreyo%2Fdev-works-logger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maemreyo","download_url":"https://codeload.github.com/maemreyo/dev-works-logger/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240245887,"owners_count":19771029,"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":["bot","cli-app","cronjob-scheduler","discord-bot","discord-hooks","docker","email","git-hooks","github-hooks","graphql-client","grapql","rust","twitter-api","webhooks"],"created_at":"2024-11-09T09:15:10.456Z","updated_at":"2025-12-30T22:16:02.715Z","avatar_url":"https://github.com/maemreyo.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dev-works-logger\n[![CI](https://github.com/maemreyo/dev-works-logger/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/maemreyo/dev-works-logger/actions/workflows/ci.yml)\n[![Rust](https://github.com/maemreyo/dev-works-logger/actions/workflows/rust.yml/badge.svg)](https://github.com/maemreyo/dev-works-logger/actions/workflows/rust.yml)\nBuild a bot to collect data from Git\n\n## What are we trying to build?\n- A Bot (not for *Discord*)\n- It will run every week/month\n- It will check all the repositories for the organization (with *Github GraphQL*) for the most amount of PR for a single contributor\n- Create an image for that person and it will post it to Twitter and Discord\n- Create a docker\n## `.env` params you must have\n- GITHUB_ORG_NAME\n- GITHUB_TOKEN\n- TWITTER_TOKEN\n- DISCORD_HOOK\n\n## Image to post\nShould follow:\n- A picture of the organization owning the repo\n- A text with the name of the organization on the picture\n- A Picture of the contributor\n- A text about the contributor achievement (in the picture)\n- A text about the contributor (in the tweet)\n- As much as information as possible on the contributor\n- Awesome design gets extra points\n  \n*Bonuses*\n- Add more things like most amount of issues, most amount of reviews and so on.\n---\n## What did I do?\n### Utils\n- [x] Write docs\n  - [ ] How to run?\n  - [ ] How to contribute?\n  - [ ] Write the Makefile?\n    - [ ] Welcome new comers\n    - [ ] Set Git hooks dir\n    - [ ] Install cocogitto tools for standardizing commits\n- [x] Write REQUIREMENTS\n- [x] Change the project name \n  - [x] From `git-stats-bot` to `dev-works-logger`\n- [x] Refactor folder structure\n  - [x] +-- main.rs\n  - [x] +-- modules\n  - [x] +---- git\n  - [x] +------ mod.rs\n  - [x] +------ models\n  - [x] +-------- mod.rs\n  - [x] +-------- module1.rs\n  - [x] +-------- module2.rs\n  - [x] +---- discord\n  - [x] +------ mod.rs\n  - [x] +------ models\n  - [x] +-------- mod.rs\n  - [x] +-------- module1.rs\n  - [x] +-------- module2.rs\n  - [x] +-- utils\n  - [x] +---- init\n  - [x] +------ mod.rs\n### Developments\n- [x] Manage env variables with `dotenv`\n- [x] Fetch data from GraphQL Github with gql_client\n- [x] Research GraphQL \n  - [x] Get all recent commits of a repo\n  - [x] Get all recent active repos\n- [ ] Refactor: instead of using gql_client, I plan to change it to reqwest with json body\n  - [ ] Create my own request client\n- [x] Research about Git hooks\n- [ ] Twitter API\n  - [x] Auth\n  - [x] Create a tweet\n  - [ ] Determine a template for tweet\n    - [x] Title (depends on the number of CHANGED FILE to generate)\n    - [x] Body\n      - [x] Total commits in the day, total changed files\n    - [x] Tags\n    - [ ] Create a function to check the tweet's length before tweeting\n  - [ ] Send an email related to the tweet's status (false/true)\n- [ ] Discord\n  - [x] Enable Github Webhook for Discord\n  - [ ] Discord Bot\n- [x] Research CI/CD on Github Action\n  - [x] Add script to check Rust before merging PRs\n  - [x] Add script to deploy Docker Image to Heroku\n  - [x] Improve Deploy script\n    - [x] Divide the whole script into pieces\n    - [x] Remove some parts being not used\n  - [x] ***Disable CI for now, I plan to do drive the project with another direction.***\n- [x] Cronjob\n  - [x] Cronjob\n- [x] Docker\n  - [x] Build Docker Image\n  - [ ] Research `docker-compose`\n    - [ ] Build a docker image to develop locally\n  - [x] Improve Docker Image\n    - [x] Create a minimal docker image\n    - [x] Cron job\n    - [x] ENV variables not found\n      - [x] Find a way to get a github name, token on CI\n      - [x] Pass env variables when building docker image on CI\n- [x] Deploy to Heroku\n- [x] Plan to deploy to another server (Heroku is not free from ***28/11***)\n    - [x] Docker (Auto build: 5$ per month)\n    - [x] GCS\n    - [x] ***Localhost is the best choice for now, until I can find the alt.***\n- [ ] Send Email SMTP\n  - [ ] Investigate\n- [ ] Implement CLI to trigger some features\n  - [ ] Overall configurations\n    - [ ] Github\n      - [ ] PAC\n      - [ ] Username\n    - [ ] \n  - [ ] Twitter commands\n    - [ ] Config Twitter credentials\n    - [ ] Switch ON/OFF feature\n  - [ ] Email commands\n    - [ ] Config Gmail credentials\n      - [ ] `username`, `password`\n    - [ ] Switch ON/OFF feature\n  - [ ] Discord commands\n    - [ ] Config Discord credentials\n    - [ ] Switch ON/OFF feature\n- [ ] Add scripts to cut down the time to deal with some dev parts\n  - [x] Docker\n    - [x] Build image\n    - [x] Run image\n    - [x] Exec image\n    - [ ] Push image to Docker Hub\n  - [ ] Release\n    - [ ] Changelog generator\n  - [x] Development\n    - [x] Run debug\n- [ ] Actix web impl (In a long-term)\n  - [ ] Restructure folder\n    - [ ] Monorepo\n    - [ ] `docker-compose` for building all services\n- [ ] Database impl (MongoDB) (In a long-term)\n## How to run this project?\n\n### Install\n- Run `Makefile` with `make -f Makefile`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaemreyo%2Fdev-works-logger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaemreyo%2Fdev-works-logger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaemreyo%2Fdev-works-logger/lists"}