Skip to main content

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

  • 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.

Project details


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.

Supported by

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