SDKs overview

Zube's approach to developer tools primarily revolves around its direct integration with GitHub and its official API documentation. While Zube does not maintain a broad suite of official, language-specific SDKs in the conventional sense, its API is designed to be accessible for custom integrations. The platform's core functionality extends GitHub's native issue tracking with features like Kanban boards and sprint planning as detailed on its homepage. Developers seeking to automate workflows or build custom front-ends often interact directly with the Zube REST API.

The API facilitates operations such as creating and updating issues, managing epics and sprints, and accessing user data. It employs standard HTTP methods and JSON payloads. Authentication typically involves API tokens, which can be generated within the Zube application settings. For those preferring a structured library, community-driven projects have emerged to wrap the API in various programming languages, offering a more idiomatic development experience.

Official SDKs by language

Zube's direct official SDK support is limited, with a strong emphasis on its REST API for programmatic interaction. While a comprehensive set of language-specific SDKs analogous to major cloud providers (e.g., AWS SDKs) is not provided, Zube does offer tools that interact with its ecosystem.

The primary official developer tool is the Zube Ruby CLI, which allows for command-line interaction with Zube projects and issues. For other languages, direct HTTP requests to the Zube API are the standard approach, though community libraries exist.

Official Developer Tools

Language Package/Tool Maturity Description
Ruby zube-cli Official, Maintained A command-line interface for interacting with Zube accounts, projects, and issues.
REST API Direct HTTP calls Official, Maintained The foundational API for all Zube programmatic interactions, accessible from any language.

Installation

Installation methods vary depending on whether you are using the official Ruby CLI or a community-developed library, or if you are integrating directly with the REST API. For direct API integration, no installation is explicitly required beyond your chosen HTTP client library (e.g., Axios for JavaScript, Requests for Python).

Ruby CLI

The official Zube CLI can be installed as a Ruby gem. Ensure you have Ruby installed on your system.

gem install zube-cli

After installation, you will need to configure the CLI with your Zube API token. This is typically done by setting an environment variable or using a configuration file, as described in the Zube API authentication guide.

Python (Community Library Example)

For community Python libraries, installation usually involves pip. A common approach is to use a package like requests to interact directly with the REST API, or to install a wrapper library if one is available and actively maintained.

pip install requests

If a community Python Zube client exists (check PyPI), its installation would follow a similar pattern:

pip install zube-python-client # Example, package name may vary

Node.js (Community Library Example)

Node.js community libraries or direct API integrations typically use npm or yarn for package management.

npm install axios # For direct API interaction

If a community Node.js Zube client exists, its installation would be:

npm install zube-node-client # Example, package name may vary

Quickstart example

This quickstart demonstrates how to fetch a list of Zube issues using Python by making a direct HTTP request to the Zube API. This approach is highly flexible and applicable across various programming languages by adapting the HTTP client.

Python Example: Fetching Zube Issues

Before running, replace YOUR_API_TOKEN with your actual Zube API token and YOUR_PROJECT_ID with the ID of the Zube project you want to query. Your API token can be generated from your Zube account settings as per Zube's documentation.

import requests
import os

# --- Configuration ---
# It's recommended to store API tokens securely, e.g., in environment variables
ZUBE_API_TOKEN = os.getenv("ZUBE_API_TOKEN", "YOUR_API_TOKEN")
ZUBE_BASE_URL = "https://api.zube.io/api/v2"
PROJECT_ID = "YOUR_PROJECT_ID" # Find this in Zube project settings or URL

# --- API Request ---
headers = {
    "Authorization": f"Token token={ZUBE_API_TOKEN}",
    "Content-Type": "application/json"
}

# Endpoint to fetch issues for a specific project
url = f"{ZUBE_BASE_URL}/projects/{PROJECT_ID}/issues"

try:
    response = requests.get(url, headers=headers)
    response.raise_for_status() # Raise HTTPError for bad responses (4xx or 5xx)

    issues = response.json()

    print(f"Successfully fetched {len(issues)} issues for Project ID: {PROJECT_ID}\n")
    if issues:
        for issue in issues[:5]: # Print details for first 5 issues
            print(f"  Issue ID: {issue.get('id')}")
            print(f"  Title: {issue.get('title')}")
            print(f"  Status: {issue.get('status')}")
            print(f"  Priority: {issue.get('priority')}\n")
    else:
        print("No issues found for this project.")

except requests.exceptions.HTTPError as http_err:
    print(f"HTTP error occurred: {http_err} - {response.text}")
except Exception as err:
    print(f"An error occurred: {err}")

This script initializes a requests session, sets up the necessary authorization header with your Zube API token, and then makes a GET request to the issues endpoint for a specified project. The JSON response is then parsed and a summary of the issues is printed to the console.

Community libraries

Given Zube's focus on a direct REST API, the community often develops and maintains libraries to simplify interactions. These libraries typically wrap the core API endpoints, providing language-specific constructs and error handling. While not officially supported by Zube, they can offer convenience and an improved developer experience.

Node.js

  • zube-js (example name): A potential Node.js wrapper for the Zube API, often found on npm. These libraries typically provide methods for common operations like creating issues, fetching project details, and managing users. Developers should search for zube on npm to find actively maintained packages.

Python

  • python-zube-client (example name): Python developers might find client libraries on PyPI that offer object-oriented access to Zube resources. These clients usually abstract away the HTTP request details, allowing developers to interact with Zube data using Python objects. Searching PyPI for zube is the best way to discover current options.

When considering community libraries, it is important to evaluate their maintenance status, documentation, and compatibility with the latest Zube API version. Checking the last commit date, issue tracker activity, and examples can help in selecting a reliable library. For critical applications, direct API integration provides the most control and ensures compatibility with official API changes.