All Projects → moimael → trac-to-gitlab

moimael / trac-to-gitlab

Licence: other
Easily migrate your Trac instance to Gitlab

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to trac-to-gitlab

geet
Command line interface for performing Git hosting service operations
Stars: ✭ 14 (-36.36%)
Mutual labels:  gitlab, milestones
tracboat
Trac to GitLab migration toolbox
Stars: ✭ 32 (+45.45%)
Mutual labels:  gitlab, trac
gitlabr
An R client for the GitLab API
Stars: ✭ 31 (+40.91%)
Mutual labels:  gitlab
MigrateGitlabToGogs
Migrate repositories from Gitlab to Gogs or Gitea
Stars: ✭ 49 (+122.73%)
Mutual labels:  gitlab
gitlab-ci-variables-cli
CLI tool to allow setting bulk project variables on Gitlab CI
Stars: ✭ 38 (+72.73%)
Mutual labels:  gitlab
YappyGitLab
A GitLab monitor bot for Discord
Stars: ✭ 51 (+131.82%)
Mutual labels:  gitlab
OctoPrint-GitFiles
With this plugin, you can use a github/gitlab repository for keeping your OctoPrint Files collection up-to-date.
Stars: ✭ 28 (+27.27%)
Mutual labels:  gitlab
moadsd-ng
The MOADSD-NG project does provide a simple way to setup a hybrid cloud security demo, playground and learning environment within the clouds.
Stars: ✭ 13 (-40.91%)
Mutual labels:  gitlab
git-squash
Locally squash commits on a branch without resolving any conflicts (a'la squash and merge)
Stars: ✭ 123 (+459.09%)
Mutual labels:  gitlab
CVE-2021-22205
GitLab CE/EE Preauth RCE using ExifTool
Stars: ✭ 165 (+650%)
Mutual labels:  gitlab
gitlab-live
Interactive online shell for GitLab API
Stars: ✭ 21 (-4.55%)
Mutual labels:  gitlab
gitlabby-dockerish-laravel
What happens when you Dockerize your Laravel testing environment and throw it at Gitlab CI?
Stars: ✭ 33 (+50%)
Mutual labels:  gitlab
gitcolombo
🧬 Extract and analyze contributors info from git repos
Stars: ✭ 55 (+150%)
Mutual labels:  gitlab
dependency-update-maven-plugin
A Maven plugin that creates merge requests for dependency updates.
Stars: ✭ 23 (+4.55%)
Mutual labels:  gitlab
10-days-of-git-and-github
asabeneh.github.io/10-days-of-git-and-github/
Stars: ✭ 786 (+3472.73%)
Mutual labels:  gitlab
MergeRequestsCI
👀 UI to see all GitLab merge requests of your teams in one place
Stars: ✭ 14 (-36.36%)
Mutual labels:  gitlab
go-zero-looklook
🔥基于go-zero(go zero) 微服务全技术栈开发最佳实践项目。Develop best practice projects based on the full technology stack of go zero (go zero) microservices.
Stars: ✭ 2,691 (+12131.82%)
Mutual labels:  gitlab
phpcs-gitlab
Gitlab Report for PHP_CodeSniffer (display the violations in the Gitlab CI/CD Code Quality Report)
Stars: ✭ 29 (+31.82%)
Mutual labels:  gitlab
Git-for-bio-scientists
Presentation about digital lab journalling with Git
Stars: ✭ 30 (+36.36%)
Mutual labels:  gitlab
aloba
🤖 [Myrmica Aloba 🐜] Bot: Add labels and milestone on pull requests and issues.
Stars: ✭ 18 (-18.18%)
Mutual labels:  milestones

What

This script migrates milestones, issues and wiki pages from trac to GitLab.

NOTE: This project is in deprecated, in favor of tracboat/tracboat.

Features

  • Component & Issue-Type are converted to labels
  • Comments to issues are copied over
  • Supports two modes of tansfer:
  • Using GitLab web API
  • Direct access through GitLab's database and file system
  • In direct mode, attachments are transfered and the issues and notes dates and ownership are preserved
  • In API mode, attachments are not transfered, issues and notes are owned by a single user and their dates are the current date.

How

Migrating a trac project to GitLab is a relatively complex process involving four steps:

  • Create a new project
  • Migrate the repository (can just be cloning a git repository if the trac project is already using git or could involve converting from subversion using git-svn)
  • Create the users for the project
  • Migrate issues and milestones
  • Migrate wiki pages

This script takes care of the last two bullet points and provides help for the third one.

Usage:

  1. copy migrate.cfg.example to migrate.cfg
  2. configure the values
  3. run ./collect-users.py to extract the user names from Trac
  4. update migrate.cfg and create the users in GitLab
  5. run (./migrate.py). Make sure you test it on a test project prior, if you run it twice against the same project you will get duplicated issues unless you're using direct access with overwrite set to yes.

Issues and milestones are copied to GitLab.

Wiki pages are copied to a folder on your machine and must be pushed into GitLab using wiki's git access.

GitLab versions

The database model should correspond to the version of GitLab that you are using.

This repo contains models for multiple versions (gitlab_direct/model.py) and the version number should be updated correspondingly in the imports in gitlab_direct/init.py and gitlab_direct/Connection.py.

To support a new version, use pwiz.py:

$ pwiz.py -e postgresql -u gitlab gitlabhq_production > gitlab_direct/model<version>.py

Manual updates must then be applied, see for instance the manual updates for 6.4.

Configuration

The configuration must be located in a file named "migrate.cfg"

Source

  • url - xmlrpc url to trac, e.g. https://user:[email protected]/projects/thisismyproject/login/xmlrpc

Target

  • project_name - the destination project including the paths to it. Basically the rest of the clone url minus the ".git". E.g. jens.neuhalfen/task-ninja.
  • method - direct or api

ÄPI mode:

  • url - e.g. https://www.exmple.com/gitlab/api/v3
  • access_token - the access token of the user creating all the issues. Found on the account page, e.g. secretsecretsecret
  • ssl_verify - set to yes to verify SSL server certificates.

Direct mode:

  • ```overwrite````- if set to yes, the milestones and issues are cleared for this projects and issues are recreated with their trac id (useful to preserve trac links)
  • db-name - MySQL database name
  • db-user - MySQL user name
  • db-password - MySQL password
  • uploads - GitLab uploads directory
  • usernames Comma separed list of username mappings such as: trac1->git1, trac2->git2

Wiki

  • migrate - Should the wiki pages be converted?
  • target-directory - Directory in which the wiki pages should be written

Issues

  • migrate - Should we migrate issues and milestones?

Licenses

LGPL license version 3.0 (see the licences directory).

History

Requirements

  • Python 3.2, xmlrpclib, requests
  • Trac with XML-RPC plugin enabled
  • Gitlab

And also, if you use the direct access to GitLab's database:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].