Developer platform agent skills (GitHub/Jira/Linear/GitLab) for Concinno — permissive-licensed SDKs (MIT/BSD) + httpx REST, no LGPL/GPL.
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5184350283276dc115304f93c26dd143b11d9c271bacbab511825d9a26e1a657
|
|
| MD5 |
54c9ea18be28d86adb76f4eb2b096ec5
|
|
| BLAKE2b-256 |
ee69b2e71146eee872a0e424d7a9360793e5b47aef2dce69183a8eb23c11707a
|
File details
Details for the file concinno_skills_dev-0.1.0-py3-none-any.whl.
File metadata
- Download URL: concinno_skills_dev-0.1.0-py3-none-any.whl
- Upload date:
- Size: 21.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69f4e03c7cd995da140ea8dabfd74a231c5d8dbb9df1960484e8b90f24eb6252
|
|
| MD5 |
d34708aac46c822d46268605d39ee40d
|
|
| BLAKE2b-256 |
8158c37486765a3c6e69bd7e3a491533f3216cd8d719e48980507dce7c7dd0f4
|