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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

concinno_skills_dev-0.1.0.tar.gz (46.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

concinno_skills_dev-0.1.0-py3-none-any.whl (21.2 kB view details)

Uploaded Python 3

File details

Details for the file concinno_skills_dev-0.1.0.tar.gz.

File metadata

  • Download URL: concinno_skills_dev-0.1.0.tar.gz
  • Upload date:
  • Size: 46.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for concinno_skills_dev-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5184350283276dc115304f93c26dd143b11d9c271bacbab511825d9a26e1a657
MD5 54c9ea18be28d86adb76f4eb2b096ec5
BLAKE2b-256 ee69b2e71146eee872a0e424d7a9360793e5b47aef2dce69183a8eb23c11707a

See more details on using hashes here.

File details

Details for the file concinno_skills_dev-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for concinno_skills_dev-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 69f4e03c7cd995da140ea8dabfd74a231c5d8dbb9df1960484e8b90f24eb6252
MD5 d34708aac46c822d46268605d39ee40d
BLAKE2b-256 8158c37486765a3c6e69bd7e3a491533f3216cd8d719e48980507dce7c7dd0f4

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page