Add getbugs tools
This change adds a tool to collect OSSA bug data. Change-Id: Ifa7b8ae55127e6b55e700f93d475f071b2b3671d
This commit is contained in:
parent
da702ea988
commit
6776fae1f2
62
tools/getbugs.py
Executable file
62
tools/getbugs.py
Executable file
@ -0,0 +1,62 @@
|
|||||||
|
#!/bin/env python3
|
||||||
|
# Copyright 2018 Red Hat, Inc
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
"""
|
||||||
|
Import launchpad bugs to a csv file
|
||||||
|
|
||||||
|
Install using:
|
||||||
|
python3 -m venv --system-site-packages .venv
|
||||||
|
. .venv/bin/activate
|
||||||
|
pip3 install launchpadlib keyrings.alt
|
||||||
|
|
||||||
|
Run:
|
||||||
|
./getbugs.py > bugs.csv
|
||||||
|
|
||||||
|
Publish to ethercalc:
|
||||||
|
curl --include --request PUT --header "Content-Type: text/csv" \
|
||||||
|
--data-binary @./bugs.csv https://ethercalc.openstack.org/_/CALC_ID
|
||||||
|
"""
|
||||||
|
|
||||||
|
from launchpadlib.launchpad import Launchpad
|
||||||
|
from datetime import datetime, timezone
|
||||||
|
|
||||||
|
|
||||||
|
STATUS = [
|
||||||
|
"New",
|
||||||
|
"Incomplete",
|
||||||
|
"Triaged",
|
||||||
|
"Opinion",
|
||||||
|
# "Invalid", "Won't Fix", "Fix Released"
|
||||||
|
"Confirmed",
|
||||||
|
"In Progress",
|
||||||
|
"Fix Committed",
|
||||||
|
]
|
||||||
|
COLUMNS = [
|
||||||
|
("Number", lambda x: "<https://launchpad.net/bugs/{nr}>".format(
|
||||||
|
nr=x.lp_get_parameter('self_link').split('/')[-1])),
|
||||||
|
("Created", lambda x: datetime.strftime(x.lp_get_parameter('date_created'),
|
||||||
|
"%Y-%m-%dT%H:%M:%S")),
|
||||||
|
("Age", lambda x: (datetime.now(timezone.utc) -
|
||||||
|
x.lp_get_parameter('date_created')).days),
|
||||||
|
("Status", lambda x: x.lp_get_parameter('status')),
|
||||||
|
("Importance", lambda x: x.lp_get_parameter("importance")),
|
||||||
|
("Completed", lambda x: str(x.lp_get_parameter("is_complete"))),
|
||||||
|
]
|
||||||
|
|
||||||
|
print(",".join([col[0] for col in COLUMNS]), end='\r\n')
|
||||||
|
for bug in Launchpad.login_with('VMT GetBugs', 'production')\
|
||||||
|
.projects["ossa"]\
|
||||||
|
.searchTasks(status=STATUS):
|
||||||
|
print(",".join(["\"%s\"" % col[1](bug) for col in COLUMNS]), end='\r\n')
|
Loading…
x
Reference in New Issue
Block a user