@crypto512/jicon-mcp 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +9 -0
- package/JIRA_API_ANALYSIS.md +275 -0
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/tempo/client.d.ts +10 -4
- package/dist/tempo/client.d.ts.map +1 -1
- package/dist/tempo/client.js +95 -25
- package/dist/tempo/client.js.map +1 -1
- package/dist/tempo/formatters.d.ts.map +1 -1
- package/dist/tempo/formatters.js +58 -21
- package/dist/tempo/formatters.js.map +1 -1
- package/dist/tempo/tools.d.ts +6 -6
- package/dist/tempo/tools.d.ts.map +1 -1
- package/dist/tempo/tools.js +23 -19
- package/dist/tempo/tools.js.map +1 -1
- package/dist/tempo/types.d.ts +10 -9
- package/dist/tempo/types.d.ts.map +1 -1
- package/dist/tempo/types.js +1 -0
- package/dist/tempo/types.js.map +1 -1
- package/package.json +1 -1
package/CLAUDE.md
CHANGED
|
@@ -28,6 +28,7 @@ A Model Context Protocol (MCP) server that provides seamless integration with At
|
|
|
28
28
|
- **Team Tracking**: Access team worklogs and time tracking data
|
|
29
29
|
- **Account Management**: View and manage Tempo accounts
|
|
30
30
|
- **User Info**: Retrieve user time tracking information
|
|
31
|
+
- **v4 API**: Uses Tempo v4 API with automatic key-to-ID conversion
|
|
31
32
|
|
|
32
33
|
## Installation
|
|
33
34
|
|
|
@@ -80,6 +81,14 @@ CONFLUENCE_AUTH_TYPE=bearer
|
|
|
80
81
|
2. Select "Personal access tokens" in the left menu
|
|
81
82
|
3. Create a new token with appropriate permissions
|
|
82
83
|
|
|
84
|
+
### Tempo Configuration
|
|
85
|
+
|
|
86
|
+
Tempo uses the same authentication as Jira (same URL and credentials). This server uses **Tempo v4 API**, which requires issueId and projectId (integers) instead of string keys. The server automatically converts user-friendly keys (e.g., "PROJ-123") to the numeric IDs required by the v4 API.
|
|
87
|
+
|
|
88
|
+
**Requirements:**
|
|
89
|
+
- Tempo 3.x or later (which provides v4 API)
|
|
90
|
+
- Same Jira credentials for authentication
|
|
91
|
+
|
|
83
92
|
### Claude Desktop Configuration
|
|
84
93
|
|
|
85
94
|
#### For Jira/Confluence Cloud:
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
# Jira API Compatibility Analysis
|
|
2
|
+
|
|
3
|
+
**Date**: 2025-11-12
|
|
4
|
+
**Analysis**: Jira REST API implementation vs. latest official documentation
|
|
5
|
+
**Target**: Jira Server/Data Center and Jira Cloud
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Executive Summary
|
|
10
|
+
|
|
11
|
+
The current Jira implementation is **FULLY COMPATIBLE** with **Jira Server/Data Center** (versions 8.x, 9.x, and latest) but has **LIMITED COMPATIBILITY** with **Jira Cloud**. While the documentation claims to support both platforms, the implementation uses Server/Data Center-specific patterns that will fail on Cloud instances.
|
|
12
|
+
|
|
13
|
+
### Key Findings
|
|
14
|
+
|
|
15
|
+
| Component | Server/Data Center | Cloud | Status |
|
|
16
|
+
|-----------|-------------------|-------|--------|
|
|
17
|
+
| Core API Version | `/rest/api/2/` ✅ | `/rest/api/3/` ❌ | **Partial** |
|
|
18
|
+
| Agile API Version | `/rest/agile/1.0/` ✅ | `/rest/agile/1.0/` ✅ | **Good** |
|
|
19
|
+
| User References | `{ name: "username" }` ✅ | `{ accountId: "..." }` ❌ | **Incompatible** |
|
|
20
|
+
| Authentication | Basic + Bearer ✅ | Basic (email + token) ✅ | **Good** |
|
|
21
|
+
| Search Method | POST ✅ | POST ✅ | **Good** |
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Detailed Analysis
|
|
26
|
+
|
|
27
|
+
### 1. Core API Endpoints (`/rest/api/2/`)
|
|
28
|
+
|
|
29
|
+
#### Status: ✅ CURRENT for Server/Data Center
|
|
30
|
+
|
|
31
|
+
**Current Implementation**: `/rest/api/2/`
|
|
32
|
+
|
|
33
|
+
**Finding**: The implementation correctly uses `/rest/api/2/` for all core operations:
|
|
34
|
+
- Issue search: `/rest/api/2/search` (line 42 in client.ts)
|
|
35
|
+
- Issue operations: `/rest/api/2/issue/{key}`
|
|
36
|
+
- Comments: `/rest/api/2/issue/{key}/comment`
|
|
37
|
+
- Projects: `/rest/api/2/project`
|
|
38
|
+
- Transitions: `/rest/api/2/issue/{key}/transitions`
|
|
39
|
+
- Issue links: `/rest/api/2/issueLink`
|
|
40
|
+
|
|
41
|
+
**Recommendation**: ✅ **No changes needed** for Server/Data Center. This is the current and correct API version for Jira Server/Data Center 8.x, 9.x, and latest (11.2.0).
|
|
42
|
+
|
|
43
|
+
**Note for Cloud**: Jira Cloud uses `/rest/api/3/` as its primary API version, though `/rest/api/2/` is still supported for backward compatibility. For full Cloud support, consider adding v3 endpoints.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
### 2. Agile API Endpoints (`/rest/agile/1.0/`)
|
|
48
|
+
|
|
49
|
+
#### Status: ✅ CURRENT for both Server/Data Center and Cloud
|
|
50
|
+
|
|
51
|
+
**Current Implementation**: `/rest/agile/1.0/`
|
|
52
|
+
|
|
53
|
+
**Finding**: The implementation correctly uses `/rest/agile/1.0/` for all Agile operations:
|
|
54
|
+
- Boards: `/rest/agile/1.0/board/{id}` (line 268)
|
|
55
|
+
- Sprints: `/rest/agile/1.0/board/{id}/sprint` (line 282)
|
|
56
|
+
- Sprint issues: `/rest/agile/1.0/sprint/{id}/issue` (line 299)
|
|
57
|
+
|
|
58
|
+
**Verification**: Checked against latest Jira Agile Data Center 9.17.0 REST API documentation. Version 1.0 is still current across all versions.
|
|
59
|
+
|
|
60
|
+
**Recommendation**: ✅ **No changes needed**. This is correct and not obsolete.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
### 3. Issue Search Method (GET vs POST)
|
|
65
|
+
|
|
66
|
+
#### Status: ✅ OPTIMAL
|
|
67
|
+
|
|
68
|
+
**Current Implementation**: POST `/rest/api/2/search`
|
|
69
|
+
|
|
70
|
+
**Finding**: The implementation uses POST for issue search (line 42 in client.ts):
|
|
71
|
+
```typescript
|
|
72
|
+
return this.http.post<JiraSearchResult>("/rest/api/2/search", params);
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**Best Practice**: According to official documentation:
|
|
76
|
+
- GET is suitable for simple queries
|
|
77
|
+
- POST is recommended when JQL is large to avoid URL length limitations
|
|
78
|
+
|
|
79
|
+
**Recommendation**: ✅ **No changes needed**. Using POST is the safer and more robust approach.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
### 4. User Field Format (CRITICAL ISSUE)
|
|
84
|
+
|
|
85
|
+
#### Status: ❌ INCOMPATIBLE with Jira Cloud
|
|
86
|
+
|
|
87
|
+
**Current Implementation**: `{ name: "username" }`
|
|
88
|
+
|
|
89
|
+
**Code Location**: `src/jira/client.ts:92`
|
|
90
|
+
```typescript
|
|
91
|
+
if (issueData.assignee) {
|
|
92
|
+
fields.assignee = { name: issueData.assignee };
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**Problem**: This format only works for Jira Server/Data Center. Jira Cloud requires:
|
|
97
|
+
```typescript
|
|
98
|
+
fields.assignee = { accountId: "5b10ac8d82e05b22cc7d4ef5" };
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**Background**:
|
|
102
|
+
- **Pre-GDPR (before 2018)**: Jira used `name` and `key` fields for users
|
|
103
|
+
- **Post-GDPR (2018+)**: Jira Cloud deprecated `name`/`key` fields
|
|
104
|
+
- **Current (2024)**: Cloud requires `accountId`, Server/Data Center still uses `name`
|
|
105
|
+
|
|
106
|
+
**Impact**:
|
|
107
|
+
- ❌ Creating/updating issues with assignee will fail on Jira Cloud
|
|
108
|
+
- ✅ Works correctly on Server/Data Center
|
|
109
|
+
|
|
110
|
+
**Recommendation**: Implement Cloud detection and conditional field format:
|
|
111
|
+
|
|
112
|
+
```typescript
|
|
113
|
+
// Detect if Cloud instance
|
|
114
|
+
private isCloudInstance(): boolean {
|
|
115
|
+
return this.config.url.includes('.atlassian.net');
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// In createIssue method:
|
|
119
|
+
if (issueData.assignee) {
|
|
120
|
+
if (this.isCloudInstance()) {
|
|
121
|
+
fields.assignee = { accountId: issueData.assignee };
|
|
122
|
+
} else {
|
|
123
|
+
fields.assignee = { name: issueData.assignee };
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
**Alternative**: Document that assignee parameter should be formatted according to instance type, and users should provide the correct identifier format.
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
### 5. Other Field Formats
|
|
133
|
+
|
|
134
|
+
#### Status: ✅ CORRECT
|
|
135
|
+
|
|
136
|
+
**Current Implementation**:
|
|
137
|
+
```typescript
|
|
138
|
+
project: { key: issueData.projectKey } // ✅ Correct
|
|
139
|
+
issuetype: { name: issueData.issueType } // ✅ Correct
|
|
140
|
+
priority: { name: issueData.priority } // ✅ Correct
|
|
141
|
+
components: issueData.components.map(name => ({ name })) // ✅ Correct
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
**Finding**: All other field formats follow the correct patterns for both Cloud and Server/Data Center.
|
|
145
|
+
|
|
146
|
+
**Recommendation**: ✅ **No changes needed**.
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
### 6. Authentication Methods
|
|
151
|
+
|
|
152
|
+
#### Status: ✅ GOOD
|
|
153
|
+
|
|
154
|
+
**Current Implementation**: Supports both Basic Auth and Bearer Auth
|
|
155
|
+
|
|
156
|
+
**Server/Data Center**:
|
|
157
|
+
- ✅ Basic Auth: username + password/token
|
|
158
|
+
- ✅ Bearer Auth: Personal Access Token (PAT) for 8.14+
|
|
159
|
+
|
|
160
|
+
**Cloud**:
|
|
161
|
+
- ✅ Basic Auth: email + API token
|
|
162
|
+
|
|
163
|
+
**Recommendation**: ✅ **No changes needed**. Authentication is correctly implemented.
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
### 7. Deprecated Features Check
|
|
168
|
+
|
|
169
|
+
#### OAuth 1.0a
|
|
170
|
+
- **Status**: Deprecated in Jira Agile API
|
|
171
|
+
- **Impact**: Not applicable (we don't use OAuth)
|
|
172
|
+
|
|
173
|
+
#### createmeta Endpoint
|
|
174
|
+
- **Status**: Removed in Jira 9.0 due to performance issues
|
|
175
|
+
- **Impact**: Not applicable (we don't use this endpoint)
|
|
176
|
+
|
|
177
|
+
#### User Privacy API
|
|
178
|
+
- **Status**: `name` field deprecated in Cloud only
|
|
179
|
+
- **Impact**: ❌ Affects our assignee field implementation (see section 4)
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## Missing Modern Features
|
|
184
|
+
|
|
185
|
+
While the implementation is not using obsolete APIs, there are some modern features that could be added:
|
|
186
|
+
|
|
187
|
+
1. **Issue Properties API** - Store custom key-value data on issues
|
|
188
|
+
2. **Bulk Operations** - Update multiple issues in one call
|
|
189
|
+
3. **Advanced Search Features** - More sophisticated JQL query building
|
|
190
|
+
4. **Webhooks** - Real-time event notifications
|
|
191
|
+
5. **User Search API** - Find users by email/name to get accountId (critical for Cloud support)
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## Recommendations
|
|
196
|
+
|
|
197
|
+
### Priority 1: Critical (Cloud Compatibility)
|
|
198
|
+
|
|
199
|
+
1. **Add Cloud/Data Center Detection**
|
|
200
|
+
```typescript
|
|
201
|
+
private isCloudInstance(): boolean {
|
|
202
|
+
return this.config.url.includes('.atlassian.net');
|
|
203
|
+
}
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
2. **Fix Assignee Field Format**
|
|
207
|
+
- Implement conditional formatting based on instance type
|
|
208
|
+
- Add user search tool to get accountId on Cloud instances
|
|
209
|
+
- Update documentation to clarify assignee parameter format
|
|
210
|
+
|
|
211
|
+
3. **Update Documentation**
|
|
212
|
+
- Clarify that current implementation is optimized for Server/Data Center
|
|
213
|
+
- Document Cloud limitations
|
|
214
|
+
- Provide examples for both platforms
|
|
215
|
+
|
|
216
|
+
### Priority 2: Enhancement (Optional)
|
|
217
|
+
|
|
218
|
+
1. **Add User Search Tool**
|
|
219
|
+
```typescript
|
|
220
|
+
async searchUsers(query: string): Promise<User[]> {
|
|
221
|
+
const endpoint = this.isCloudInstance()
|
|
222
|
+
? '/rest/api/3/user/search'
|
|
223
|
+
: '/rest/api/2/user/search';
|
|
224
|
+
return this.http.get(endpoint, { params: { query } });
|
|
225
|
+
}
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
2. **Consider Cloud v3 API Support**
|
|
229
|
+
- Add optional v3 endpoint support for Cloud instances
|
|
230
|
+
- Maintain v2 backward compatibility
|
|
231
|
+
|
|
232
|
+
3. **Add Bulk Operations**
|
|
233
|
+
- Implement bulk update/transition endpoints
|
|
234
|
+
- Reduce API calls for batch operations
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## Conclusion
|
|
239
|
+
|
|
240
|
+
### Current Status: ✅ FULLY COMPATIBLE with Server/Data Center
|
|
241
|
+
|
|
242
|
+
The Jira implementation uses **current, non-obsolete APIs** for Jira Server/Data Center:
|
|
243
|
+
- ✅ `/rest/api/2/` is the correct version (not obsolete)
|
|
244
|
+
- ✅ `/rest/agile/1.0/` is the current Agile API version
|
|
245
|
+
- ✅ Field formats are correct for Server/Data Center
|
|
246
|
+
- ✅ Authentication methods are modern and secure
|
|
247
|
+
- ✅ Search implementation follows best practices
|
|
248
|
+
|
|
249
|
+
### Cloud Compatibility: ⚠️ LIMITED
|
|
250
|
+
|
|
251
|
+
The implementation has **limited Cloud support**:
|
|
252
|
+
- ❌ User field format incompatible (`name` vs `accountId`)
|
|
253
|
+
- ⚠️ Using v2 API instead of recommended v3 for Cloud
|
|
254
|
+
- ✅ Authentication works correctly
|
|
255
|
+
- ✅ Most read operations work correctly
|
|
256
|
+
|
|
257
|
+
### Final Recommendation
|
|
258
|
+
|
|
259
|
+
**If targeting Server/Data Center only**: ✅ **NO CHANGES NEEDED** - implementation is current and correct.
|
|
260
|
+
|
|
261
|
+
**If targeting both Cloud and Data Center**: ⚠️ **UPDATES REQUIRED**:
|
|
262
|
+
1. Implement Cloud detection
|
|
263
|
+
2. Fix user field formats
|
|
264
|
+
3. Add user search capability
|
|
265
|
+
4. Update documentation to clarify platform-specific behavior
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## References
|
|
270
|
+
|
|
271
|
+
- [Jira Data Center REST API v11.2.0](https://developer.atlassian.com/server/jira/platform/rest/v10000/)
|
|
272
|
+
- [Jira Cloud REST API v3](https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/)
|
|
273
|
+
- [Jira Agile Data Center 9.17.0 REST API](https://docs.atlassian.com/jira-software/REST/9.17.0/)
|
|
274
|
+
- [Jira REST API Examples](https://developer.atlassian.com/server/jira/platform/jira-rest-api-examples/)
|
|
275
|
+
- [GDPR User API Migration](https://community.atlassian.com/t5/Jira-questions/What-value-should-be-used-in-assignee-filed-while-creating-issue/qaq-p/1352474)
|
package/dist/index.js
CHANGED
|
@@ -25,8 +25,8 @@ const jiraClient = JIRA_CONFIG ? new JiraClient(JIRA_CONFIG) : null;
|
|
|
25
25
|
const confluenceClient = CONFLUENCE_CONFIG
|
|
26
26
|
? new ConfluenceClient(CONFLUENCE_CONFIG)
|
|
27
27
|
: null;
|
|
28
|
-
// Tempo uses the same Jira configuration and authentication
|
|
29
|
-
const tempoClient = JIRA_CONFIG ? new TempoClient(JIRA_CONFIG
|
|
28
|
+
// Tempo uses the same Jira configuration and authentication (v4 API)
|
|
29
|
+
const tempoClient = JIRA_CONFIG ? new TempoClient(JIRA_CONFIG) : null;
|
|
30
30
|
// Create tools
|
|
31
31
|
const jiraTools = jiraClient ? createJiraTools(jiraClient) : {};
|
|
32
32
|
const confluenceTools = confluenceClient
|
|
@@ -140,7 +140,7 @@ async function main() {
|
|
|
140
140
|
console.error("Jicon MCP Server starting...");
|
|
141
141
|
if (JIRA_CONFIG) {
|
|
142
142
|
console.error(`✓ Jira configured: ${JIRA_CONFIG.url}`);
|
|
143
|
-
console.error(`✓ Tempo configured: ${JIRA_CONFIG.url} (using Jira auth)`);
|
|
143
|
+
console.error(`✓ Tempo configured: ${JIRA_CONFIG.url} (v4 API, using Jira auth)`);
|
|
144
144
|
}
|
|
145
145
|
if (CONFLUENCE_CONFIG) {
|
|
146
146
|
console.error(`✓ Confluence configured: ${CONFLUENCE_CONFIG.url}`);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EAErB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAY3D,qBAAqB;AACrB,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;AAEnC,sDAAsD;AACtD,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAElE,8BAA8B;AAC9B,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC1D,MAAM,iBAAiB,GAAG,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAEtE,qBAAqB;AACrB,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACpE,MAAM,gBAAgB,GAAG,iBAAiB;IACxC,CAAC,CAAC,IAAI,gBAAgB,CAAC,iBAAiB,CAAC;IACzC,CAAC,CAAC,IAAI,CAAC;AACT,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/tempo/client.d.ts
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Tempo API Client
|
|
3
|
-
* Uses Tempo
|
|
3
|
+
* Uses Tempo v4 API
|
|
4
|
+
*
|
|
5
|
+
* The v4 API requires issueId and projectId (integers) instead of keys.
|
|
6
|
+
* This client automatically converts user-friendly keys to numeric IDs.
|
|
4
7
|
*/
|
|
5
8
|
import type { ApiConfig } from "../types.js";
|
|
6
9
|
import type { TempoWorklog, TempoWorklogInput, TempoWorklogSearchResult, TempoAccount, TempoTeam } from "./types.js";
|
|
7
10
|
export declare class TempoClient {
|
|
8
11
|
private http;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
+
constructor(config: ApiConfig);
|
|
13
|
+
private resolveIssueId;
|
|
14
|
+
private resolveProjectId;
|
|
15
|
+
getWorklogs(dateFrom?: string, dateTo?: string, projectKey?: string, issueKey?: string, workerKey?: string): Promise<TempoWorklogSearchResult>;
|
|
12
16
|
getWorklog(worklogId: number): Promise<TempoWorklog>;
|
|
13
17
|
logWork(worklogData: TempoWorklogInput): Promise<TempoWorklog>;
|
|
14
18
|
updateWorklog(worklogId: number, worklogData: Partial<TempoWorklogInput>): Promise<TempoWorklog>;
|
|
@@ -27,6 +31,8 @@ export declare class TempoClient {
|
|
|
27
31
|
getCurrentUser(): Promise<{
|
|
28
32
|
accountId: string;
|
|
29
33
|
displayName: string;
|
|
34
|
+
key: string;
|
|
35
|
+
name: string;
|
|
30
36
|
}>;
|
|
31
37
|
}
|
|
32
38
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/tempo/client.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/tempo/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,wBAAwB,EACxB,YAAY,EACZ,SAAS,EACV,MAAM,YAAY,CAAC;AAEpB,qBAAa,WAAW;IACtB,OAAO,CAAC,IAAI,CAAa;gBAEb,MAAM,EAAE,SAAS;YAKf,cAAc;YAKd,gBAAgB;IAMxB,WAAW,CACf,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,wBAAwB,CAAC;IAyE9B,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAMpD,OAAO,CAAC,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC;IAiC9D,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACtC,OAAO,CAAC,YAAY,CAAC;IAgClB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/C,WAAW,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAQtC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAMrD,aAAa,CAAC,WAAW,EAAE;QAC/B,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;KAC5B,GAAG,OAAO,CAAC,YAAY,CAAC;IAQnB,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAQhC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAI3C,eAAe,CACnB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,wBAAwB,CAAC;IA4B9B,cAAc,IAAI,OAAO,CAAC;QAC9B,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CAUH"}
|
package/dist/tempo/client.js
CHANGED
|
@@ -1,31 +1,48 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Tempo API Client
|
|
3
|
-
* Uses Tempo
|
|
3
|
+
* Uses Tempo v4 API
|
|
4
|
+
*
|
|
5
|
+
* The v4 API requires issueId and projectId (integers) instead of keys.
|
|
6
|
+
* This client automatically converts user-friendly keys to numeric IDs.
|
|
4
7
|
*/
|
|
5
8
|
import { HttpClient } from "../utils/http-client.js";
|
|
6
9
|
export class TempoClient {
|
|
7
10
|
http;
|
|
8
|
-
|
|
9
|
-
constructor(config, apiVersion = "3") {
|
|
11
|
+
constructor(config) {
|
|
10
12
|
this.http = new HttpClient(config);
|
|
11
|
-
|
|
13
|
+
}
|
|
14
|
+
// Helper methods to resolve keys to IDs for v4 API
|
|
15
|
+
async resolveIssueId(issueKey) {
|
|
16
|
+
const issue = await this.http.get(`/rest/api/2/issue/${issueKey}?fields=id`);
|
|
17
|
+
return parseInt(issue.id, 10);
|
|
18
|
+
}
|
|
19
|
+
async resolveProjectId(projectKey) {
|
|
20
|
+
const project = await this.http.get(`/rest/api/2/project/${projectKey}`);
|
|
21
|
+
return parseInt(project.id, 10);
|
|
12
22
|
}
|
|
13
23
|
// Worklog operations
|
|
14
|
-
async getWorklogs(dateFrom, dateTo, projectKey, issueKey, accountId
|
|
15
|
-
|
|
24
|
+
async getWorklogs(dateFrom, dateTo, projectKey, issueKey, workerKey // Changed from accountId to workerKey
|
|
25
|
+
) {
|
|
26
|
+
// v4 API uses POST /worklogs/search instead of GET /worklogs
|
|
27
|
+
const searchParams = {};
|
|
16
28
|
if (dateFrom)
|
|
17
|
-
|
|
29
|
+
searchParams.from = dateFrom;
|
|
18
30
|
if (dateTo)
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
31
|
+
searchParams.to = dateTo;
|
|
32
|
+
// v4 API requires issueId and projectId (integers) as arrays
|
|
33
|
+
if (projectKey) {
|
|
34
|
+
const projectId = await this.resolveProjectId(projectKey);
|
|
35
|
+
searchParams.projectId = [projectId]; // Must be array!
|
|
36
|
+
}
|
|
37
|
+
if (issueKey) {
|
|
38
|
+
const issueId = await this.resolveIssueId(issueKey);
|
|
39
|
+
searchParams.taskId = [issueId]; // Must be array!
|
|
40
|
+
}
|
|
41
|
+
// v4 API expects workerKey (username), not accountId
|
|
42
|
+
if (workerKey) {
|
|
43
|
+
searchParams.worker = [workerKey]; // Must be array of user keys
|
|
44
|
+
}
|
|
45
|
+
const response = await this.http.post("/rest/tempo-timesheets/4/worklogs/search", searchParams);
|
|
29
46
|
// Defensive handling of response format
|
|
30
47
|
// Official API should return: { self, metadata: { count, offset, limit }, results: [] }
|
|
31
48
|
// Handle direct array (shouldn't happen but be defensive)
|
|
@@ -66,16 +83,63 @@ export class TempoClient {
|
|
|
66
83
|
throw new Error(`Unexpected Tempo API response format. Expected object with 'results' array, got: ${JSON.stringify(response).substring(0, 200)}`);
|
|
67
84
|
}
|
|
68
85
|
async getWorklog(worklogId) {
|
|
69
|
-
return this.http.get(`/rest/tempo-timesheets
|
|
86
|
+
return this.http.get(`/rest/tempo-timesheets/4/worklogs/${worklogId}`);
|
|
70
87
|
}
|
|
71
88
|
async logWork(worklogData) {
|
|
72
|
-
|
|
89
|
+
// v4 API uses different field names than v3
|
|
90
|
+
// - startDate → started
|
|
91
|
+
// - issueKey → originTaskId (can be key or ID)
|
|
92
|
+
// - description → comment
|
|
93
|
+
const requestBody = {
|
|
94
|
+
originTaskId: worklogData.issueKey, // v4 accepts both key and ID
|
|
95
|
+
timeSpentSeconds: worklogData.timeSpentSeconds,
|
|
96
|
+
started: worklogData.startDate, // v4 uses 'started' not 'startDate'
|
|
97
|
+
};
|
|
98
|
+
if (worklogData.description) {
|
|
99
|
+
requestBody.comment = worklogData.description;
|
|
100
|
+
}
|
|
101
|
+
if (worklogData.billableSeconds !== undefined) {
|
|
102
|
+
requestBody.billableSeconds = worklogData.billableSeconds;
|
|
103
|
+
}
|
|
104
|
+
if (worklogData.remainingEstimateSeconds !== undefined) {
|
|
105
|
+
requestBody.remainingEstimate = worklogData.remainingEstimateSeconds;
|
|
106
|
+
}
|
|
107
|
+
if (worklogData.authorAccountId) {
|
|
108
|
+
requestBody.worker = worklogData.authorAccountId;
|
|
109
|
+
}
|
|
110
|
+
if (worklogData.attributes) {
|
|
111
|
+
requestBody.attributes = worklogData.attributes;
|
|
112
|
+
}
|
|
113
|
+
return this.http.post(`/rest/tempo-timesheets/4/worklogs`, requestBody);
|
|
73
114
|
}
|
|
74
115
|
async updateWorklog(worklogId, worklogData) {
|
|
75
|
-
|
|
116
|
+
// v4 API uses different field names
|
|
117
|
+
const requestBody = {};
|
|
118
|
+
if (worklogData.issueKey) {
|
|
119
|
+
requestBody.originTaskId = worklogData.issueKey;
|
|
120
|
+
}
|
|
121
|
+
if (worklogData.timeSpentSeconds !== undefined) {
|
|
122
|
+
requestBody.timeSpentSeconds = worklogData.timeSpentSeconds;
|
|
123
|
+
}
|
|
124
|
+
if (worklogData.startDate) {
|
|
125
|
+
requestBody.started = worklogData.startDate;
|
|
126
|
+
}
|
|
127
|
+
if (worklogData.description) {
|
|
128
|
+
requestBody.comment = worklogData.description;
|
|
129
|
+
}
|
|
130
|
+
if (worklogData.billableSeconds !== undefined) {
|
|
131
|
+
requestBody.billableSeconds = worklogData.billableSeconds;
|
|
132
|
+
}
|
|
133
|
+
if (worklogData.remainingEstimateSeconds !== undefined) {
|
|
134
|
+
requestBody.remainingEstimate = worklogData.remainingEstimateSeconds;
|
|
135
|
+
}
|
|
136
|
+
if (worklogData.attributes) {
|
|
137
|
+
requestBody.attributes = worklogData.attributes;
|
|
138
|
+
}
|
|
139
|
+
return this.http.put(`/rest/tempo-timesheets/4/worklogs/${worklogId}`, requestBody);
|
|
76
140
|
}
|
|
77
141
|
async deleteWorklog(worklogId) {
|
|
78
|
-
await this.http.delete(`/rest/tempo-timesheets
|
|
142
|
+
await this.http.delete(`/rest/tempo-timesheets/4/worklogs/${worklogId}`);
|
|
79
143
|
}
|
|
80
144
|
// Account operations
|
|
81
145
|
async getAccounts() {
|
|
@@ -84,7 +148,7 @@ export class TempoClient {
|
|
|
84
148
|
return Array.isArray(response) ? response : [];
|
|
85
149
|
}
|
|
86
150
|
async getAccount(accountKey) {
|
|
87
|
-
return this.http.get(`/rest/tempo-accounts/1/account/${accountKey}`);
|
|
151
|
+
return this.http.get(`/rest/tempo-accounts/1/account/key/${accountKey}`);
|
|
88
152
|
}
|
|
89
153
|
async createAccount(accountData) {
|
|
90
154
|
return this.http.post("/rest/tempo-accounts/1/account", accountData);
|
|
@@ -92,11 +156,11 @@ export class TempoClient {
|
|
|
92
156
|
// Team operations
|
|
93
157
|
async getTeams() {
|
|
94
158
|
// API returns array directly, not wrapped object
|
|
95
|
-
const response = await this.http.get("/rest/tempo-teams/
|
|
159
|
+
const response = await this.http.get("/rest/tempo-teams/2/team");
|
|
96
160
|
return Array.isArray(response) ? response : [];
|
|
97
161
|
}
|
|
98
162
|
async getTeam(teamId) {
|
|
99
|
-
return this.http.get(`/rest/tempo-teams/
|
|
163
|
+
return this.http.get(`/rest/tempo-teams/2/team/${teamId}`);
|
|
100
164
|
}
|
|
101
165
|
async getTeamWorklogs(teamId, dateFrom, dateTo) {
|
|
102
166
|
const team = await this.getTeam(teamId);
|
|
@@ -119,7 +183,13 @@ export class TempoClient {
|
|
|
119
183
|
// User operations
|
|
120
184
|
async getCurrentUser() {
|
|
121
185
|
// Use Jira's myself endpoint since Tempo doesn't have its own
|
|
122
|
-
|
|
186
|
+
const user = await this.http.get("/rest/api/2/myself");
|
|
187
|
+
return {
|
|
188
|
+
accountId: user.accountId,
|
|
189
|
+
displayName: user.displayName,
|
|
190
|
+
key: user.key || user.name, // User key (workerKey for Tempo)
|
|
191
|
+
name: user.name, // Username
|
|
192
|
+
};
|
|
123
193
|
}
|
|
124
194
|
}
|
|
125
195
|
//# sourceMappingURL=client.js.map
|
package/dist/tempo/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/tempo/client.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/tempo/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../src/tempo/formatters.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,wBAAwB,EACxB,YAAY,EACZ,SAAS,EACV,MAAM,YAAY,CAAC;AAkBpB;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../src/tempo/formatters.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,wBAAwB,EACxB,YAAY,EACZ,SAAS,EACV,MAAM,YAAY,CAAC;AAkBpB;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CA2C3D;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,wBAAwB,GAC/B,MAAM,CAyER;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAwB3D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,CAqB/D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAoClD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,CAoBtD"}
|
package/dist/tempo/formatters.js
CHANGED
|
@@ -30,11 +30,15 @@ export function formatWorklog(worklog) {
|
|
|
30
30
|
lines.push(`- **Time Spent**: ${formatTimeSpent(worklog.timeSpentSeconds)}`);
|
|
31
31
|
lines.push(`- **Billable**: ${formatTimeSpent(worklog.billableSeconds || 0)}`);
|
|
32
32
|
lines.push(`- **Date**: ${worklog.startDate}`);
|
|
33
|
-
|
|
34
|
-
if (worklog.
|
|
33
|
+
// v4 API uses workerKey (string) instead of author object
|
|
34
|
+
if (worklog.workerKey) {
|
|
35
|
+
lines.push(`- **Worker**: ${worklog.workerKey}`);
|
|
36
|
+
}
|
|
37
|
+
// v4 uses 'comment' field instead of 'description'
|
|
38
|
+
if (worklog.comment) {
|
|
35
39
|
lines.push("");
|
|
36
|
-
lines.push("##
|
|
37
|
-
lines.push(worklog.
|
|
40
|
+
lines.push("## Comment");
|
|
41
|
+
lines.push(worklog.comment);
|
|
38
42
|
}
|
|
39
43
|
if (worklog.attributes && worklog.attributes.length > 0) {
|
|
40
44
|
lines.push("");
|
|
@@ -43,6 +47,13 @@ export function formatWorklog(worklog) {
|
|
|
43
47
|
lines.push(`- **${attr.key}**: ${attr.value}`);
|
|
44
48
|
});
|
|
45
49
|
}
|
|
50
|
+
lines.push("");
|
|
51
|
+
lines.push("## Metadata");
|
|
52
|
+
lines.push(`- **Created**: ${worklog.dateCreated}`);
|
|
53
|
+
lines.push(`- **Updated**: ${worklog.dateUpdated}`);
|
|
54
|
+
if (worklog.updaterKey) {
|
|
55
|
+
lines.push(`- **Last Updated By**: ${worklog.updaterKey}`);
|
|
56
|
+
}
|
|
46
57
|
return lines.join("\n");
|
|
47
58
|
}
|
|
48
59
|
/**
|
|
@@ -82,12 +93,15 @@ export function formatWorklogSearchResults(result) {
|
|
|
82
93
|
lines.push(`## ${date} (${formatTimeSpent(dayTotal)})`);
|
|
83
94
|
lines.push("");
|
|
84
95
|
worklogs.forEach((wl) => {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
96
|
+
// v4 API uses workerKey (string) instead of author object
|
|
97
|
+
const workerName = wl.workerKey || 'Unknown';
|
|
98
|
+
lines.push(`- **${wl.issue.key}** - ${formatTimeSpent(wl.timeSpentSeconds)} - ${workerName}`);
|
|
99
|
+
// v4 uses 'comment' field instead of 'description'
|
|
100
|
+
if (wl.comment) {
|
|
101
|
+
const shortComment = wl.comment.length > 80
|
|
102
|
+
? wl.comment.substring(0, 80) + "..."
|
|
103
|
+
: wl.comment;
|
|
104
|
+
lines.push(` ${shortComment}`);
|
|
91
105
|
}
|
|
92
106
|
});
|
|
93
107
|
lines.push("");
|
|
@@ -104,10 +118,19 @@ export function formatAccount(account) {
|
|
|
104
118
|
lines.push("## Details");
|
|
105
119
|
lines.push(`- **Key**: ${account.key}`);
|
|
106
120
|
lines.push(`- **Status**: ${account.status}`);
|
|
107
|
-
|
|
108
|
-
if (account.
|
|
121
|
+
// Defensive: lead might be missing or incomplete
|
|
122
|
+
if (account.lead?.displayName) {
|
|
123
|
+
lines.push(`- **Lead**: ${account.lead.displayName}`);
|
|
124
|
+
}
|
|
125
|
+
else if (account.lead?.accountId) {
|
|
126
|
+
lines.push(`- **Lead**: ${account.lead.accountId}`);
|
|
127
|
+
}
|
|
128
|
+
if (account.contact?.displayName) {
|
|
109
129
|
lines.push(`- **Contact**: ${account.contact.displayName}`);
|
|
110
130
|
}
|
|
131
|
+
else if (account.contact?.accountId) {
|
|
132
|
+
lines.push(`- **Contact**: ${account.contact.accountId}`);
|
|
133
|
+
}
|
|
111
134
|
return lines.join("\n");
|
|
112
135
|
}
|
|
113
136
|
/**
|
|
@@ -122,8 +145,9 @@ export function formatAccounts(accounts) {
|
|
|
122
145
|
return lines.join("\n");
|
|
123
146
|
}
|
|
124
147
|
accounts.forEach((account) => {
|
|
148
|
+
const leadName = account.lead?.displayName || account.lead?.accountId || 'Unknown';
|
|
125
149
|
lines.push(`## ${account.key}: ${account.name} (${account.status.toLowerCase()})`);
|
|
126
|
-
lines.push(` Lead: ${
|
|
150
|
+
lines.push(` Lead: ${leadName}`);
|
|
127
151
|
lines.push("");
|
|
128
152
|
});
|
|
129
153
|
return lines.join("\n");
|
|
@@ -137,18 +161,29 @@ export function formatTeam(team) {
|
|
|
137
161
|
lines.push("");
|
|
138
162
|
lines.push("## Details");
|
|
139
163
|
lines.push(`- **Team ID**: ${team.id}`);
|
|
140
|
-
|
|
141
|
-
|
|
164
|
+
// Defensive: lead might be missing or incomplete
|
|
165
|
+
if (team.lead?.displayName) {
|
|
166
|
+
lines.push(`- **Lead**: ${team.lead.displayName}`);
|
|
167
|
+
}
|
|
168
|
+
else if (team.lead?.accountId) {
|
|
169
|
+
lines.push(`- **Lead**: ${team.lead.accountId}`);
|
|
170
|
+
}
|
|
171
|
+
// Defensive: members might be undefined or not an array
|
|
172
|
+
const memberCount = Array.isArray(team.members) ? team.members.length : 0;
|
|
173
|
+
lines.push(`- **Members**: ${memberCount}`);
|
|
142
174
|
if (team.summary) {
|
|
143
175
|
lines.push("");
|
|
144
176
|
lines.push("## Summary");
|
|
145
177
|
lines.push(team.summary);
|
|
146
178
|
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
179
|
+
if (Array.isArray(team.members) && team.members.length > 0) {
|
|
180
|
+
lines.push("");
|
|
181
|
+
lines.push("## Team Members");
|
|
182
|
+
team.members.forEach((member) => {
|
|
183
|
+
const memberName = member?.displayName || member?.accountId || 'Unknown';
|
|
184
|
+
lines.push(`- ${memberName}`);
|
|
185
|
+
});
|
|
186
|
+
}
|
|
152
187
|
return lines.join("\n");
|
|
153
188
|
}
|
|
154
189
|
/**
|
|
@@ -163,8 +198,10 @@ export function formatTeams(teams) {
|
|
|
163
198
|
return lines.join("\n");
|
|
164
199
|
}
|
|
165
200
|
teams.forEach((team) => {
|
|
201
|
+
const leadName = team.lead?.displayName || team.lead?.accountId || 'Unknown';
|
|
202
|
+
const memberCount = Array.isArray(team.members) ? team.members.length : 0;
|
|
166
203
|
lines.push(`## ${team.name}`);
|
|
167
|
-
lines.push(` Lead: ${
|
|
204
|
+
lines.push(` Lead: ${leadName} | Members: ${memberCount}`);
|
|
168
205
|
lines.push("");
|
|
169
206
|
});
|
|
170
207
|
return lines.join("\n");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/tempo/formatters.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH;;GAEG;AACH,SAAS,eAAe,CAAC,OAAe;IACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAElD,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,OAAO,GAAG,OAAO,GAAG,CAAC;IACvB,CAAC;SAAM,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,GAAG,KAAK,GAAG,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,KAAK,KAAK,OAAO,GAAG,CAAC;IACjC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAqB;IACjD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,cAAc,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IACnD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;IAChD,KAAK,CAAC,IAAI,CAAC,qBAAqB,eAAe,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAC7E,KAAK,CAAC,IAAI,CACR,mBAAmB,eAAe,CAAC,OAAO,CAAC,eAAe,IAAI,CAAC,CAAC,EAAE,CACnE,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/tempo/formatters.ts"],"names":[],"mappings":"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"}
|
package/dist/tempo/tools.d.ts
CHANGED
|
@@ -12,26 +12,26 @@ export declare function createTempoTools(client: TempoClient): {
|
|
|
12
12
|
dateTo: z.ZodOptional<z.ZodString>;
|
|
13
13
|
projectKey: z.ZodOptional<z.ZodString>;
|
|
14
14
|
issueKey: z.ZodOptional<z.ZodString>;
|
|
15
|
-
|
|
15
|
+
workerKey: z.ZodOptional<z.ZodString>;
|
|
16
16
|
}, "strip", z.ZodTypeAny, {
|
|
17
|
-
projectKey?: string | undefined;
|
|
18
17
|
issueKey?: string | undefined;
|
|
18
|
+
projectKey?: string | undefined;
|
|
19
19
|
dateFrom?: string | undefined;
|
|
20
20
|
dateTo?: string | undefined;
|
|
21
|
-
|
|
21
|
+
workerKey?: string | undefined;
|
|
22
22
|
}, {
|
|
23
|
-
projectKey?: string | undefined;
|
|
24
23
|
issueKey?: string | undefined;
|
|
24
|
+
projectKey?: string | undefined;
|
|
25
25
|
dateFrom?: string | undefined;
|
|
26
26
|
dateTo?: string | undefined;
|
|
27
|
-
|
|
27
|
+
workerKey?: string | undefined;
|
|
28
28
|
}>;
|
|
29
29
|
handler: (args: {
|
|
30
30
|
dateFrom?: string;
|
|
31
31
|
dateTo?: string;
|
|
32
32
|
projectKey?: string;
|
|
33
33
|
issueKey?: string;
|
|
34
|
-
|
|
34
|
+
workerKey?: string;
|
|
35
35
|
}) => Promise<ToolResult>;
|
|
36
36
|
};
|
|
37
37
|
tempo_get_worklog: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/tempo/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAc1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;wBAwDxB;YACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;wBA8BD;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;wBAwE3C;YACpB,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,sBAAsB,CAAC,EAAE,MAAM,CAAC;SACjC,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;wBAsCD;YACpB,SAAS,EAAE,MAAM,CAAC;YAClB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,IAAI,CAAC,EAAE,MAAM,CAAC;SACf,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;wBAqCD;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;uBA4B9C,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;wBAwBhB;YAAE,UAAU,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;uBA+B/C,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;wBAwBhB;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;wBAoCxC;YACpB,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,MAAM,CAAC;YACjB,MAAM,EAAE,MAAM,CAAC;SAChB,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/tempo/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAc1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;wBAwDxB;YACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;wBA8BD;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;wBAwE3C;YACpB,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,MAAM,CAAC;YACb,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,sBAAsB,CAAC,EAAE,MAAM,CAAC;SACjC,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;wBAsCD;YACpB,SAAS,EAAE,MAAM,CAAC;YAClB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,IAAI,CAAC,EAAE,MAAM,CAAC;SACf,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;wBAqCD;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;uBA4B9C,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;wBAwBhB;YAAE,UAAU,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;uBA+B/C,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;wBAwBhB;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;wBAoCxC;YACpB,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,MAAM,CAAC;YACjB,MAAM,EAAE,MAAM,CAAC;SAChB,KAAG,OAAO,CAAC,UAAU,CAAC;;;;;uBAiCJ,OAAO,CAAC,UAAU,CAAC;;EAkB3C"}
|
package/dist/tempo/tools.js
CHANGED
|
@@ -12,23 +12,22 @@ export function createTempoTools(client) {
|
|
|
12
12
|
Top 10 Useful Examples:
|
|
13
13
|
|
|
14
14
|
1. My worklogs for today:
|
|
15
|
-
dateFrom: "2025-11-07", dateTo: "2025-11-07"
|
|
16
|
-
(Leave accountId empty to get your own)
|
|
15
|
+
dateFrom: "2025-11-07", dateTo: "2025-11-07", workerKey: "your-username"
|
|
17
16
|
|
|
18
17
|
2. My worklogs this week:
|
|
19
|
-
dateFrom: "2025-11-04", dateTo: "2025-11-10"
|
|
18
|
+
dateFrom: "2025-11-04", dateTo: "2025-11-10", workerKey: "your-username"
|
|
20
19
|
|
|
21
20
|
3. My worklogs this month:
|
|
22
|
-
dateFrom: "2025-11-01", dateTo: "2025-11-30"
|
|
21
|
+
dateFrom: "2025-11-01", dateTo: "2025-11-30", workerKey: "your-username"
|
|
23
22
|
|
|
24
23
|
4. Team member's worklogs:
|
|
25
|
-
dateFrom: "2025-11-01", dateTo: "2025-11-07",
|
|
24
|
+
dateFrom: "2025-11-01", dateTo: "2025-11-07", workerKey: "teammate-username"
|
|
26
25
|
|
|
27
26
|
5. All worklogs for a project:
|
|
28
27
|
dateFrom: "2025-11-01", dateTo: "2025-11-30", projectKey: "PROJ"
|
|
29
28
|
|
|
30
29
|
6. Worklogs for specific issue:
|
|
31
|
-
issueKey: "PROJ-123"
|
|
30
|
+
issueKey: "PROJ-123", dateFrom: "2025-11-01", dateTo: "2025-11-30"
|
|
32
31
|
|
|
33
32
|
7. Last 7 days worklogs:
|
|
34
33
|
dateFrom: "2025-10-31", dateTo: "2025-11-07"
|
|
@@ -39,11 +38,12 @@ Top 10 Useful Examples:
|
|
|
39
38
|
9. Last month worklogs:
|
|
40
39
|
dateFrom: "2025-10-01", dateTo: "2025-10-31"
|
|
41
40
|
|
|
42
|
-
10. Specific date range for project:
|
|
43
|
-
dateFrom: "2025-11-01", dateTo: "2025-11-15", projectKey: "MESH"
|
|
41
|
+
10. Specific date range for project and user:
|
|
42
|
+
dateFrom: "2025-11-01", dateTo: "2025-11-15", projectKey: "MESH", workerKey: "your-username"
|
|
44
43
|
|
|
45
44
|
Date Format: YYYY-MM-DD
|
|
46
|
-
Note: Use tempo_get_user_info first to get
|
|
45
|
+
Note: Use tempo_get_user_info first to get your workerKey (username)
|
|
46
|
+
IMPORTANT: If no workerKey is provided, returns ALL worklogs (not just yours)!`,
|
|
47
47
|
inputSchema: z.object({
|
|
48
48
|
dateFrom: z.string().optional().describe("Start date (YYYY-MM-DD)"),
|
|
49
49
|
dateTo: z.string().optional().describe("End date (YYYY-MM-DD)"),
|
|
@@ -55,14 +55,14 @@ Note: Use tempo_get_user_info first to get accountId if needed`,
|
|
|
55
55
|
.string()
|
|
56
56
|
.optional()
|
|
57
57
|
.describe("Filter by issue key (e.g., PROJ-123)"),
|
|
58
|
-
|
|
59
|
-
.
|
|
58
|
+
workerKey: z
|
|
59
|
+
.string()
|
|
60
60
|
.optional()
|
|
61
|
-
.describe("Filter by
|
|
61
|
+
.describe("Filter by worker username (e.g., 'jdoe'). Get from tempo_get_user_info. Leave empty to get ALL worklogs."),
|
|
62
62
|
}),
|
|
63
63
|
handler: async (args) => {
|
|
64
64
|
try {
|
|
65
|
-
const result = await client.getWorklogs(args.dateFrom, args.dateTo, args.projectKey, args.issueKey, args.
|
|
65
|
+
const result = await client.getWorklogs(args.dateFrom, args.dateTo, args.projectKey, args.issueKey, args.workerKey);
|
|
66
66
|
return {
|
|
67
67
|
content: [
|
|
68
68
|
{
|
|
@@ -366,20 +366,24 @@ teamId: 1, dateFrom: "2025-11-01", dateTo: "2025-11-07"`,
|
|
|
366
366
|
},
|
|
367
367
|
},
|
|
368
368
|
tempo_get_user_info: {
|
|
369
|
-
description: `Get current user information (accountId
|
|
369
|
+
description: `Get current user information (workerKey, accountId, displayName).
|
|
370
|
+
|
|
371
|
+
The workerKey (username) is needed for filtering worklogs by user. Use this tool first if you need to:
|
|
372
|
+
- Get your workerKey to filter worklogs in tempo_get_worklogs
|
|
373
|
+
- Find your accountId for Jira operations
|
|
374
|
+
- Verify authentication is working
|
|
370
375
|
|
|
371
|
-
|
|
372
|
-
- Get worklogs for the current user explicitly
|
|
373
|
-
- Find your accountId for other Tempo operations
|
|
374
|
-
- Verify authentication is working`,
|
|
376
|
+
IMPORTANT: Use 'workerKey' for Tempo worklog filtering, not 'accountId'!`,
|
|
375
377
|
inputSchema: z.object({}),
|
|
376
378
|
handler: async () => {
|
|
377
379
|
try {
|
|
378
380
|
const result = await client.getCurrentUser();
|
|
379
381
|
return formatSuccess({
|
|
382
|
+
workerKey: result.key,
|
|
383
|
+
username: result.name,
|
|
380
384
|
accountId: result.accountId,
|
|
381
385
|
displayName: result.displayName,
|
|
382
|
-
tip: "Use
|
|
386
|
+
tip: "Use the 'workerKey' value in tempo_get_worklogs to filter by user",
|
|
383
387
|
});
|
|
384
388
|
}
|
|
385
389
|
catch (error) {
|
package/dist/tempo/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/tempo/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,aAAa,EACb,WAAW,EACX,UAAU,GACX,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,aAAa,EACb,0BAA0B,EAC1B,aAAa,EACb,cAAc,EACd,UAAU,EACV,WAAW,GACZ,MAAM,iBAAiB,CAAC;AAGzB,MAAM,UAAU,gBAAgB,CAAC,MAAmB;IAClD,OAAO;QACL,kBAAkB,EAAE;YAClB,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/tempo/tools.ts"],"names":[],"mappings":"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"}
|
package/dist/tempo/types.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Tempo-specific types
|
|
3
|
+
* Based on Tempo v4 API (TempoWorklogV4Bean)
|
|
3
4
|
*/
|
|
4
5
|
export interface TempoWorklog {
|
|
5
6
|
tempoWorklogId: number;
|
|
6
7
|
jiraWorklogId: number;
|
|
8
|
+
originTaskId: number;
|
|
7
9
|
issue: {
|
|
8
10
|
key: string;
|
|
9
11
|
id: number;
|
|
@@ -11,19 +13,18 @@ export interface TempoWorklog {
|
|
|
11
13
|
timeSpentSeconds: number;
|
|
12
14
|
billableSeconds: number;
|
|
13
15
|
startDate: string;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
accountId: string;
|
|
20
|
-
displayName: string;
|
|
21
|
-
self: string;
|
|
22
|
-
};
|
|
16
|
+
comment?: string;
|
|
17
|
+
dateCreated: string;
|
|
18
|
+
dateUpdated: string;
|
|
19
|
+
workerKey: string;
|
|
20
|
+
updaterKey?: string;
|
|
23
21
|
attributes?: {
|
|
24
22
|
key: string;
|
|
25
23
|
value: string;
|
|
26
24
|
}[];
|
|
25
|
+
timeSpent?: string;
|
|
26
|
+
originId?: number;
|
|
27
|
+
location?: any;
|
|
27
28
|
}
|
|
28
29
|
export interface TempoWorklogInput {
|
|
29
30
|
issueKey: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tempo/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tempo/types.ts"],"names":[],"mappings":"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"}
|
package/dist/tempo/types.js
CHANGED
package/dist/tempo/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tempo/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tempo/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|