
atlassianapi
Atlassian API integration for Jira and Confluence automation. Activate for Atlassian REST APIs, webhooks, and platform integration.
- Installs
- 67
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/thelobbi/claude --skill atlassianapi- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads atlassianapi automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Atlassian API Skill
Provides comprehensive Atlassian API integration capabilities for the Golden Armada AI Agent Fleet Platform.
When to Use This Skill
Activate this skill when working with:
- Jira REST API integration
- Confluence REST API integration
- Atlassian webhooks
- Automation and scripting
- Cross-platform synchronization
Authentication
API Token (Cloud)
```python import requests from requests.auth import HTTPBasicAuth
auth = HTTPBasicAuth('email@example.com', 'API_TOKEN') headers = { 'Accept': 'application/json', 'Content-Type': 'application/json' }
base_url = 'https://your-domain.atlassian.net' ```
Python Client Library
```python from atlassian import Jira, Confluence
jira = Jira( url='https://your-domain.atlassian.net', username='email@example.com', password='API_TOKEN', cloud=True )
confluence = Confluence( url='https://your-domain.atlassian.net', username='email@example.com', password='API_TOKEN', cloud=True ) ```
Jira REST API
Issues
```python
Create issue
response = requests.post( f'{base_url}/rest/api/3/issue', auth=auth, headers=headers, json={ 'fields': { 'project': {'key': 'GA'}, 'summary': 'Implement agent monitoring', 'description': { 'type': 'doc', 'version': 1, 'content': [ { 'type': 'paragraph', 'content': [ {'type': 'text', 'text': 'Description text'} ] } ] }, 'issuetype': {'name': 'Story'}, 'priority': {'name': 'High'}, 'labels': ['backend', 'monitoring'] } } )
Get issue
response = requests.get( f'{base_url}/rest/api/3/issue/GA-123', auth=auth, headers=headers ) issue = response.json()
Update issue
response = requests.put( f'{base_url}/rest/api/3/issue/GA-123', auth=auth, headers=headers, json={ 'fields': { 'summary': 'Updated summary' } } )
Transition issue
First, get available transitions
transitions = requests.get( f'{base_url}/rest/api/3/issue/GA-123/transitions', auth=auth, headers=headers ).json()
Then transition
requests.post( f'{base_url}/rest/api/3/issue/GA-123/transitions', auth=auth, headers=headers, json={'transition': {'id': '31'}} # ID from available transitions )
Add comment
requests.post( f'{base_url}/rest/api/3/issue/GA-123/comment', auth=auth, headers=headers, json={ 'body': { 'type': 'doc', 'version': 1, 'content': [ { 'type': 'paragraph', 'content': [ {'type': 'text', 'text': 'Comment text'} ] } ] } } ) ```
JQL Search
```python
Search issues
jql = 'project = GA AND status = "In Progress" ORDER BY created DESC' response = requests.get( f'{base_url}/rest/api/3/search', auth=auth, headers=headers, params={ 'jql': jql, 'maxResults': 50, 'fields': 'summary,status,assignee,priority' } ) results = response.json()
for issue in results['issues']: print(f"{issue['key']}: {issue['fields']['summary']}") ```
Sprints and Boards
```python
Get boards
boards = requests.get( f'{base_url}/rest/agile/1.0/board', auth=auth, headers=headers ).json()
Get sprints for a board
board_id = 1 sprints = requests.get( f'{base_url}/rest/agile/1.0/board/{board_id}/sprint', auth=auth, headers=headers ).json()
Get issues in sprint
sprint_id = 10 issues = requests.get( f'{base_url}/rest/agile/1.0/sprint/{sprint_id}/issue', auth=auth, headers=headers ).json()
Move issues to sprint
requests.post( f'{base_url}/rest/agile/1.0/sprint/{sprint_id}/issue', auth=auth, headers=headers, json={'issues': ['GA-123', 'GA-124']} ) ```
Confluence REST API
Pages
```python
Create page
response = requests.post( f'{base_url}/wiki/rest/api/content', auth=auth, headers=headers, json={ 'type': 'page', 'title': 'Agent Architecture', 'space': {'key': 'GA'}, 'body': { 'storage': { 'value': '<h1>Overview</h1><p>Content here...</p>', 'representation': 'storage' } } } )
Get page
page = requests.get( f'{base_url}/wiki/rest/api/content/12345', auth=auth, headers=headers, params={'expand': 'body.storage,version'} ).json()
Update page
requests.put( f'{base_url}/wiki/rest/api/content/12345', auth=auth, headers=headers, json={ 'type': 'page', 'title': 'Updated Title', 'body': { 'storage': { 'value': '<h1>Updated Content</h1>', 'representation': 'storage' } }, 'version': {'number': page['version']['number'] + 1} } )
Search pages
results = requests.get( f'{base_url}/wiki/rest/api/content/search', auth=auth, headers=headers, params={'cql': 'space = GA AND text ~ "agent"'} ).json() ```
Webhooks
Jira Webhook Handler
```python from flask import Flask, request
app = Flask(name)
@app.route('/webhooks/jira', methods=['POST']) def handle_jira_webhook(): event = request.json event_type = event.get('webhookEvent')
if event_type == 'jira:issue_created':
issue = event['issue']
handle_issue_created(issue)
elif event_type == 'jira:issue_updated':
issue = event['issue']
changelog = event.get('changelog', {})
handle_issue_updated(issue, changelog)
elif event_type == 'sprint_started':
sprint = event['sprint']
handle_sprint_started(sprint)
return {'status': 'ok'}
def handle_issue_created(issue): print(f"Issue created: {issue['key']}")
def handle_issue_updated(issue, changelog): for item in changelog.get('items', []): if item['field'] == 'status': print(f"Issue {issue['key']} status changed: {item['fromString']} -> {item['toString']}") ```
Register Webhook
```python
Register Jira webhook
webhook = requests.post( f'{base_url}/rest/webhooks/1.0/webhook', auth=auth, headers=headers, json={ 'name': 'Golden Armada Integration', 'url': 'https://your-app.com/webhooks/jira', 'events': [ 'jira:issue_created', 'jira:issue_updated', 'sprint_started', 'sprint_closed' ], 'filters': { 'issue-related-events-section': 'project = GA' } } ) ```
Automation Recipes
Sync GitHub PR to Jira
```python async def sync_pr_to_jira(pr_data: dict): # Extract Jira issue key from branch name (e.g., feature/GA-123-add-feature) branch = pr_data['head']['ref'] match = re.search(r'(GA-\d+)', branch) if not match: return
issue_key = match.group(1)
# Add comment with PR link
jira.add_comment(
issue_key,
f"PR opened: [{pr_data['title']}]({pr_data['html_url']})"
)
# Transition to "In Review" if PR is ready
if not pr_data.get('draft'):
jira.transition_issue(issue_key, 'In Review')
```
Auto-create Release Notes
```python def generate_release_notes(version: str, project_key: str = 'GA'): # Get all issues in the release jql = f'project = {project_key} AND fixVersion = "{version}" ORDER BY issuetype' issues = jira.jql(jql)['issues']
# Group by type
features = [i for i in issues if i['fields']['issuetype']['name'] == 'Story']
bugs = [i for i in issues if i['fields']['issuetype']['name'] == 'Bug']
# Generate markdown
notes = f"# Release {version}\n\n"
notes += "## Features\n"
for issue in features:
notes += f"- [{issue['key']}] {issue['fields']['summary']}\n"
notes += "\n## Bug Fixes\n"
for issue in bugs:
notes += f"- [{issue['key']}] {issue['fields']['summary']}\n"
# Create Confluence page
confluence.create_page(
space='GA',
title=f'Release Notes - {version}',
body=markdown_to_confluence(notes),
parent_id=RELEASE_NOTES_PARENT_ID
)
```
Golden Armada Commands
```bash
Sync with Atlassian
/atlassian-sync --jira --confluence
Create Jira issue from template
/jira-create --type story --template agent-feature
Update Confluence docs from code
/confluence-publish --from docs/ --space GA ```
FAQ
What does the atlassianapi skill do?
Atlassian API integration for Jira and Confluence automation. Activate for Atlassian REST APIs, webhooks, and platform integration.
How do I install atlassianapi?
Run npx skills add https://github.com/thelobbi/claude --skill atlassianapi in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/atlassianapi/ (personal) or .claude/skills/atlassianapi/ (project).
Which AI agents can use atlassianapi?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is atlassianapi safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains atlassianapi?
It is published by thelobbi in thelobbi/claude. It has 67 recorded installs.
More from thelobbi/claude
vision-multimodal
thelobbi/claude
Vision and multimodal capabilities for Claude including image analysis, PDF processing, and document understanding. Activate for image input, base64 encoding, multiple images, and visual analysis.
design-system
thelobbi/claude
Open the skill to read its SKILL.md instructions.
authentication
thelobbi/claude
Authentication and authorization including JWT, OAuth2, OIDC, sessions, RBAC, and security analysis. Activate for login, auth flows, security audits, threat modeling, access control, and identity management.
Popular backend & apis skills
find-skills
vercel-labs/skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
entra-app-registration
microsoft/azure-skills
Guides Microsoft Entra ID app registration, OAuth 2.0 authentication, and MSAL integration. USE FOR: create app registration, register Azure AD app, configure OAuth, set up authentication, add API permissions, generate service principal, MSAL example, console app auth, Entra ID setup, Azure AD authentication. DO NOT USE FOR: Key Vault secrets (use azure-keyvault-expiration-audit), general Azure resource security guidance.
google-agents-cli-adk-code
google/agents-cli
This skill should be used when the user wants to "write agent code", "build an agent with ADK", "add a tool", "create a callback", "define an agent", "use state management" — in a project that needs ADK (Agent Development Kit) API patterns and code examples. It provides a quick reference for agent types, tool definitions, orchestration patterns, callbacks, state management, the graph Workflow API, and reference recipes to study. Do NOT use for scaffolding (use google-agents-cli-scaffold) or deployment (use google-agents-cli-deploy).
embedded-captions
heygen-com/hyperframes
Add captions or subtitles to an existing single-subject talking-head video without editing the footage. Use for plain verbatim captions, cinematic captions embedded behind the subject, VFX captions, “炸/特效/酷炫字幕,” or a named identity from the 35-style catalog. Route by visual identity, not by backend engine. The quiet anchor rail is the default; embed every word only when the user explicitly wants a fully cinematic treatment. The workflow runs locally end to end, including transcription and subject matting; split multi-shot footage before applying it.
entra-agent-id
microsoft/azure-skills
Provision Microsoft Entra Agent Identity Blueprints, BlueprintPrincipals, and per-instance Agent Identities via Microsoft Graph, and configure OAuth 2.0 token exchange (fmipath, OBO, cross-tenant) including the Microsoft Entra SDK for AgentID sidecar. USE FOR: Agent Identity Blueprint, BlueprintPrincipal, agent OAuth, fmipath token exchange, agent OBO, Workload Identity Federation for agents, polyglot agent auth, Microsoft.Identity.Web.AgentIdentities. DO NOT USE FOR: standard Entra app registration (use entra-app-registration), Microsoft Foundry agent authoring (use microsoft-foundry).
neon
neondatabase/agent-skills
Overview of Neon, a complete set of cloud backend primitives around Lakebase Postgres: Auth, Object Storage, Functions, the AI Gateway, and Realtime. Start here to choose Neon for undecided login, files, APIs, and LLM calls, set up the CLI or MCP server, and follow the branch-first workflow. Use when building an app or backend on Neon, or when "Neon" or "Lakebase Postgres" is mentioned. Child skill neon-postgres wins for an existing DATABASEURL, SQL, schema, inspect, or search. Child skill neon-auth wins for login, users, sessions, identity routing, and Managed Better Auth setup. Child skill neon-realtime wins for live queries in reactive apps and agents. Also use for object storage, S3, buckets, serverless functions, function triggers, cron, AI gateway, LLM calls, realtime, logs, Loki, Grafana, observability, postgres, database, backend, Claimable Neon, neon.new, or a no-signup database.