Metadata-Version: 2.1
Name: gitlab-project-export
Version: 0.1.1
Summary: Simple python project for exporting gitlab projects with Export Project feature in GitLab API.
Home-page: https://github.com/rvojcik/gitlab-project-export
Author: Robert Vojcik
Author-email: robert@vojcik.net
License: UNKNOWN
Download-URL: https://github.com/rvojcik/gitlab-project-export/archive/master.tar.gz
Description: # gitlab-project-export
        Simple python project for exporting gitlab projects with Export Project feature in GitLab API.
        
        Primary used for remote backup of projects in GitLab.com to private storage server.
        
        ## Breaking Changes 
        ### 05-2020
        
        Code was modified to work with Python3, not longer compatible with Python2.
        
        ## Prerequisite
        
        * Configured Gitlab API Token, https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html
        
        ## Install
        
        Simply install via pip:
        
        `pip install git+https://github.com/rvojcik/gitlab-project-export`
        
        or clone the project and install manually:
        
        ```
        git clone https://github.com/rvojcik/gitlab-project-export
        cd gitlab-project-export/
        sudo python3 setup.py install
        ```
        
        or use it without installing to your environment (install only requirements):
        
        ```
        git clone https://github.com/rvojcik/gitlab-project-export
        cd gitlab-project-export/
        pip install -f requirements.txt
        ```
        
        Prepare and edit your config file
        
        `mv config.yaml-example config.yaml`
        
        Simply run the script with optional config parameter
        
        `./gitlab-project-export.py -c /path/to/config.yaml`
        
        ## Configuration
        System uses simple yaml file as configuration.
        
        Example below
        ```
        gitlab:                                                   - gitlab configuration
          access:
            gitlab_url: "https://gitlab.com"                      - Gitlab url, official or your instance
            token: "MY_PERSONAL_SECRET_TOKEN"                     - personal access token
          projects:                                               - list of projects to export
            - rvojcik/example-project
        
        backup:                                                   - backup configuration
          project_dirs: True                                      - store projects in separate directories
          destination: "/data/backup"                             - base backup dir
          backup_name: "gitlab-com-{PROJECT_NAME}-{TIME}.tar.gz"  - backup file template
          backup_time_format: "%Y%m%d"                            - TIME tamplate, use whatever compatible with
                                                                    python datetime - date.strftime()
          ```
          
        
        ### Backup Usecase in cron
        
        Create cron file in `/etc/cron.d/gitlab-backup`
        
        With following content
        ```
        MAILTO=your_email@here.tld
        
        0 1 * * * root /path/to/cloned-repo/gitlab-project-export.py -c /etc/gitlab-export/config.yaml
        
        ```
        
        ### Migration Usecase
        First create two config files
        
        config1.yaml for exporting our project from gitlab.com
        ```
        gitlab:                                                   - gitlab configuration
          access:
            gitlab_url: "https://gitlab.com"                      - Gitlab url, official or your instance
            token: "MY_PERSONAL_SECRET_TOKEN"                     - personal access token
          projects:                                               - list of projects to export
            - rvojcik/project1
            - rvojcik/project2
        
        backup:                                                   - backup configuration
          project_dirs: False                                     - store projects in separate directories
          destination: "/data/export-dir"                             - base backup dir
          backup_name: "gitlab-com-{PROJECT_NAME}-{TIME}.tar.gz"  - backup file template
          backup_time_format: "%Y%m%d"                            - TIME tamplate, use whatever compatible with
                                                                    python datetime - date.strftime()
        ```
        
        and config2.yaml where we need only gitlab access part for importing projects to private gitlab instance
        ```
        gitlab:                                                   - gitlab configuration
          access:
            gitlab_url: "https://gitlab.privatedomain.tld"        - Gitlab url, official or your instance
            token: "MY_PERSONAL_SECRET_TOKEN"                     - personal access token
        ```
        
        Now it's time to export our projects
        ```
        ./gitlab-project-export.py -c ./config1.yaml -d
        ```
        Your projects are now exported in `/data/export-dir`
        
        After that we use `gitlab-project-import.py` with config2.yaml for importing into our pricate gitlab instance.
        
        ```
        ./gitlab-project-import.py -c ./config2.yaml -f ./gitlab-com-rvojcik-project1-20181224.tar.gz -p "rvojcik/project1"
        ./gitlab-project-import.py -c ./config2.yaml -f ./gitlab-com-rvojcik-project2-20181224.tar.gz -p "rvojcik/project2"
        ```
        
        Done ;)
        
Keywords: gitlab-backup,gitlab-export,export,gitlab,backup
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Description-Content-Type: text/markdown
