Skip to main content

concinno-skills-dev

Developer-platform agent skills for Concinno. Thin wrappers around the REST / GraphQL layer of each developer tool, exposed as Concinno Tool classes that auto-mount into concinno.tools.registry.ToolRegistry via entry-points.

Status

MVP (0.1.0) — five tools covering the four most-used developer issue / PR trackers:

Tool class Platform Underlying SDK / API Licence
GithubIssue GitHub githubkit MIT
GithubPullRequest GitHub githubkit MIT
JiraIssue Jira jira (jira-python) BSD-2-Clause
LinearIssue Linear httpx + GraphQL (no SDK) BSD-3 (httpx)
GitlabIssue GitLab httpx + REST v4 (no SDK) BSD-3 (httpx)

Licence discipline

  • PyGithub is LGPL-3.0 → we deliberately use githubkit (MIT) instead.
  • python-gitlab is LGPL-3.0 → we wrap the GitLab REST v4 API with httpx directly; no copy-left dependency enters the Concinno ecosystem through this package.

Install

pip install concinno-skills-dev

All four runtime deps (githubkit, jira, httpx, concinno) are pulled in automatically.

Credentials

Each platform's token lives under a well-known key in the Concinno CredentialStore, which reads in order:

  1. Process runtime overrides via CredentialStore.set(...).
  2. Env var CONCINNO_CRED_<UPPER_KEY>.
  3. ~/.concinno/credentials.json.
Key Env var Used by
github_token CONCINNO_CRED_GITHUB_TOKEN GithubIssue, GithubPullRequest
jira_server CONCINNO_CRED_JIRA_SERVER JiraIssue
jira_email CONCINNO_CRED_JIRA_EMAIL JiraIssue
jira_api_token CONCINNO_CRED_JIRA_API_TOKEN JiraIssue
linear_api_key CONCINNO_CRED_LINEAR_API_KEY LinearIssue
gitlab_token CONCINNO_CRED_GITLAB_TOKEN GitlabIssue
gitlab_url CONCINNO_CRED_GITLAB_URL (optional) GitlabIssue (self-hosted)

Example ~/.concinno/credentials.json:

{
  "github_token": "ghp_...",
  "jira_server": "https://acme.atlassian.net",
  "jira_email": "you@acme.com",
  "jira_api_token": "...",
  "linear_api_key": "lin_api_...",
  "gitlab_token": "glpat-...",
  "gitlab_url": "https://gitlab.com"
}

If a token is missing the tool returns {"error": "no <service> credentials — set via CredentialStore or env ..."} rather than crashing.

Usage via Concinno ToolRegistry

With CONCINNO_LOAD_PLUGINS=1, the default registry auto-mounts every tool:

import os
os.environ["CONCINNO_LOAD_PLUGINS"] = "1"

from concinno.tools.registry import get_default_registry

reg = get_default_registry()
assert {
    "GithubIssue", "GithubPullRequest",
    "JiraIssue", "LinearIssue", "GitlabIssue",
} <= set(reg.list_deferred())

gh = reg.get("GithubIssue")
gh.call(action="list", repo="aiking931931/concinno", state="open")

Direct Python usage

from concinno_skills_dev import (
    GithubIssue,
    GithubPullRequest,
    JiraIssue,
    LinearIssue,
    GitlabIssue,
)

GithubIssue().call(action="list", repo="aiking931931/concinno")
GithubPullRequest().call(action="create", repo="o/r",
                         title="feat", head="feat-x", base="main")
JiraIssue().call(action="search", jql="project=PROJ AND status=Open")
LinearIssue().call(action="query", limit=25)
GitlabIssue().call(action="list", project="group/repo", state="opened")

All tools return {"ok": True, ...} on success or {"error": "..."} on failure — same shape as Concinno built-in tools. No exceptions escape the call() surface.

Concurrency

All five tools set is_concurrency_safe = False. Developer-platform rate limits (GitHub 5 000/hr, Linear complexity-budget, Jira per-plan, GitLab 2 000/min) make serial calls the sane default; the Concinno scheduler honours this automatically.

Licence

Apache-2.0. See LICENSE in the Concinno monorepo.

Metadata

Release files for concinno-skills-dev 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for concinno-skills-dev 0.1.0
File Size Uploaded
concinno_skills_dev-0.1.0.tar.gz 46.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for concinno-skills-dev 0.1.0
File Interpreter ABI Platform
concinno_skills_dev-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 67.6 kB

Release files / concinno_skills_dev-0.1.0.tar.gz

Download URL concinno_skills_dev-0.1.0.tar.gz
Size 46.3 kB
Tags Source
SHA-256 checksum
How to use checksums
5184350283276dc115304f93c26dd143b11d9c271bacbab511825d9a26e1a657
BLAKE2b-256 checksum
How to use checksums
ee69b2e71146eee872a0e424d7a9360793e5b47aef2dce69183a8eb23c11707a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / concinno_skills_dev-0.1.0-py3-none-any.whl

Download URL concinno_skills_dev-0.1.0-py3-none-any.whl
Size 21.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
69f4e03c7cd995da140ea8dabfd74a231c5d8dbb9df1960484e8b90f24eb6252
BLAKE2b-256 checksum
How to use checksums
8158c37486765a3c6e69bd7e3a491533f3216cd8d719e48980507dce7c7dd0f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page