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
PyGithubis LGPL-3.0 → we deliberately usegithubkit(MIT) instead.python-gitlabis LGPL-3.0 → we wrap the GitLab REST v4 API withhttpxdirectly; 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:
- Process runtime overrides via
CredentialStore.set(...). - Env var
CONCINNO_CRED_<UPPER_KEY>. ~/.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)
| File | Size | Uploaded | |
|---|---|---|---|
| concinno_skills_dev-0.1.0.tar.gz | 46.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|