Skip to content
This repository has been archived by the owner on Dec 15, 2022. It is now read-only.

Provides a read-only mirror for your GitHub issues. This is a fork of Matomo's project with some improvements.

License

Notifications You must be signed in to change notification settings

Wurst-Imperium/github-issues-mirror

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Issues Mirror

This project allows you to provide a read-only mirror for your GitHub issues which brings several advantages:

  • Data ownership
  • Better for SEO in case not all of your GitHub issues are indexed by Google
  • In case you get DMCA'd you can still access your issues

Try it, it's easy to setup! No database needed

Setup

  • git clone https://github.com/Wurst-Imperium/github-issues-mirror.git
  • cd github-issues-mirror/src
  • curl -s https://getcomposer.org/installer | php
  • php composer.phar install
  • npm install
  • npm run compileCSS
  • cp config/config.example.php config/config.php

Make sure to point your vhost to src/public. The src/tmp and the src/data directories have to be writable.

Import issues from GitHub

cd src/tasks && php import_github_issues.php

You may want to setup a cronjob to import the issues regularly. The first time you run the importer you might run into the Rate Limit. In such a case just execute the script an hour later again. As conditional requests are used it should fetch only changed and not already imported issues the next time. Meaning after executing this script often enough you should no longer run into the rate limit.

Configuration

See src/config/config.php

Data structure

All issues are stored as JSON on the file system in src/data:

  • There is one JSON file for each issue in src/data/issues. To not end up having too many files in one directory they are split into subdirectories from 1 to 100. Otherwise the file names are equal to the issue number: 1875.json = Issue 1875.
  • There is one JSON file for each page in src/data/pages. 1.json === Page 1, 2.json === Page 2, ...

License

GPL v3 (or later) see LICENSE

Releases

No releases published

Packages

No packages published

Languages

  • PHP 64.1%
  • Twig 31.2%
  • SCSS 4.7%