The web interface of Launchpad is awesome, but it does not provide a function that you can save your search result, or even create a custom bug display list, I believe managers would like this function, especially they want to track each team member status.
I am just a engineer but also have almost the same requirement, here are 3 questions I need to answer in the end of weekend.
- Which bugs I worked this week?
- Which bugs I need to work next week?
- Which bugs are waiting me to fix?
It is better to have a way to always show bugs I am interesting for different purpose, so I start to write a script by using python-launchpadlib.
by the way, another needs is to find bugs and modify attribute(s) of each bug.
python-launchpad
Launchpad has a very friendly python library, I will not talk this too much, if you want to know the details of it, please check these websites.
- Launchpad API Help
- Get started with launchpadlib
- launchpadlib powerup
- lpshell – convenient launchpadlib script
lp-cli
lp-cli include several tools which is very small and has only one trivial purpose, that is users can use Unix pipeline to combine small tools to archive a complex task.
All work of process data of Launchpad can be simplified as the following
- get data from Launchpad
- get sub set of data by some conditions
- do something on each entry one or multiple times
- do something on the final result such as save as a file or print to console
Use Case 1
Create a text file contains bugs I worked is modified this week.
1 2 3 4 | |
- lp-searchbugs people ossug-hychen – find related bugtask of a user that login name is ossug-hychen
- lp-view modified_thisweek – get bugs worked by ossug-hychen before and modified this week
- lp-print buglist – then print the result in buglist style
- lp-save bugs_worked_this_week.txt – then save the result as a file
the view modified_thisweek means the bug worked by anyone since 7 days before as defined here
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
so if you want to know which bugs is really worked by yourself, we need another tool to limit the scope of result which is not done yet.
Use Case 2
reassign bugs I fixed in project ABC to another people, some time is QA
1 2 | |
- first command is to get bugs fixed by me in project ABC
- second command is to reassign each bugs to a QA guy
Available Commands
- lp-searchbugs - type:
Fetcher, generate a task of searching bugs in launchpad - lp-view - type:
View, add extra args to received task (like lp-searchbugs) - lp-print - type:
Task Action, execute received task and print the result - lp-save - type:
Action, save STDIN to a file - lp-mybugs - shortcut of
lp-searchbugs people $your-lp-login-id
because accessing Launchpad takes a lot of time, so the real data fetching
work is only executed in Task Action command in my design.
[update]
Tim Chen told me a cool idea I never think about that you can save STDOUT of lp-searchbugs , lp-mybugs or lp-view to a text file
1
| |
next time when you want to get the result, just type
1
| |
this behavior is similar what lp-view does, so now you can create any view you want!
Installation
1 2 3 | |
Thanks
The idea of lp-cli is inspired by my friend Thinker Li’s image downloading tool