{"id":15421076,"url":"https://github.com/cjsheets/gatsby-netlify-ci","last_synced_at":"2026-04-19T04:32:52.809Z","repository":{"id":46984620,"uuid":"405720125","full_name":"cjsheets/gatsby-netlify-ci","owner":"cjsheets","description":"Continuous Integration using Github Actions and Netlify","archived":false,"fork":false,"pushed_at":"2021-09-19T00:52:08.000Z","size":497,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T04:24:09.057Z","etag":null,"topics":["gatsby","netlify","playwright"],"latest_commit_sha":null,"homepage":"https://gatsby-netlify-ci.netlify.app","language":"JavaScript","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/cjsheets.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":"2021-09-12T18:20:10.000Z","updated_at":"2021-09-19T00:52:10.000Z","dependencies_parsed_at":"2022-09-22T21:50:29.746Z","dependency_job_id":null,"html_url":"https://github.com/cjsheets/gatsby-netlify-ci","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cjsheets/gatsby-netlify-ci","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cjsheets%2Fgatsby-netlify-ci","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cjsheets%2Fgatsby-netlify-ci/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cjsheets%2Fgatsby-netlify-ci/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cjsheets%2Fgatsby-netlify-ci/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cjsheets","download_url":"https://codeload.github.com/cjsheets/gatsby-netlify-ci/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cjsheets%2Fgatsby-netlify-ci/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31994991,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"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":["gatsby","netlify","playwright"],"created_at":"2024-10-01T17:33:06.093Z","updated_at":"2026-04-19T04:32:52.790Z","avatar_url":"https://github.com/cjsheets.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🤖 Continuous Integration Prototype\n\n![example workflow](https://github.com/cjsheets/gatsby-netlify-ci/actions/workflows/on-pull-request.yml/badge.svg)\n\n![Netlify Status](https://img.shields.io/netlify/f9a9caf9-fae4-4d71-80be-87563c371d04)\n![Uptime Robot status](https://img.shields.io/uptimerobot/status/m789227343-2d706ab9076fd7bf0341772f.svg)\n![Uptime Robot ratio](https://img.shields.io/uptimerobot/ratio/m789227343-2d706ab9076fd7bf0341772f.svg)\n\n---\n\nBarebones prototype of CI patterns using Gatsby, Github Actions and Netlify.\n\n## Overview\n\nApp features and descriptions include:\n\n1. [Branch Protection](https://gatsby-netlify-ci.netlify.app/branch-protection)\n1. [Linting](https://gatsby-netlify-ci.netlify.app/linting)\\*\n1. [Unit Testing](https://gatsby-netlify-ci.netlify.app/unit-testing)\n1. [Acceptance Testing](https://gatsby-netlify-ci.netlify.app/acceptance-testing)\n1. [Automated Deployments](https://gatsby-netlify-ci.netlify.app/automated-deployments)\n1. [Monitoring](https://gatsby-netlify-ci.netlify.app/branch-monitoring)\n\n\\* I'd usually include type-checking, but this repo is in javascript for simplicity.\n\n## Setting Up Gatsby\n\nGatsby configuration as simple as possible to keep the project focused on CI.\n\nI chose to include prettier and styled-components but not typescript to reduce boilerplate.\n\n1. Follow the Gatsby [quick start guide](https://www.gatsbyjs.com/docs/quick-start/).\n1. Setup [eslint and (optionally) prettier](https://www.gatsbyjs.com/plugins/gatsby-plugin-prettier-eslint/).\n1. Configure gatsby-config.js and gatsby-node.js\n\n## Notable dependencies\n\n- [GitHub Actions](https://github.com/features/actions) for CI\n- [Jest](https://jestjs.io/) for unit testing\n  - [Enzyme](https://enzymejs.github.io/enzyme/) for testing react components\n- [Playwright](https://playwright.dev/) for browser testing\n- [UptimeRobot](https://uptimerobot.com/) for uptime monitoring\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcjsheets%2Fgatsby-netlify-ci","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcjsheets%2Fgatsby-netlify-ci","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcjsheets%2Fgatsby-netlify-ci/lists"}