python-github-backup
python-github-backup copied to clipboard
Backup of private organization does nothing, no errors
github-backup <NAME> --private --organization --output-directory ~/gitbak --all
Retrieving repositories
Filtering repositories
Backing up repositories
Retrieving <NAME> starred repositories
Writing 0 starred repositories to disk
Retrieving <NAME> watched repositories
Writing 0 watched repositories to disk
$ tree ~/gitbak/
/home/user/gitbak/
└── account
├── starred.json
└── watched.json
1 directory, 2 files
I would also be nice to have a --debug option for additional output of what is going on. I can clone our repos via ssh just fine. leaving out the ssh option did not make a difference.
I started adding some logging info to debug this, turns out the request returns back an empty list, []. Turns out -u is required, but not checked for. Which then prompts for a password, which it should not if I issued to prefer ssh
bin/github-backup -u user <NAME>--prefer-ssh --private --organization --output-directory ~/gitbak --all
Backing up user <NAME> to /home/user/gitbak
Retrieving repositories
Password:
If -u is left out, getpasswd should be used to obtain the current user.
Ok works with a token, all of which these things should be checked for at runtime. Is there no other way?
@mtdeguzis If you set --user
, you probably also want to set --password
(its for basic auth). The alternative is to use a token, as you found. getpasswd
isnt a good alternative here because your local username probably does not match your github username (mine doesn't).
I suppose if we set the --private
flag, we should also check for auth. Mind making a pull request for that?
I could probably take a look at add the check. I'll look at submitting a PR.
Actually, this checks for the pw, so nothing to do here:
github-backup ORG -u mtdeguzis --prefer-ssh --private --organization --output-directory ~/gitbak --all
We actually need to check for user. If that is left out, the program kicks of as if nothing is wrong. But I get what you mean, get_auth can be issued if --private is used.
How about..
350 def retrieve_data(args, template, query_args=None, single_request=False):
351 auth = get_auth(args)
352 if not auth and args.private:
353 sys.exit("Authentication is required for private repositories")
354 query_args = get_query_args(query_args)
355 per_page = 100
356 page = 0
357 data = []
... when a user attempts to retrieve data from a private repository?
Backing up user ORG to /home/mtdeguzis/gitbak
Retrieving repositories
Authentication is required for private repositories (token or password)
Hello! It would be nice to add authentication by the ssh key (without password)
@breezzz pull request welcome.
This looks done with #74?
That was never merged.
Derp, somehow missed that. Should this be implemented as a failure or a warning? I am thinking similar to this:
https://github.com/josegonzalez/python-github-backup/blob/89ee22c2be626a064533a28ca8c97534c7eef16b/bin/github-backup#L539
warning is fine.