Skip to content
Back to skills

Launchpad

ASecurity

Interact with Canonical's Launchpad platform via the Launchpad API (api.launchpad.net) using the lp-api CLI tool. Use when working with Ubuntu/Debian packages, bugs, builds, people, projects, or any Launchpad API resources. Triggered by mentions of Launchpad API, Ubuntu development, package builds, or bug tracking.

  • 666 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added February 9, 2026
documentationpythonbashgitapici/cddocumentation

Works with

  • cli
  • api

Security analysis

A96/100
  • mediumUses curl or wget to download content

Pro shows the line behind each finding and how to fix it

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill launchpad --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Launchpad?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Launchpad
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-launchpad/badge)](https://www.skillsdirectory.com/skills/majiayu000-launchpad)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: launchpad
description: Interact with Canonical's Launchpad platform via the Launchpad API (api.launchpad.net) using the lp-api CLI tool. Use when working with Ubuntu/Debian packages, bugs, builds, people, projects, or any Launchpad API resources. Triggered by mentions of Launchpad API, Ubuntu development, package builds, or bug tracking.
metadata:
  version: "1.2.8"
---

# Launchpad API

## Overview

This skill enables interaction with Canonical's Launchpad platform (https://launchpad.net) through direct API calls using the `lp-api` command-line tool. It provides full CRUD capabilities (Create, Read, Update, Delete) for querying and managing bugs, people, projects, builds, and other Launchpad resources via the official API at https://api.launchpad.net/devel.html.

**API-First Approach:** This skill focuses on direct API interaction using `lp-api`, not the web UI or Python launchpadlib. All operations are performed via HTTP requests to api.launchpad.net.

**Important Note:** All `lp-api` commands return JSON responses except using with ws.show==total_size, or using download and pipe subcommands. Parse these outputs to extract meaningful information.

## Installation & Troubleshooting

If `lp-api` is not found, use the GitHub API to find and download the correct binary for your system.

**1. Find download URL:**
```bash
# Get the browser_download_url for your OS (linux/darwin/windows) and Architecture (amd64/arm64)
# Example for Linux AMD64:
curl -s https://api.github.com/repos/fourdollars/lp-api/releases | \
  jq -r '.[0].assets[] | select(.name | endswith("linux-amd64.tar.gz")) | .browser_download_url'
```

**2. Download and Install:**
```bash
curl -L -o lp-api.tar.gz <URL>
tar -xzf lp-api.tar.gz
chmod +x lp-api
mkdir -p bin
mv lp-api bin/
export PATH=$PWD/bin:$PATH
```

## Authentication

The tool handles OAuth authentication automatically:

1. **Environment Variable** (preferred for CI/CD):
   ```bash
   export LAUNCHPAD_TOKEN="oauth_token:oauth_secret:consumer_key"
   ```

2. **Config File** (for interactive use):
   - Stored at `.lp-api.toml` in the current directory (recommended)
   - Use `-conf .lp-api.toml` to specify the location
   - Created automatically on first run via OAuth flow
   - User prompted to authorize at launchpad.net

## Resources

Refer to the documentation in `references/` for detailed usage, patterns, and workflows:

- **basics.md**: **START HERE**. CLI usage, core operations (GET/PATCH/POST), URL structure.
- **workflow.md**: Common workflows combining multiple operations (Bug triage, Batch updates, Build monitoring).
- **bugs.md**: Comprehensive guide to bug tracking, searching, and attachments.
- **git.md**: Guide to Git repositories, recipes, and merge proposal reviews.
- **livefs.md**: Guide to monitoring and managing LiveFS (ISO) builds.
- **archive.md**: Guide to working with archives (PPAs) and publishing.
- **package-sets.md**: Guide to managing package sets.
- **people.md**: Guide to managing people, teams, and memberships.
- **project.md**: Guide to managing projects, milestones, and releases.
- **series.md**: Guide to working with Launchpad series (distro releases).

## Quick Tips

### Search Bugs Across ALL Projects

To find bugs you're involved with across all projects and distributions, use `searchTasks` on the person resource:

```bash
# Get your person link
ME_LINK=$(lp-api get people/+me | jq -r '.self_link')

# All bugs assigned to you (across all projects)
lp-api get people/+me ws.op==searchTasks assignee==$ME_LINK

# Filter by status
lp-api get people/+me ws.op==searchTasks assignee==$ME_LINK status=="In Progress"

# Bugs you reported, subscribed to, or have activity on
lp-api get people/+me ws.op==searchTasks bug_reporter==$ME_LINK
lp-api get people/+me ws.op==searchTasks bug_subscriber==$ME_LINK
lp-api get people/+me ws.op==searchTasks bug_commenter==$ME_LINK  # includes any activity
lp-api get people/+me ws.op==searchTasks affected_user==$ME_LINK
```

**Note:** `bug_commenter` includes any bug activity (comments, status changes, field updates), not just message comments.

This is equivalent to the web UI at `https://launchpad.net/~username/+assignedbugs`.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.