Skip to main content

Tool for exporting projects from FIT CTU GitLab to GitHub

Project description

Exporter: FIT CTU GitLab to GitHub project export

Goal

Sometimes I need to export projects from FIT CTU GitLab to GitHub. It can be done 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

  1. Use requests (or some asyncio alternative, such as aiohttp or httpx) for communicating with GitLab and GitHub API

  2. Use some Python git wrapper or git directly to manipulate with cloned repositories (eg setting different upstream)

  3. Create a command line interface, which will at least allow

    1. Specify a list of repository names for exporting

    2. Set policy for conflicts, eg project with the same name already exists on GitHub => overwrite

  4. Inform user about the exporting process by terminal output and also store this information in logs

  5. Load configuration from a file using configparser (or similar), at least allowing to use own API keys

  6. Write tests using pytest, also allow to run them using tox

    1. Fake both API for testing

    2. Test internal functionality

  7. Make it available on PyPI as a package under a free software license

  8. Document project using docstrings in code and this README, generate Sphinx documentation via a tox environment

Documentation

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fit-ctu-gitlab-exporter-0.0.2.tar.gz (8.8 kB view hashes)

Uploaded Source

Built Distribution

fit_ctu_gitlab_exporter-0.0.2-py3-none-any.whl (7.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page