{"id":19049419,"url":"https://github.com/jhvhs/standup-pivots","last_synced_at":"2025-11-12T03:02:22.098Z","repository":{"id":41948214,"uuid":"117287285","full_name":"jhvhs/standup-pivots","owner":"jhvhs","description":"A simple web app to manage standup masters","archived":false,"fork":false,"pushed_at":"2023-10-24T01:47:10.000Z","size":5460,"stargazers_count":0,"open_issues_count":1,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-02-22T00:17:18.015Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jhvhs.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":"2018-01-12T20:57:26.000Z","updated_at":"2022-07-21T14:47:23.000Z","dependencies_parsed_at":"2022-08-12T00:20:27.196Z","dependency_job_id":null,"html_url":"https://github.com/jhvhs/standup-pivots","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/jhvhs/standup-pivots","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhvhs%2Fstandup-pivots","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhvhs%2Fstandup-pivots/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhvhs%2Fstandup-pivots/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhvhs%2Fstandup-pivots/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jhvhs","download_url":"https://codeload.github.com/jhvhs/standup-pivots/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jhvhs%2Fstandup-pivots/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":283966764,"owners_count":26924587,"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-11-12T02:00:06.336Z","response_time":59,"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":[],"created_at":"2024-11-08T23:10:50.330Z","updated_at":"2025-11-12T03:02:22.082Z","avatar_url":"https://github.com/jhvhs.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Standup pivots\n\nThis is an app for managing Pivotal standup hosts. The main assumption is\nthat the hosts are rotating on a weekly basis.\n\nThis app can be used as an example of how to run a [Django](https://www.djangoproject.com/) \napp on Pivotal Cloud Foundry.\n\n## Deploying for the first time\n\n1. The app is configured to use a postgres database by default. When using a\ndifferent database, change the `requirements.txt` to include the necessary drivers.\nAside from that, binding the database service instance to the app should work\nout of the box.\n\n1. It is necessary to set the `APP_SECRET_KEY` environment variable to a random hex string.\n\n1. When deploying the app for the first time, the database migrations should be applied.\nSee https://banck.net/2014/12/deploying-a-django-application-to-cloud-foundry/ for an example of\nrunning a database migration on Cloud Foundry, followed by creating an admin user for the admin UI.\n\n1. Once the app is up and running, go to the admin UI located at `\u003cyour-app-url\u003e/admin`, and\nuse the credentials from the previous step. First, fill in the pivots. The most tricky bit is the\nslack handle a.k.a Slack member ID. It can either be located by viewing the person's profile in\nslack and clicking a button with a V-shaped down arrow, or retrieved via the \n[users.lookupByEmail](https://api.slack.com/methods/users.lookupByEmail) or\n[users.list](https://api.slack.com/methods/users.list) Slack API methods.\n\n1. _(Optional)_ If you want to manually set the standup schedules, fill them as well in the admin UI.\nOtherwise, they will be automatically set when accessing the public endpoints.\n\n## Public endpoints\n\nThe app has two public endpoints:\n\n- `/` displays a human-readable schedule with the standup pair for the current and the next week.\n- `/slack_notification/` provides a short message that can be posted using an [incoming web-hook\nintegration](https://api.slack.com/incoming-webhooks) for Slack, e.g. a concourse resource (see below). \n\n## Notifying the hosts\n\nIt's easy to make slack notifications a few days ahead of the week with a concourse pipeline.\nFor an example, take a look at `notification-pipeline.yml`. In order to use the pipeline,\nyou will need a slack incoming webhook integration for the channel, and a URL to the root of the\ndeployed application. With these, you can set a concourse pipeline:\n\n```bash\n$ fly -t wings set-pipeline -p standup-notification -c notification-pipeline.yml \\\n  -v slack-notification-url=https://hooks.slack.com/services/FOO/BAR/baz \\\n  -v standup-app-url=https://my-standup.cf-app.com\n```\n\nBy default, the pipeline triggers once every Thursday afternoon, but that can be easily\nchanged by editing the `notification-pipeline.yml`.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjhvhs%2Fstandup-pivots","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjhvhs%2Fstandup-pivots","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjhvhs%2Fstandup-pivots/lists"}