Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ Versions follow [Semantic Versioning](https://semver.org). The newest entry must
match `metadata.version` in `SKILL.md` and `__version__`/`VERSION` in both
scripts (checked by `tests/test_skill_package.py`).

## [2.1.1] - 2026-10-28

### Changed

- Made the project status explicit: personal project, not for production use, not endorsed or supported by Cisco or Splunk. Stated in the README banner, `SUPPORT.md` and a new Status section in `SKILL.md`, with a test that keeps all three in place.

## [2.1.0] - 2026-10-28

Aligned with the conventions of the official [splunk-agent-skills](https://github.com/splunk/splunk-agent-skills).
Expand Down
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# splunkbase-skill

> [!WARNING]
> **Personal project, not for production use.** This is not a Splunk or Cisco
> product and is **not endorsed or supported by Cisco or Splunk**. It uses
> Splunkbase's undocumented API and is provided "as is" under the
> [Apache-2.0](LICENSE) license, without warranty. See [SUPPORT.md](SUPPORT.md).

A Claude Skill that resolves Splunkbase apps to their current download URLs (optionally for a given Splunk version) and finds app IDs by name. Built for generating `SPLUNK_APPS_URL` in `splunk/splunk` Docker Compose setups.

## Install
Expand Down
9 changes: 8 additions & 1 deletion SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: splunkbase-skill
description: Resolve Splunkbase apps to their current download URLs, optionally for a specific Splunk version, and find app IDs by name. Use when the user wants the latest release URL of a Splunkbase app or add-on, needs SPLUNK_APPS_URL for splunk/splunk Docker Compose or Kubernetes deployments, asks which Splunkbase release supports their Splunk version, or gives a splunkbase.splunk.com link or app ID. Route app lifecycle, upgrade, or removal advice and general product questions to their owning workflows.
license: Apache-2.0
metadata:
version: 2.1.0
version: 2.1.1
splunk:
domain: splunkbase-release-resolution
products:
Expand Down Expand Up @@ -37,6 +37,13 @@ Resolve Splunkbase apps to exact, current release URLs by running the bundled
script. Never write a release URL or version from memory: versions change
constantly and some releases have unusual names.

## Status

Personal project, not meant for production use. It is not a Splunk or Cisco
product and is not endorsed or supported by Cisco or Splunk. It relies on
Splunkbase's undocumented API, so treat every result as something to verify.
When the output feeds a production system, say so and recommend review first.

## Prerequisites

- Python 3.9+ (standard library only) or `curl` and `jq` for the bash fallback.
Expand Down
17 changes: 13 additions & 4 deletions SUPPORT.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,17 @@
# Support

This is a personal, unofficial project. It is not a Splunk product and is not
covered by any Splunk support contract. It uses Splunkbase's undocumented JSON
API, which can change without notice; a weekly workflow checks for drift.
This is a personal project, developed and maintained on its own time.

Questions and bugs: open a GitHub issue. For supported Splunk products, see
- **Not for production use.** Use it for labs, demos and development
environments, and review the output before relying on it anywhere else.
- **Not endorsed or supported by Cisco or Splunk.** It is not a Splunk or
Cisco product, and no Cisco or Splunk support contract, including Splunk
Support cases, covers it.
- **Unofficial API.** It uses Splunkbase's undocumented JSON API, which can
change without notice; a weekly workflow checks for drift.
- **No warranty.** It is provided "as is" under the [Apache-2.0](LICENSE)
license.

Questions and bugs: open a GitHub issue; responses are best effort. For
supported Splunk products, see
[Working with Splunk Support](https://www.splunk.com/en_us/resources/working-with-splunk-support.html).
2 changes: 1 addition & 1 deletion scripts/get_splunkbase_urls.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

set -euo pipefail

VERSION="2.1.0"
VERSION="2.1.1"
BASE_URL="${SPLUNKBASE_BASE_URL:-https://splunkbase.splunk.com}"
BASE_URL="${BASE_URL%/}"
TIMEOUT=10
Expand Down
2 changes: 1 addition & 1 deletion scripts/splunkbase_urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
from dataclasses import asdict, dataclass, field
from typing import Any, Optional

__version__ = "2.1.0"
__version__ = "2.1.1"

DEFAULT_BASE_URL = "https://splunkbase.splunk.com"
USER_AGENT = f"splunkbase-skill/{__version__}"
Expand Down
8 changes: 8 additions & 0 deletions tests/test_skill_package.py
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,14 @@ def test_license_file_matches_declared_license_and_ships(self):
self.assertIn("Version 2.0, January 2004", text)
self.assertNotRegex((ROOT / ".gitattributes").read_text(), r"(?m)^/LICENSE\s+export-ignore")

def test_personal_project_disclaimer_is_everywhere_users_look(self):
for name in ("README.md", "SUPPORT.md", "SKILL.md"):
text = " ".join((ROOT / name).read_text().split()).lower()
with self.subTest(file=name):
self.assertIn("personal project", text)
self.assertIn("production", text)
self.assertRegex(text, r"not endorsed or supported by cisco")

def test_no_hard_coded_release_versions_in_skill_instructions(self):
# Versions rot; the skill must tell Claude to look them up instead.
text = self.skill_md.read_text()
Expand Down
Loading