An open API service indexing awesome lists of open source software.

https://github.com/grokify/go-aha

Go SDK for Aha! (aha.io).
https://github.com/grokify/go-aha

aha api-client client-library go golang

Last synced: 4 months ago
JSON representation

Go SDK for Aha! (aha.io).

Awesome Lists containing this project

README

          

# Go API Client for Aha! (aha.io)

[![Build Status][build-status-svg]][build-status-url]
[![Go Report Card][goreport-svg]][goreport-url]
[![Docs][docs-godoc-svg]][docs-godoc-url]
[![License][license-svg]][license-url]

[build-status-svg]: https://github.com/grokify/go-aha/actions/workflows/ci.yaml/badge.svg?branch=master
[build-status-url]: https://github.com/grokify/go-aha/actions/workflows/ci.yaml
[goreport-svg]: https://goreportcard.com/badge/github.com/grokify/go-aha
[goreport-url]: https://goreportcard.com/report/github.com/grokify/go-aha
[docs-godoc-svg]: https://pkg.go.dev/badge/github.com/grokify/go-aha
[docs-godoc-url]: https://pkg.go.dev/github.com/grokify/go-aha/v3
[license-svg]: https://img.shields.io/badge/license-MIT-blue.svg
[license-url]: https://github.com/grokify/go-aha/blob/master/LICENSE

Go SDK and CLI for the [Aha! Roadmap Service](https://www.aha.io/) API.

## Features

- **SDK** - Go client libraries generated from OpenAPI specification
- **CLI** - Command-line interface for common operations
- **Reports** - Generate idea-feature-release reports with XLSX/Markdown export
- **Helpers** - High-level functions for common workflows

## Documentation

Full documentation is available at [https://grokify.github.io/go-aha](https://grokify.github.io/go-aha) or in the [`docs/`](docs/) directory.

## Overview

This module provides Go client libraries for the Aha! API, generated using [OpenAPI Generator](https://github.com/OpenAPITools/openapi-generator).

### Packages

| Package | Description |
|---------|-------------|
| [`oag7/aha`](oag7/aha) | API client generated by OpenAPI Generator v7 (recommended) |
| [`oag7/client`](oag7/client) | Helper functions for creating configured clients |
| [`oag7/ideas`](oag7/ideas) | High-level idea helpers and report generation |
| [`oag7/features`](oag7/features) | Feature helper utilities |
| [`oag4/aha`](oag4/aha) | API client generated by OpenAPI Generator v4 (legacy) |

### Supported APIs

The `oag7/aha` client supports the following API operations:

| API | Operations |
|-----|------------|
| **Features** | `GetFeature`, `GetFeatures`, `GetReleaseFeatures` |
| **Ideas** | `GetIdea`, `ListIdeas` |
| **Products** | `GetProduct`, `GetProducts` |
| **Releases** | `GetRelease`, `GetProductReleases`, `UpdateProductRelease` |

## Installation

### CLI

```bash
go install github.com/grokify/go-aha/v3/cmd/aha@latest
```

### SDK

```bash
go get github.com/grokify/go-aha/v3
```

## CLI Quick Start

```bash
# Set credentials
export AHA_DOMAIN="mycompany"
export AHA_API_KEY="your-api-key"

# List ideas
aha ideas list --per-page 10

# Generate a report of all ideas with features
aha report idea-feature --all -f xlsx -o ideas.xlsx
```

See the [CLI Reference](docs/cli/overview.md) for complete documentation.

## SDK Quick Start

```go
package main

import (
"context"
"fmt"
"log"

"github.com/grokify/go-aha/v3/oag7/aha"
"github.com/grokify/go-aha/v3/oag7/client"
)

func main() {
// Create a configured client
cfg, err := client.NewConfiguration("your-subdomain", "your-api-token")
if err != nil {
log.Fatal(err)
}

// Create API client
apiClient := aha.NewAPIClient(cfg)

// List ideas
ideas, resp, err := apiClient.IdeasAPI.ListIdeas(context.Background()).
Sort("recent").
PerPage(10).
Execute()
if err != nil {
log.Fatal(err)
}

fmt.Printf("Status: %d, Ideas: %+v\n", resp.StatusCode, ideas)
}
```

## Examples

### oag7 Examples (Recommended)

- [`oag7/examples/features_get`](oag7/examples/features_get) - Get features
- [`oag7/examples/idea_feature_release`](oag7/examples/idea_feature_release) - Work with ideas, features, and releases

### oag4 Examples (Legacy)

- [`oag4/examples/get_features`](oag4/examples/get_features) - Get features
- [`oag4/examples/get_products`](oag4/examples/get_products) - Get products
- [`oag4/examples/get_feature`](oag4/examples/get_feature) - Get a single feature
- [`oag4/examples/initiatives`](oag4/examples/initiatives) - Get initiatives
- [`oag4/examples/update_release`](oag4/examples/update_release) - Update a release

## Additional Resources

- [OpenAPI Spec](codegen/openapi_spec.json) - The OpenAPI specification used for code generation
- [Aha! API Documentation](https://www.aha.io/api) - Official Aha! API reference

## Using curl

To retrieve an API response using curl:

```bash
curl -X GET "https://company.aha.io/api/v1/features/FEAT-1" \
-H "Authorization: Bearer "
```