diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 000000000..2a9eb71da
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,9 @@
+# Markdown
+*.md linguist-detectable=true
+*.md linguist-documentation=false
+
+# JSON
+*.json linguist-detectable=true
+
+# YAML
+*.yml linguist-detectable=true
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 000000000..651c5a1c7
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,40 @@
+---
+name: Bug report
+about: Create a report to help us improve
+title: ''
+labels: 'bug'
+assignees: 'AnandChowdhary'
+
+---
+
+
+
+**Describe the bug**
+A clear and concise description of what the bug is.
+
+**To Reproduce**
+Steps to reproduce the behavior:
+1. Go to '...'
+2. Click on '....'
+3. Scroll down to '....'
+4. See error
+
+**Expected behavior**
+A clear and concise description of what you expected to happen.
+
+**Screenshots**
+If applicable, add screenshots to help explain your problem.
+
+**Desktop (please complete the following information):**
+ - OS: [e.g. iOS]
+ - Browser [e.g. chrome, safari]
+ - Version [e.g. 22]
+
+**Smartphone (please complete the following information):**
+ - Device: [e.g. iPhone6]
+ - OS: [e.g. iOS8.1]
+ - Browser [e.g. stock browser, safari]
+ - Version [e.g. 22]
+
+**Additional context**
+Add any other context about the problem here.
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 000000000..a07d0253b
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1,8 @@
+blank_issues_enabled: true
+contact_links:
+ - name: Feature requests and ideas
+ url: https://github.com/orgs/upptime/discussions/new?category=ideas
+ about: Suggest an idea for this project
+ - name: Questions
+ url: https://github.com/orgs/upptime/discussions/new?category=q-a
+ about: Please ask and answer questions here
diff --git a/.github/ISSUE_TEMPLATE/maintainance-event.md b/.github/ISSUE_TEMPLATE/maintainance-event.md
new file mode 100644
index 000000000..7abcd2532
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/maintainance-event.md
@@ -0,0 +1,17 @@
+---
+name: Maintenance Event
+about: Schedule a work window
+title: "[Scheduled Maintenance] Site down for Maintenance"
+labels: maintenance
+assignees: ''
+
+---
+
+
+
+**Additional context**
+Who/what/when/where/why is this maintenance happening
diff --git a/.github/workflows/graphs.yml b/.github/workflows/graphs.yml
new file mode 100644
index 000000000..018b3d373
--- /dev/null
+++ b/.github/workflows/graphs.yml
@@ -0,0 +1,39 @@
+#
+# ===============================
+# Do not edit this file directly!
+# ===============================
+#
+# Your changes will be overwritten when the Upptime template updates (by default, weekly)
+# Instead, change .upptimerc.yml configuration and the workflows will be generated accordingly.
+#
+# 🔼 Upptime @v1.38.0
+# GitHub-powered open-source uptime monitor and status page by Anand Chowdhary
+
+# * Source: https://github.com/upptime/upptime
+# * Docs and more: https://upptime.js.org
+# * More by Anand Chowdhary: https://anandchowdhary.com
+
+
+name: Graphs CI
+on:
+ schedule:
+ - cron: "0 0 * * *"
+ repository_dispatch:
+ types: [graphs]
+ workflow_dispatch:
+jobs:
+ release:
+ name: Generate graphs
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ ref: ${{ github.head_ref }}
+ token: ${{ secrets.GH_PAT || github.token }}
+ - name: Generate graphs
+ uses: upptime/uptime-monitor@v1.38.0
+ with:
+ command: "graphs"
+ env:
+ GH_PAT: ${{ secrets.GH_PAT || github.token }}
diff --git a/.github/workflows/response-time.yml b/.github/workflows/response-time.yml
new file mode 100644
index 000000000..fd2599810
--- /dev/null
+++ b/.github/workflows/response-time.yml
@@ -0,0 +1,40 @@
+#
+# ===============================
+# Do not edit this file directly!
+# ===============================
+#
+# Your changes will be overwritten when the Upptime template updates (by default, weekly)
+# Instead, change .upptimerc.yml configuration and the workflows will be generated accordingly.
+#
+# 🔼 Upptime @v1.38.0
+# GitHub-powered open-source uptime monitor and status page by Anand Chowdhary
+
+# * Source: https://github.com/upptime/upptime
+# * Docs and more: https://upptime.js.org
+# * More by Anand Chowdhary: https://anandchowdhary.com
+
+
+name: Response Time CI
+on:
+ schedule:
+ - cron: "0 23 * * *"
+ repository_dispatch:
+ types: [response_time]
+ workflow_dispatch:
+jobs:
+ release:
+ name: Check status
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ ref: ${{ github.head_ref }}
+ token: ${{ secrets.GH_PAT || github.token }}
+ - name: Update response time
+ uses: upptime/uptime-monitor@v1.38.0
+ with:
+ command: "response-time"
+ env:
+ GH_PAT: ${{ secrets.GH_PAT || github.token }}
+ SECRETS_CONTEXT: ${{ toJson(secrets) }}
diff --git a/.github/workflows/setup.yml b/.github/workflows/setup.yml
new file mode 100644
index 000000000..728a556e0
--- /dev/null
+++ b/.github/workflows/setup.yml
@@ -0,0 +1,72 @@
+#
+# ===============================
+# Do not edit this file directly!
+# ===============================
+#
+# Your changes will be overwritten when the Upptime template updates (by default, weekly)
+# Instead, change .upptimerc.yml configuration and the workflows will be generated accordingly.
+#
+# 🔼 Upptime @v1.38.0
+# GitHub-powered open-source uptime monitor and status page by Anand Chowdhary
+
+# * Source: https://github.com/upptime/upptime
+# * Docs and more: https://upptime.js.org
+# * More by Anand Chowdhary: https://anandchowdhary.com
+
+
+name: Setup CI
+on:
+ push:
+ paths:
+ - ".upptimerc.yml"
+ repository_dispatch:
+ types: [setup]
+ workflow_dispatch:
+jobs:
+ release:
+ name: Setup Upptime
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ ref: ${{ github.head_ref }}
+ token: ${{ secrets.GH_PAT || github.token }}
+ - name: Update template
+ uses: upptime/uptime-monitor@v1.38.0
+ with:
+ command: "update-template"
+ env:
+ GH_PAT: ${{ secrets.GH_PAT || github.token }}
+ - name: Update response time
+ uses: upptime/uptime-monitor@v1.38.0
+ with:
+ command: "response-time"
+ env:
+ GH_PAT: ${{ secrets.GH_PAT || github.token }}
+ SECRETS_CONTEXT: ${{ toJson(secrets) }}
+ - name: Update summary in README
+ uses: upptime/uptime-monitor@v1.38.0
+ with:
+ command: "readme"
+ env:
+ GH_PAT: ${{ secrets.GH_PAT || github.token }}
+ - name: Generate graphs
+ uses: benc-uk/workflow-dispatch@v1
+ with:
+ workflow: Graphs CI
+ token: ${{ secrets.GH_PAT || github.token }}
+ - name: Generate site
+ uses: upptime/uptime-monitor@v1.38.0
+ with:
+ command: "site"
+ env:
+ GH_PAT: ${{ secrets.GH_PAT || github.token }}
+ - uses: peaceiris/actions-gh-pages@v4
+ name: GitHub Pages Deploy
+ with:
+ github_token: ${{ secrets.GH_PAT || github.token }}
+ publish_dir: "site/status-page/__sapper__/export/"
+ force_orphan: "false"
+ user_name: "Upptime Bot"
+ user_email: "73812536+upptime-bot@users.noreply.github.com"
diff --git a/.github/workflows/site.yml b/.github/workflows/site.yml
new file mode 100644
index 000000000..2f1859063
--- /dev/null
+++ b/.github/workflows/site.yml
@@ -0,0 +1,48 @@
+#
+# ===============================
+# Do not edit this file directly!
+# ===============================
+#
+# Your changes will be overwritten when the Upptime template updates (by default, weekly)
+# Instead, change .upptimerc.yml configuration and the workflows will be generated accordingly.
+#
+# 🔼 Upptime @v1.38.0
+# GitHub-powered open-source uptime monitor and status page by Anand Chowdhary
+
+# * Source: https://github.com/upptime/upptime
+# * Docs and more: https://upptime.js.org
+# * More by Anand Chowdhary: https://anandchowdhary.com
+
+
+name: Static Site CI
+on:
+ schedule:
+ - cron: "0 1 * * *"
+ repository_dispatch:
+ types: [static_site]
+ workflow_dispatch:
+jobs:
+ release:
+ name: Build and deploy site
+ runs-on: ubuntu-latest
+ if: "!contains(github.event.head_commit.message, '[skip ci]')"
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ ref: ${{ github.head_ref }}
+ token: ${{ secrets.GH_PAT || github.token }}
+ - name: Generate site
+ uses: upptime/uptime-monitor@v1.38.0
+ with:
+ command: "site"
+ env:
+ GH_PAT: ${{ secrets.GH_PAT || github.token }}
+ - uses: peaceiris/actions-gh-pages@v4
+ name: GitHub Pages Deploy
+ with:
+ github_token: ${{ secrets.GH_PAT || github.token }}
+ publish_dir: "site/status-page/__sapper__/export/"
+ force_orphan: "false"
+ user_name: "Upptime Bot"
+ user_email: "73812536+upptime-bot@users.noreply.github.com"
diff --git a/.github/workflows/summary.yml b/.github/workflows/summary.yml
new file mode 100644
index 000000000..d2f4e1bd3
--- /dev/null
+++ b/.github/workflows/summary.yml
@@ -0,0 +1,39 @@
+#
+# ===============================
+# Do not edit this file directly!
+# ===============================
+#
+# Your changes will be overwritten when the Upptime template updates (by default, weekly)
+# Instead, change .upptimerc.yml configuration and the workflows will be generated accordingly.
+#
+# 🔼 Upptime @v1.38.0
+# GitHub-powered open-source uptime monitor and status page by Anand Chowdhary
+
+# * Source: https://github.com/upptime/upptime
+# * Docs and more: https://upptime.js.org
+# * More by Anand Chowdhary: https://anandchowdhary.com
+
+
+name: Summary CI
+on:
+ schedule:
+ - cron: "0 0 * * *"
+ repository_dispatch:
+ types: [summary]
+ workflow_dispatch:
+jobs:
+ release:
+ name: Generate README
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ ref: ${{ github.head_ref }}
+ token: ${{ secrets.GH_PAT || github.token }}
+ - name: Update summary in README
+ uses: upptime/uptime-monitor@v1.38.0
+ with:
+ command: "readme"
+ env:
+ GH_PAT: ${{ secrets.GH_PAT || github.token }}
diff --git a/.github/workflows/update-template.yml b/.github/workflows/update-template.yml
new file mode 100644
index 000000000..5ba4d07fa
--- /dev/null
+++ b/.github/workflows/update-template.yml
@@ -0,0 +1,39 @@
+#
+# ===============================
+# Do not edit this file directly!
+# ===============================
+#
+# Your changes will be overwritten when the Upptime template updates (by default, weekly)
+# Instead, change .upptimerc.yml configuration and the workflows will be generated accordingly.
+#
+# 🔼 Upptime @v1.38.0
+# GitHub-powered open-source uptime monitor and status page by Anand Chowdhary
+
+# * Source: https://github.com/upptime/upptime
+# * Docs and more: https://upptime.js.org
+# * More by Anand Chowdhary: https://anandchowdhary.com
+
+
+name: Update Template CI
+on:
+ schedule:
+ - cron: "0 0 * * *"
+ repository_dispatch:
+ types: [update_template]
+ workflow_dispatch:
+jobs:
+ release:
+ name: Build
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ ref: ${{ github.head_ref }}
+ token: ${{ secrets.GH_PAT || github.token }}
+ - name: Update template
+ uses: upptime/uptime-monitor@master
+ with:
+ command: "update-template"
+ env:
+ GH_PAT: ${{ secrets.GH_PAT || github.token }}
diff --git a/.github/workflows/updates.yml b/.github/workflows/updates.yml
new file mode 100644
index 000000000..c4f9217f0
--- /dev/null
+++ b/.github/workflows/updates.yml
@@ -0,0 +1,37 @@
+#
+# ===============================
+# Do not edit this file directly!
+# ===============================
+#
+# Your changes will be overwritten when the Upptime template updates (by default, weekly)
+# Instead, change .upptimerc.yml configuration and the workflows will be generated accordingly.
+#
+# 🔼 Upptime @v1.38.0
+# GitHub-powered open-source uptime monitor and status page by Anand Chowdhary
+
+# * Source: https://github.com/upptime/upptime
+# * Docs and more: https://upptime.js.org
+# * More by Anand Chowdhary: https://anandchowdhary.com
+
+
+name: Updates CI
+on:
+ schedule:
+ - cron: "0 3 * * *"
+ repository_dispatch:
+ types: [updates]
+ workflow_dispatch:
+jobs:
+ release:
+ name: Deploy updates
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ ref: ${{ github.head_ref }}
+ token: ${{ secrets.GH_PAT || github.token }}
+ - name: Update code
+ uses: upptime/updates@master
+ env:
+ GH_PAT: ${{ secrets.GH_PAT || github.token }}
diff --git a/.github/workflows/uptime.yml b/.github/workflows/uptime.yml
new file mode 100644
index 000000000..71842e612
--- /dev/null
+++ b/.github/workflows/uptime.yml
@@ -0,0 +1,40 @@
+#
+# ===============================
+# Do not edit this file directly!
+# ===============================
+#
+# Your changes will be overwritten when the Upptime template updates (by default, weekly)
+# Instead, change .upptimerc.yml configuration and the workflows will be generated accordingly.
+#
+# 🔼 Upptime @v1.38.0
+# GitHub-powered open-source uptime monitor and status page by Anand Chowdhary
+
+# * Source: https://github.com/upptime/upptime
+# * Docs and more: https://upptime.js.org
+# * More by Anand Chowdhary: https://anandchowdhary.com
+
+
+name: Uptime CI
+on:
+ schedule:
+ - cron: "*/5 * * * *"
+ repository_dispatch:
+ types: [uptime]
+ workflow_dispatch:
+jobs:
+ release:
+ name: Check status
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ ref: ${{ github.head_ref }}
+ token: ${{ secrets.GH_PAT || github.token }}
+ - name: Check endpoint status
+ uses: upptime/uptime-monitor@v1.38.0
+ with:
+ command: "update"
+ env:
+ GH_PAT: ${{ secrets.GH_PAT || github.token }}
+ SECRETS_CONTEXT: ${{ toJson(secrets) }}
diff --git a/.templaterc.json b/.templaterc.json
new file mode 100644
index 000000000..3c6c2a114
--- /dev/null
+++ b/.templaterc.json
@@ -0,0 +1,3 @@
+{
+ "files": [".github/**/*"]
+}
diff --git a/.upptimerc.yml b/.upptimerc.yml
new file mode 100644
index 000000000..9eeecf2c4
--- /dev/null
+++ b/.upptimerc.yml
@@ -0,0 +1,36 @@
+# Change these first
+owner: upptime # Your GitHub organization or username, where this repository lives
+repo: upptime # The name of this repository
+
+sites:
+ - name: Google
+ url: https://www.google.com
+ - name: Wikipedia
+ url: https://en.wikipedia.org
+ - name: Hacker News
+ url: https://news.ycombinator.com
+ - name: Test Broken Site
+ url: https://thissitedoesnotexist.koj.co
+ - name: IPv6 test
+ url: forwardemail.net
+ port: 80
+ check: "tcp-ping"
+ ipv6: true
+
+status-website:
+ # Add your custom domain name, or remove the `cname` line if you don't have a domain
+ # Uncomment the `baseUrl` line if you don't have a custom domain and add your repo name there
+ cname: demo.upptime.js.org
+ # baseUrl: /your-repo-name
+ logoUrl: https://raw.githubusercontent.com/upptime/upptime.js.org/master/static/img/icon.svg
+ name: Upptime
+ introTitle: "**Upptime** is the open-source uptime monitor and status page, powered entirely by GitHub."
+ introMessage: This is a sample status page which uses **real-time** data from our [GitHub repository](https://github.com/upptime/upptime). No server required — just GitHub Actions, Issues, and Pages. [**Get your own for free**](https://github.com/upptime/upptime)
+ navbar:
+ - title: Status
+ href: /
+ - title: GitHub
+ href: https://github.com/$OWNER/$REPO
+
+# Upptime also supports notifications, assigning issues, and more
+# See https://upptime.js.org/docs/configuration
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 000000000..f76bb38c5
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2020 Anand Chowdhary
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.md b/README.md
new file mode 100644
index 000000000..2c1745f93
--- /dev/null
+++ b/README.md
@@ -0,0 +1,107 @@
+# [![Upptime](https://raw.githubusercontent.com/upptime/upptime.js.org/master/static/img/logo.svg)](https://upptime.js.org)
+
+
+
+**Upptime** (https://upptime.js.org) is the open-source uptime monitor and status page, powered entirely by GitHub Actions, Issues, and Pages. It's made with 💚 by [Anand Chowdhary](https://anandchowdhary.com), supported by [Pabio](https://pabio.com).
+
+> I find Upptime an incredible clever usage of \[GitHub Actions]. You essentially get a free configurable uptime monitor for whatever you want. – [CSS Tricks](https://css-tricks.com/upptime/)
+
+Upptime is used by [**1,000+**](https://github.com/topics/upptime) people and teams to ensure they know when their endpoints go down.
+
+
+
+[![Uptime CI](https://github.com/upptime/upptime/workflows/Uptime%20CI/badge.svg)](https://github.com/upptime/upptime/actions?query=workflow%3A%22Uptime+CI%22)
+[![Response Time CI](https://github.com/upptime/upptime/workflows/Response%20Time%20CI/badge.svg)](https://github.com/upptime/upptime/actions?query=workflow%3A%22Response+Time+CI%22)
+[![Graphs CI](https://github.com/upptime/upptime/workflows/Graphs%20CI/badge.svg)](https://github.com/upptime/upptime/actions?query=workflow%3A%22Graphs+CI%22)
+[![Static Site CI](https://github.com/upptime/upptime/workflows/Static%20Site%20CI/badge.svg)](https://github.com/upptime/upptime/actions?query=workflow%3A%22Static+Site+CI%22)
+[![Summary CI](https://github.com/upptime/upptime/workflows/Summary%20CI/badge.svg)](https://github.com/upptime/upptime/actions?query=workflow%3A%22Summary+CI%22)
+
+## [📈 Live Status](https://demo.upptime.js.org): **🟧 Partial outage**
+
+
+
+
+
+| URL | Status | History | Response Time | Uptime |
+| --- | ------ | ------- | ------------- | ------ |
+| [Google](https://www.google.com) | 🟩 Up | [google.yml](https://github.com/upptime/upptime/commits/HEAD/history/google.yml) | 94ms | 100.00%
+| [Wikipedia](https://en.wikipedia.org) | 🟩 Up | [wikipedia.yml](https://github.com/upptime/upptime/commits/HEAD/history/wikipedia.yml) | 212ms | 100.00%
+| [Hacker News](https://news.ycombinator.com) | 🟩 Up | [hacker-news.yml](https://github.com/upptime/upptime/commits/HEAD/history/hacker-news.yml) | 275ms | 100.00%
+| [Test Broken Site](https://thissitedoesnotexist.koj.co) | 🟥 Down | [test-broken-site.yml](https://github.com/upptime/upptime/commits/HEAD/history/test-broken-site.yml) | 0ms | 0.00%
+| [IPv6 test](forwardemail.net) | 🟥 Down | [i-pv6-test.yml](https://github.com/upptime/upptime/commits/HEAD/history/i-pv6-test.yml) | 0ms | 0.00%
+
+
+
+
+
+## ⭐ How it works
+
+- GitHub Actions is used as an uptime monitor
+ - Every 5 minutes, a workflow visits your website to make sure it's up
+ - Response time is recorded every 6 hours and committed to git
+ - Graphs of response time are generated every day
+- GitHub Issues is used for incident reports
+ - An issue is opened if an endpoint is down
+ - People from your team are assigned to the issue
+ - Incidents reports are posted as issue comments
+ - Issues are locked so non-members cannot comment on them
+ - Issues are closed automatically when your site comes back up
+ - Slack notifications are sent on updates
+- GitHub Pages is used for the status website
+ - A simple, beautiful, and accessible PWA is generated
+ - Built with Svelte and Sapper
+ - Fetches data from this repository using the GitHub API
+
+_Upptime is not affiliated to or endorsed by GitHub._
+
+[![Screenshot of status website](https://raw.githubusercontent.com/upptime/upptime.js.org/master/static/img/screenshot-status.png)](https://upptime.js.org)
+
+## 👩💻 [Documentation](https://upptime.js.org)
+
+1. [How it works](https://upptime.js.org/docs)
+1. [Getting started](https://upptime.js.org/docs/get-started)
+1. [Configuration](https://upptime.js.org/docs/configuration)
+1. [Triggers](https://upptime.js.org/docs/triggers)
+1. [Notifications](https://upptime.js.org/docs/notifications)
+1. [Badges](https://upptime.js.org/docs/badges)
+1. [Packages](https://upptime.js.org/docs/packages)
+1. [Contributing](https://upptime.js.org/docs/contributing)
+1. [Frequently Asked Questions](https://upptime.js.org/docs/faq)
+
+### Concepts
+
+#### Issues as incidents
+
+When the GitHub Actions workflow detects that one of your URLs is down, it automatically opens a GitHub issue ([example issue #67](https://github.com/upptime/upptime/issues/67)). You can add incident reports to this issue by adding comments. When your site comes back up, the issue will be closed automatically as well.
+
+
+
+
+
+
+
+
+
+
+
+
+#### Commits for response time
+
+Four times per day, another workflow runs and records the response time of your websites. This data is committed to GitHub, so it's available in the commit history of each file ([example commit history](https://github.com/koj-co/upptime/commits/master/history/wikipedia.yml)). Then, the GitHub API is used to graph the response time history of each endpoint and to track when a site went down.
+
+