{"id":29829049,"url":"https://github.com/dpca/slack-fooda-bot","last_synced_at":"2026-03-02T03:32:15.640Z","repository":{"id":12364696,"uuid":"71708540","full_name":"dpca/slack-fooda-bot","owner":"dpca","description":"Slack bot that looks up and remembers popups from Fooda","archived":false,"fork":false,"pushed_at":"2023-01-20T14:03:28.000Z","size":84,"stargazers_count":3,"open_issues_count":6,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-29T08:41:05.533Z","etag":null,"topics":["fooda","slack"],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/dpca.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":"2016-10-23T14:36:04.000Z","updated_at":"2020-11-05T21:58:24.000Z","dependencies_parsed_at":"2023-02-12T02:30:33.181Z","dependency_job_id":null,"html_url":"https://github.com/dpca/slack-fooda-bot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dpca/slack-fooda-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpca%2Fslack-fooda-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpca%2Fslack-fooda-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpca%2Fslack-fooda-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpca%2Fslack-fooda-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dpca","download_url":"https://codeload.github.com/dpca/slack-fooda-bot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpca%2Fslack-fooda-bot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29991763,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-02T01:47:34.672Z","status":"online","status_checked_at":"2026-03-02T02:00:07.342Z","response_time":60,"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":["fooda","slack"],"created_at":"2025-07-29T08:15:08.164Z","updated_at":"2026-03-02T03:32:15.623Z","avatar_url":"https://github.com/dpca.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.org/dpca/slack-fooda-bot.svg?branch=master)](https://travis-ci.org/dpca/slack-fooda-bot)\n[![Code Climate](https://codeclimate.com/github/dpca/slack-fooda-bot/badges/gpa.svg)](https://codeclimate.com/github/dpca/slack-fooda-bot)\n[![Coverage Status](https://coveralls.io/repos/github/dpca/slack-fooda-bot/badge.svg?branch=master)](https://coveralls.io/github/dpca/slack-fooda-bot?branch=master)\n\n* * *\n\n# fooda-bot\n\n![Lunch bot](/images/lunchbot.png)\n\nSlack bot that looks up current events from [Fooda](https://www.fooda.com/) and\nremembers reactions for when they come around again. Lets everyone in a\nchannel, such as \"#lunch\", know both the restaurant popup for the day and the\nreactions that were used when it last came around.\n\nAlso supports [Peach](https://www.peachd.com/).\n\n## Setup\n\nSet the following in `.env`:\n\n* `SLACK_API_TOKEN` - Slack token (see below)\n* `SLACK_CHANNEL` - channel to post in\n* `SLACK_USERNAME` - bot name\n* `SLACK_ICON_EMOJI` - bot icon\n* `FOODA_URL` - fooda url for your popup space, e.g. \"fooda.com/idb\". For\n  multiple fooda locations, provide a comma-separated list like\n  \"fooda.com/company1, fooda.com/company2\"\n* `PEACH_HOME_LOCATION_ID` - Peach API location ID, can be found by looking at\n  network requests to `/api/locations/LOCATION_ID` when loading the peach site\n* `PEACH_REFERRAL_CODE` - Peach referral code for rewards\n\nFooda-bot uses [Redis](http://redis.io/) to remember its message history and\nlook up the last restaurant reactions. If running with docker, this is taken\ncare of, otherwise ensure that redis is either running locally or set\n`REDIS_URL` in your `.env` or environment to point it to a redis instance. All\nfields that fooda-bot sets in redis are prefixed with \"fooda-bot:\".\n\nYou can request a token for testing purposes from\nhttps://api.slack.com/docs/oauth-test-tokens but should use a bot token from\nhttps://my.slack.com/services/new/bot for a real deployment. Read more about\nbot users here: https://api.slack.com/bot-users.\n\n## Run with Docker\n\n```\ndocker-compose up\n```\n\n## Run locally\n\n`bundle install` first.\n\nUse `bin/run.rb` to look up and post about the day's fooda event in the\nmorning, and `bin/ask_for_ratings.rb` to ask for reactions in the afternoon.\nThese two actions are separate to increase likelihood that users remember to\nleave an emoji rating - they don't have to go back to the morning's message\nafter they've eaten lunch.\n\nTo run on a schedule, use cron. For example, `0 11 * * 1-5 bin/run.rb` to run\nat 11 AM on weekdays and `0 14 * * 1-5 bin/ask_for_ratings.rb` to ask for\nratings at 2 PM.\n\n## Test\n\n```\nbundle exec rspec spec\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdpca%2Fslack-fooda-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdpca%2Fslack-fooda-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdpca%2Fslack-fooda-bot/lists"}