{"id":39782469,"url":"https://github.com/comicrelief/serverless-starter-app","last_synced_at":"2026-01-18T12:04:46.835Z","repository":{"id":40269242,"uuid":"107271526","full_name":"comicrelief/serverless-starter-app","owner":"comicrelief","description":"A serverless application to be used as a bootstrap for projects","archived":false,"fork":false,"pushed_at":"2025-07-11T07:06:13.000Z","size":1687,"stargazers_count":6,"open_issues_count":20,"forks_count":1,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-07-11T10:51:00.907Z","etag":null,"topics":["serverless"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/comicrelief.png","metadata":{"files":{"readme":"README.Template.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,"zenodo":null}},"created_at":"2017-10-17T13:21:19.000Z","updated_at":"2025-02-13T17:10:16.000Z","dependencies_parsed_at":"2025-03-14T08:29:55.419Z","dependency_job_id":"802b3d4d-f6fa-4137-a596-639cd829c6d8","html_url":"https://github.com/comicrelief/serverless-starter-app","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/comicrelief/serverless-starter-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/comicrelief%2Fserverless-starter-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/comicrelief%2Fserverless-starter-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/comicrelief%2Fserverless-starter-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/comicrelief%2Fserverless-starter-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/comicrelief","download_url":"https://codeload.github.com/comicrelief/serverless-starter-app/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/comicrelief%2Fserverless-starter-app/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28535358,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T10:13:46.436Z","status":"ssl_error","status_checked_at":"2026-01-18T10:13:11.045Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["serverless"],"created_at":"2026-01-18T12:04:45.958Z","updated_at":"2026-01-18T12:04:46.816Z","avatar_url":"https://github.com/comicrelief.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Project Name [![Build Status](https://github.com/comicrelief/serverless-starter-app/workflows/main/badge.svg?branch=master)](https://github.com/comicrelief/serverless-starter-app/actions/workflows/main.yml?query=branch%3Amaster)\n\nPrompt: _Add project description_\n\n## Local Development\n\n### Getting Started\n\nInstall project dependencies using:\n\n`yarn | npm | other`\n\nYou should install serverless if you haven't already.\n\n```bash\nyarn global add serverless\n```\n\nTo set up your local environment, you'll need to decrypt the environment values in concourse/private.yml. The easiest way to do this is by running git keybase unlock. Then copy .env.example to .env and fill in the blanks as directed in the comments.\n\nOnce you've created your .env file you can simulate Lambda and API Gateway locally using the following command.\n\n```bash\nsls offline start\n```\n\nPrompt: _Does this service need LocalStack for local SQS or other offline services?_\n\n### Testing\n\nUnit tests are run using package scripts e.g. `yarn test:unit` (_or NPM if this repo uses that_) Prompt: _Do they require any special setup?_ _Do they access any external services?_\n\nFeature tests on the other hand require a deployment of this service (or the local simulation) and will make HTTP requests to it. In order to run them, you need to set up your local environment:\n\n- ensure your .env file is set up as described above\n- prompt: _any special requirements - e.g. VPN access to databases?_\n\nYou can then run the feature tests using a package script like `yarn test:feat`.\n\n### Offline Testing\n\nTo run against serverless-offline, which is the recommended way to test, follow these steps:\n\nconfigure STAGING_BASE_URL=http://localhost:3001/ in your .env file\n\nopen a separate terminal and set valid AWS credentials – get them from AWS SSO for the [_AWS Account for this service_] account\n\n```bash\nstart yarn offline --stage staging\n```\n\n## Deployment\n\nDeployments are run automatically by Concourse when new commits are pushed to master. You can check the pipeline status [here](https://ci.services.comicrelief.com/this-service).\n\nThe pipeline config is in the `concourse` directory. Any changes need to be deployed to Concourse manually. Follow these steps:\n\n1. Make your changes in the bootstrap repo, open a pull request and request review.\n\n2. Once approved and **before merging**, apply the changes to Concourse:\n\n    i. Set up the target: e.g. `yarn fly:login` (only needs to be done once)\n\n    ii. Update the pipeline: e.g. `yarn fly:set-pipeline`\n\n3. Check that the changes work as expected. If there are problems, you can push fixes to your PR branch and retry.\n\n4. Merge your PR.\n\nPull requests are tested using Github actions, which will run code style and unit tests against the PR. Github actions are defined in the `.github` folder under `workflows`\n\nPrompt: _Does this service have a trigger for a CI deploy into a PR environment?_\n\n### Environments\n\nPrompt: _What environments does this service use? Production, Staging and Sandbox?_\n\nDomains for this service are:\n\n- [example1](example.example) (Production)\n- [example2](example.example) (Staging)\n- [example3](example.example) (Sandbox)\n\n### Queues\n\nPrompt: _If the service uses queues, describe and address here_\n\n## API Documentation\n\n- API documentation is generated at the same time as deploy, it is generated using [APIDoc](http://apidocjs.com/). It is\n deployed to [this-service-apidocs.s3-website-eu-west-1.amazonaws.com](http://[this-service]-apidocs.s3-website-eu-west-1.amazonaws.com/).\n- [Sample requests](https://www.getpostman.com/collections/709902c58d5c498ab9fc) - to run with [Postman](https://www.getpostman.com/), targetting staging.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcomicrelief%2Fserverless-starter-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcomicrelief%2Fserverless-starter-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcomicrelief%2Fserverless-starter-app/lists"}