Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
bztogl
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Model registry
Analyze
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Infra
bztogl
Commits
21d3498c
Commit
21d3498c
authored
7 years ago
by
Federico Mena Quintero
Browse files
Options
Downloads
Patches
Plain Diff
README.md: Instructions on how to install and do a test run
parent
638d3c21
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
README.md
+111
-6
111 additions, 6 deletions
README.md
with
111 additions
and
6 deletions
README.md
+
111
−
6
View file @
21d3498c
Bugzilla to Gitlab migration tool
=================================
This is
`bztogl`
, a tool to migrate bug reports from Bugzilla to Gitlab.
The GNOME project's source code is moving from git.gnome.org to
gitlab.gnome.org, and our bugs from bugzilla.gnome.org are moving to
Gitlab, too!
While Git repositories can be easily moved to Gitlab — just add a Git
remote for gitlab.gnome.org and push all the refs —, bugs need to be
moved by a different tool. This project,
`bztogl`
, provides that tool.
moved by a different tool. This project,
`bztogl`
, provides that
tool.
#
Requirements
#
Installation
`bztogl`
is a Python 3 script, and it requires the
`bugzilla`
and
`python-gitlab`
modules. You can set up a virtualenv (essentially
a
personal sandbox for Python modules) for these like this:
`bztogl`
is a Python 3 script, and it requires the
`
python-
bugzilla`
and
`python-gitlab`
modules. You can set up a virtualenv (essentially
a
personal sandbox for Python modules) for these like this:
```
sh
mkdir
~/src/virtualenvs
virtualenv ~/src/virtualenvs/bztogl
source
~/src/virtualenvs/bztogl/bin/activate
# at this point your shell prompt will change to something like "(bztogl) $_"
pip
install
bugzilla
pip
install
python-
bugzilla
pip
install
python-gitlab
```
# What `bztogl` does
At a high level,
`bztogl`
needs to be able to do these:
*
Connect to Bugzilla.
*
Connect to Gitlab.
*
Read bugs from Bugzilla, their attachments, etc.
*
Write issues to Gitlab.
`bztogl`
only deals with bugs that are open in Bugzilla.
*
It will not
look at bugs that are already closed.
*
Here, by "bugs that are open"
we mean bugs with status
`NEW, ASSIGNED, REOPENED, NEEDINFO,
UNCONFIRMED`
.
# Know what you are doing
Bugzilla and Gitlab have different ideas of how bug reports or issues
are structured, so
**it is important to do a test run first**
, to
check if the resulting issues in Gitlab look fine.
**You do not want to do this in a production project.**
Do it in a
test project instead.
## How to do a test run
1.
Create a personal project for testing
2.
Get an API key
3.
Run
`bztogl`
Each of these steps is detailed below.
## 1. Create a personal project for testing
You need a personal project for testing, where
`bztogl`
can create
new issues without affecting the main/public project. That is, you
want this tool to create issues in
`your_username/projectname`
,
instead of the public
`GNOME/projectname`
.
Create a temporary project in your Gitlab account. Alternatively, you
can register an account in
`gitlab-test.gnome.org`
and create a
project there.
## 2. Get an API key
`bztogl`
needs to talk to the Gitlab API, and for this it needs an API
key. You can consider
`bztogl`
to be an application that wants to
talk to Gitlab.
If you are using gitlab-test.gnome.org, get an API key at
https://gitlab-test.gnome.org/profile/personal_access_tokens — you can
use "
`bztogl`
" for in the
**Name**
field of the application you want
to register. Pick an expiration date in the future, and
**turn on**
the checkboxes for
**api**
and
**read_user**
, so that
`bztogl`
can
actually modify your test project. Click on the "
*
Create personal
access token
*
" button.
**WRITE DOWN THE API TOKEN**
you get right after clicking that
button. You will not be able to see it again if you navigate away
from that web page! If you lose the token, you can create a new one
by following the same steps.
## 3. Run `bztogl`
If you used the steps from the [installation] section, you will have a
Python virtualenv with the necessary modules. Make sure you have the
virtualenv activated with the
`activate`
command form that example.
Now you can run this:
```
sh
./bztogl.py
--token
<your_api_token>
--product
myproject
```
You will get some output:
```
Connecting to https://gitlab-test.gnome.org/
Using target product 'username/myproject since --target_product was not provided
Connecting to bugzilla.gnome.org
WARNING: Bugzilla credentials were not provided, BZ bugs won't be closed and subscribers won't notice the migration
Querying for open bugs for the 'myproject' product
```
If everything works fine,
`bztogl`
will start importing bugs. This is
a slow process.
**The WARNING about Bugzilla credentials**
is completely fine; it
indicates that the bugs in Bugzilla will not be modified, which is
exactly what we want for a test run.
If you get an error, check the following:
*
Do you have the correct API key? Did you enable the
**api**
and
**read_user**
checkboxes when creating the API key?
*
Is the Bugzilla product name correct? It's what you pass to the
`--product`
option.
*
Is the Gitlab project name correct? If it is different from
Bugzilla's product name, you can use the
`--target_product`
option.
[
installation
]:
#installation
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment