{"id":20840067,"url":"https://github.com/ackama/projectworks-leave-notifications","last_synced_at":"2025-03-12T10:11:50.222Z","repository":{"id":45155455,"uuid":"309848219","full_name":"ackama/projectworks-leave-notifications","owner":"ackama","description":"Serverless functions that post a daily and weekly summaries of useful information into Slack","archived":false,"fork":false,"pushed_at":"2024-03-17T18:16:04.000Z","size":1469,"stargazers_count":3,"open_issues_count":3,"forks_count":0,"subscribers_count":11,"default_branch":"main","last_synced_at":"2024-03-17T19:29:16.388Z","etag":null,"topics":["ackama","javascript","projectworks","serverless","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/ackama.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2020-11-04T01:17:39.000Z","updated_at":"2024-03-17T19:29:19.104Z","dependencies_parsed_at":"2023-02-15T05:45:44.835Z","dependency_job_id":"53aee43d-693f-4ff8-9bd9-a7c882c50f5f","html_url":"https://github.com/ackama/projectworks-leave-notifications","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/ackama%2Fprojectworks-leave-notifications","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ackama%2Fprojectworks-leave-notifications/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ackama%2Fprojectworks-leave-notifications/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ackama%2Fprojectworks-leave-notifications/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ackama","download_url":"https://codeload.github.com/ackama/projectworks-leave-notifications/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243196664,"owners_count":20251861,"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":["ackama","javascript","projectworks","serverless","typescript"],"created_at":"2024-11-18T01:15:10.070Z","updated_at":"2025-03-12T10:11:50.189Z","avatar_url":"https://github.com/ackama.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# projectworks leave notifications\n\nServerless functions that post a daily and weekly summaries of useful\ninformation into Slack.\n\nFeatures:\n\n- Collects and collates approved [ProjectWorks](https://projectworks.io/) .leave\n  requests for each day and week (separate lambda functions), decorates the\n  leave request with user information from the ProjectWorks Users API and posts\n  the data as a Slack message.\n- Scrapes public holiday data from AU \u0026 NZ and posts reminders about upcoming\n  public holidays to Slack\n- Posts reminders about DST changes between New Zealand and Australia\n  (specifically AEST which covers Melbourne and Sydney)\n\nThe tasks are scheduled with cron expressions that you can adjust within\nserverless.yml.\n\n### Getting started\n\n```bash\n# Set up AWS credentials\n# ######################\n\n# You need to set up credentials for the AWS account you want to deploy this to.\n# There are many ways to do this - see\n# https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html\n\n# Set up secrets\n# ##############\ncp .env.staging.example .env.staging\ncp .env.prod.example .env.production\n# now edit the files to have the appropriate secret values\n\n# Install packages\n# ################\nnpm install\n\n# Linting \u0026 Tests\n# ###############\n\nnpm run format # check formatting with prettier\nnpm run format:fix # fix formatting with prettier\n\nnpm run lint # TS linting with eslint\nnpm run lint:fix # fix TS linting with eslint\n\nnpm test # run tests with Jest\n\n# Debugging\n# #########\n\n# Serverless framework has features to help with debugging. For example you can\n# run local code in staging env (see serverless docs for details)\nserverless invoke local --function weeklyReport -s staging\nserverless invoke local --function dailyReport -s staging\n\n# Deployment\n# ##########\n\n# You need to have appropriate `.env.staging` and `.env.prod` files and AWS\n# credentials to do deployments.\nnpm run deploy:staging\nnpm run deploy:production\n```\n\n### Configuration\n\nEnvironment variables of note:\n\n- `TZ` - configures the timezone. This is necessary for dates and times to be\n  shown correctly. Example: `Pacific/Auckland`\n- `PROJECTWORKS_USERNAME` - the basic auth username for accessing the\n  ProjectWorks API. This is _not_ your personal Projectworks account username.\n- `PROJECTWORKS_PASSWORD` - the basic auth password for accessing the\n  ProjectWorks API. This is _also_ not your personal Projectworks account\n  password.\n- `SLACK_WEBHOOK_URL` - the webhook URL to post messages to. Must be configured\n  to run, even locally.\n\n### Contributing\n\nContributions are welcome. Please see the\n[contribution guidelines](https://github.com/ackama/projectworks-leave-notifications/blob/main/CONTRIBUTING.md)\nfor detailed instructions.\n\n## About Ackama\n\nThese functions are created and maintained by\n[Ackama Group](https://www.ackama.com) using our investment time scheme. We are\npassionate about using and contributing back to the open source community, and\nare available for hire.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fackama%2Fprojectworks-leave-notifications","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fackama%2Fprojectworks-leave-notifications","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fackama%2Fprojectworks-leave-notifications/lists"}