Tool for exporting projects from FIT CTU GitLab to GitHub
Project description
:toc:
= Semestral work from NI-PYT in 2020/21 at https://old.fit.cvut.cz/en[FIT CTU]
* CTU username: `saframa6`
* CTU mail: saframa6@fit.cvut.cz
== Project: GitLab to GitHub project export
=== Goal
Sometimes I need to export projects from FIT CTU GitLab to GitHub. It can be done https://stackoverflow.com/a/22266000/6784881[manually], but for a larger amount of projects, it is very time-consuming. For example, if you finish your studies at FIT CTU, you immediately lose access to your GitLab and all of your projects (even if you continue your studies, in a meantime you lose access).
=== Known issues
1. Synchronization of big files. FIT CTU GitLab allows files bigger than 200MB to be stored. GitHub does not. Git LFS can be used instead.
2. Access control works differently in GitLab and GitHub
=== Requirements for grading
. Use `requests` (or some asyncio alternative, such as `aiohttp` or `httpx`) for communicating with GitLab and GitHub API
. Use some Python git wrapper or git directly to manipulate with cloned repositories (eg setting different upstream)
. Create a command line interface, which will at least allow
.. Specify a list of repository names for exporting
.. Set policy for conflicts, eg project with the same name already exists on GitHub => overwrite
. Inform user about the exporting process by terminal output and also store this information in logs
. Load configuration from a file using `configparser` (or similar), at least allowing to use own API keys
. Write tests using `pytest`, also allow to run them using `tox`
.. Fake both API for testing
.. Test internal functionality
. Make it available on PyPI as a package under a free software license
. Document project using docstrings in code and this README, generate Sphinx docuementation via a tox environemnt
= Documentation
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for fit-ctu-gitlab-exporter-0.0.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f3d6731f6682375337c4c317190a95e36582546d95d22c202409a72adda53d4 |
|
MD5 | d15fbb9747a55c1cc43a3057dfb4c5a9 |
|
BLAKE2b-256 | e4cfdc183c12c9e3359413f2e18c7b3a5e8ef29ac225fdeb18f5be6ab217fa3f |
Close
Hashes for fit_ctu_gitlab_exporter-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | df94995a97559583422769eb631d37565e83ee6bf27c6130d2f65e4227f7fab9 |
|
MD5 | c7f0dad2e8a8611bdea71bf0a9d00543 |
|
BLAKE2b-256 | f0c0a7c6d01881efca0bcc48765528e80d25a67fe44454ec2837b1c0f32203aa |