This project contains command-line tools for interacting with various APIs without requiring an MCP server. The tools are designed to be used directly with GitHub Copilot and AI agents.
- GitLab: Git repository management and merge request operations
- GitLab Enhanced: Extended GitLab functionality with user-friendly commands
- BigIP: F5 BigIP management and load balancer operations
- Bugzilla: Bug tracking and issue management
- Confluence: Wiki and documentation management
- JIRA: Issue tracking and project management
Prerequisites & Setup
1. Environment Configuration
IMPORTANT: Before using any tools, you must configure authentication credentials.
Copy the example environment file:
cp .env.example .env
Edit the .env
file with your actual credentials:
# GitLab Configuration
GITLAB_URL=https://gitswarm.f5net.com
GITLAB_API_TOKEN=your_actual_gitlab_token_here
# JIRA Configuration
JIRA_URL=https://jira.f5net.com
JIRA_TOKEN=your_actual_jira_token_here
# Bugzilla Configuration
BUGZILLA_URL=https://bugzilla.olympus.f5net.com
BUGZILLA_TOKEN=your_actual_bugzilla_token_here
# BIG-IP Configuration
BIGIP_HOST=your_bigip_host_ip
BIGIP_USERNAME=admin
BIGIP_PASSWORD=your_bigip_password
# Confluence Configuration
CONFLUENCE_URL=https://docs.f5net.com
CONFLUENCE_TOKEN=your_actual_confluence_token_here
2. Token Generation Instructions
GitLab Token: Go to GitLab → User Settings → Access Tokens → Create token with scopes: api
, read_user
, read_repository
JIRA Token: Go to JIRA → User Profile → Security → API tokens → Create token
Bugzilla Token: Go to Bugzilla → Preferences → API Keys → Generate new API key
Confluence Token: Go to Confluence → User Profile → Security → API tokens → Create token
Make sure all tools are executable:
chmod +x tools/*
AI Agent Instructions
When a user requests any operation related to GitLab, BigIP, Bugzilla, Confluence, or JIRA, follow these steps:
- Always check that
.env
file is properly configured - If not configured, ask user to set up credentials first
- Use the appropriate tool from the
tools/
directory
- Output results to
temp.txt
to avoid terminal issues
- Parse URLs to extract necessary parameters (project IDs, issue numbers, etc.)
GitLab Operations
# Basic GitLab API access
./tools/gitlab "<api_endpoint>" [method] [data]
# Examples:
./tools/gitlab "/projects/17333/merge_requests/1285" GET
./tools/gitlab "/projects/17333/merge_requests/1285/approve" POST
./tools/gitlab "/projects?search=project_name" GET
GitLab Enhanced Operations
# User-friendly GitLab commands
./tools/gitlab_enhanced [command] [args]
# Examples:
./tools/gitlab_enhanced get_user_info
./tools/gitlab_enhanced list_projects
./tools/gitlab_enhanced get_merge_request_details <project_id> <mr_iid>
BigIP Operations
# F5 BigIP management
./tools/bigip "<api_endpoint>" [method] [data]
# Examples:
./tools/bigip "/mgmt/tm/ltm/virtual" GET
./tools/bigip "/mgmt/tm/ltm/pool" GET
./tools/bigip "/mgmt/tm/sys/version" GET
Bugzilla Operations
# Bug tracking operations
./tools/bugzilla "<api_endpoint>" [method] [data]
# Examples:
./tools/bugzilla "/bug/123456" GET
./tools/bugzilla "/bug?assigned_to=user@example.com" GET
./tools/bugzilla "/product" GET
Confluence Operations
# Wiki and documentation
./tools/confluence "<api_endpoint>" [method] [data]
# Examples:
./tools/confluence "/content" GET
./tools/confluence "/content/12345?expand=body.storage" GET
./tools/confluence "/content?title=Page Title" GET
JIRA Operations
# Issue tracking
./tools/jira "<api_endpoint>" [method] [data]
# Examples:
./tools/jira "/issue/PROJ-123" GET
./tools/jira "/project" GET
./tools/jira "/search?jql=assignee=currentUser()" GET
Common AI Agent Tasks
1. GitLab Merge Request Operations
# Approve MR: Extract project ID and MR ID from URL
# URL: https://gitswarm.f5net.com/mbip/modules/f5-eesv/-/merge_requests/1285
# Project: mbip/modules/f5-eesv → ID: 17333, MR: 1285
./tools/gitlab "/projects/17333/merge_requests/1285/approve" POST
# Get MR details
./tools/gitlab "/projects/17333/merge_requests/1285" GET
# Get MR changes
./tools/gitlab "/projects/17333/merge_requests/1285/changes" GET
2. URL Parsing Examples
- GitLab MR URL:
https://gitswarm.f5net.com/mbip/modules/f5-eesv/-/merge_requests/1285
- Project path:
mbip/modules/f5-eesv
- MR ID:
1285
- Find project numeric ID first:
./tools/gitlab "/projects?search=f5-eesv"
3. Error Handling
- All tools write output to
temp.txt
or return JSON responses
- Check HTTP status codes in responses
- Common errors: 401 (unauthorized), 403 (forbidden), 404 (not found)
4. Output Management
- Tools output to temporary files automatically
- Use
tail -n 20 temp.txt
to check latest results
- JSON responses are formatted for easy parsing
AI Agent Response Template
When performing operations, AI agents should:
- Acknowledge the request: "I'll help you [perform operation] using the [tool name] tool."
- Extract parameters: Parse URLs or extract IDs/names from user input
- Execute command: Run appropriate tool with correct parameters
- Check results: Verify operation success and provide summary
- Handle errors: Explain any issues and suggest solutions
Example AI Agent Workflow
User: "Approve merge request https://gitswarm.f5net.com/mbip/modules/f5-eesv/-/merge_requests/1285"
AI Agent Response:
- Extract project path:
mbip/modules/f5-eesv
and MR ID: 1285
- Find project numeric ID:
./tools/gitlab "/projects?search=f5-eesv"
- Approve MR:
./tools/gitlab "/projects/17333/merge_requests/1285/approve" POST
- Confirm approval status and report back to user
Universal AI Agent Prompt Template
For Users: How to Use This Project
If you have this project set up and want to use it with AI agents, simply copy and paste this prompt template along with your specific request:
You are an expert AI assistant with access to API tools for GitLab, BigIP, Bugzilla, Confluence, and JIRA operations.
**Available Tools Location**: `/Users/a.killamsetty/go/src/gitswarm.f5net.com/Uday/API-Tools-NoMCP/tools/`
**Available Tools**:
- `gitlab` - GitLab API operations (basic)
- `gitlab_enhanced` - GitLab operations with user-friendly commands
- `bigip` - F5 BigIP management
- `bugzilla` - Bug tracking operations
- `confluence` - Wiki and documentation management
- `jira` - Issue tracking and project management
**Environment Setup**: Authentication credentials are configured in `.env` file
**Output Management**: All tools write output to `temp.txt` to avoid terminal issues. Always check this file for results.
**Tool Usage Pattern**: `./tools/[tool_name] "[api_endpoint]" [method] [data]`
**Important Instructions**:
1. Always run commands from the project root directory
2. Use `cd /Users/a.killamsetty/go/src/gitswarm.f5net.com/Uday/API-Tools-NoMCP` first
3. Output results to `temp.txt` by appending `>> temp.txt 2>&1` to commands
4. Check `temp.txt` file contents after running commands
5. For GitLab URLs, extract project path and IDs, then find numeric project ID if needed
6. Handle errors gracefully and explain issues to user
**Your Task**: [INSERT YOUR SPECIFIC REQUEST HERE]
Examples of requests:
- "Approve merge request https://gitswarm.f5net.com/project/repo/-/merge_requests/123"
- "Get GitLab project details for project X"
- "Check BigIP pool status"
- "Search Confluence for documentation about Y"
- "Get JIRA issue details for PROJ-123"
- "List Bugzilla bugs assigned to user@example.com"
Quick Start Examples
Once you have the project set up, you can ask AI agents to perform these common tasks:
GitLab Operations
"Approve merge request https://gitswarm.f5net.com/mbip/modules/f5-eesv/-/merge_requests/1285"
"Get merge request details for https://gitswarm.f5net.com/project/repo/-/merge_requests/456"
"List all projects in GitLab"
"Get user information from GitLab"
BigIP Operations
"Check BigIP system status"
"List all virtual servers on BigIP"
"Get pool member status"
"Show BigIP version information"
Bugzilla Operations
"Get details for bug 123456"
"List all bugs assigned to user@example.com"
"Search for bugs in product X"
"Show bug status for component Y"
Confluence Operations
"Search Confluence for 'API documentation'"
"Get page content for page ID 12345"
"List all pages in space ABC"
"Find pages with title containing 'installation'"
JIRA Operations
"Get JIRA issue details for PROJ-123"
"List all projects in JIRA"
"Search for issues assigned to current user"
"Get issue comments for TICKET-456"
Complete Setup Example
Here's what a user should do if they have this project:
Initial Setup:
cd /Users/a.killamsetty/go/src/gitswarm.f5net.com/Uday/API-Tools-NoMCP
cp .env.example .env
# Edit .env with your actual credentials
chmod +x tools/*
Test Tools:
./tools/gitlab "/user" GET > temp.txt 2>&1
cat temp.txt
Use with AI Agent:
- Copy the universal prompt template above
- Replace
[INSERT YOUR SPECIFIC REQUEST HERE]
with your actual request
- Paste the complete prompt to your AI agent
Output Files
All tools write output to temporary files to avoid terminal delay issues:
temp.txt
- Main output file for monitoring results
temp_output.json
- JSON formatted responses (if applicable)
temp_output.txt
- Plain text output (if applicable)