Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Why? What? How? #1

Closed
nelsonic opened this issue Mar 7, 2017 · 8 comments
Closed

Why? What? How? #1

nelsonic opened this issue Mar 7, 2017 · 8 comments

Comments

@nelsonic
Copy link
Member

nelsonic commented Mar 7, 2017

This repo was born out of the need identified in: dwyl/git-guide#15

Why?

As a person who uses GitHub as their "single-source-of-truth"
I need a backup of GitHub issues
so that I can work "offline".
(either when I have no network or GH is "down")

What?

Backup GitHub issues.

  • a script that lets you login to GitHub using OAuth
  • Use GitHub REST API to retrieve all issues
  • Store issues as "flat files" in subdirectories corresponding to the GitHub URL
    e.g: if the issue is dwyl/github-reference/issues/15
    store it as dwyl/github-reference/issues/15.json
  • It does not need to "scale" it just needs to work. read: http://paulgraham.com/ds.html

Note: initially we do not need a Web-UI to let people backup their issues,
but later we could build UI to make it more useable.

How?

I have a strong preference for using Elixir for this because we are transitioning all our projects to Elixir, but given that this script does not require parallelism/concurrency it's "OK" to write it in which ever language you are most comfortable using.

@SimonLab
Copy link
Member

SimonLab commented Mar 7, 2017

Some questions and comments to try to get a better idea on how to implement the backup:

  • Do we need to implement OAuth, maybe a first version can get directly the issues from the API without authentication. I think the only reason why we would want to use OAuth is to have a better number for the requests limit, we might need to know how many requests the script needs.

  • Will this script run locally or on a server? In both case we need to save the issue json files asked locally.

  • If we want to work offline we migth need to think how to synchronise the offline backup of issues with Github but this might be a feature needed for the next version not now.

Let's try with Elixir! The "Programming Elixir" book has already a nice example which explains how to display the first n most recent issues of a repo.

@nelsonic
Copy link
Member Author

nelsonic commented Mar 7, 2017

@SimonLab if we use the API without OAuth there will be a limit for the number of requests per minute/hour. you're correct that this will work, it will just mean the person has to wait for the script to run over a number of hours instead of working in a few minutes.

Also, @jruts managed to get a GitHub Web Hook with Elixir set up quite quickly:
https://github.com/jruts/git_webooks_elixir so might be worth doing a bit of googling.

@jruts
Copy link
Member

jruts commented Mar 7, 2017

@nelsonic that is just to play around, it is far from complete :) Elixir is too much fun not to play around with it. I do think it is rather easy to implement this mini project. If you need a ready to use github lib I would recommend tentacat.

@nelsonic
Copy link
Member Author

nelsonic commented Mar 7, 2017

@jruts thanks for the tip! https://github.com/edgurgel/tentacat looks really good! 😍
(hope your day is going well...)

@jay-meister
Copy link
Member

@nelsonic is this mini project no longer desired now you have seen tentacat?

@nelsonic
Copy link
Member Author

@JMurphyWeb I think we just need to write a script that uses Tentacat to fetch all the issues for an org's repos.

@nelsonic
Copy link
Member Author

If we could solve this issue: dear-github/dear-github#129
the world (of GitHub) would be a better place!

@Cleop
Copy link
Member

Cleop commented Mar 13, 2018

Closing as 'Done' in the Projects board.

@Cleop Cleop closed this as completed Mar 13, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants