Compare commits
9 Commits
Author | SHA1 | Date | |
---|---|---|---|
459161e235 | |||
e9493b2ff9 | |||
4a8088c25c | |||
42bb432c36 | |||
83e27c3828 | |||
fcb71e293e | |||
cb36c007cb | |||
3ce688b55c | |||
74af27f995 |
39
.github/workflows/docker-publish.yml
vendored
Normal file
39
.github/workflows/docker-publish.yml
vendored
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
name: Docker Publish
|
||||||
|
|
||||||
|
on:
|
||||||
|
release:
|
||||||
|
types: [published]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
docker:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
|
||||||
|
- name: Login to Docker Hub
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Extract metadata for Docker
|
||||||
|
id: meta
|
||||||
|
uses: docker/metadata-action@v5
|
||||||
|
with:
|
||||||
|
images: ${{ secrets.DOCKERHUB_USERNAME }}/gitlab-mcp
|
||||||
|
tags: |
|
||||||
|
type=semver,pattern={{version}}
|
||||||
|
latest
|
||||||
|
|
||||||
|
- name: Build and push Docker image
|
||||||
|
uses: docker/build-push-action@v5
|
||||||
|
with:
|
||||||
|
context: .
|
||||||
|
platforms: linux/amd64,linux/arm64
|
||||||
|
push: true
|
||||||
|
tags: ${{ steps.meta.outputs.tags }}
|
3
.secrets
Normal file
3
.secrets
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
DOCKERHUB_USERNAME=DOCKERHUB_USERNAME
|
||||||
|
DOCKERHUB_TOKEN=DOCKERHUB_TOKEN
|
||||||
|
GITHUB_TOKEN=DOCKERHUB_TOKEN
|
17
CHANGELOG.md
17
CHANGELOG.md
@ -1,3 +1,20 @@
|
|||||||
|
## [1.0.54] - 2025-05-31
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- 🌐 **Multi-Platform Support**: Added support for multiple platforms to improve compatibility across different environments
|
||||||
|
- Enhanced platform detection and configuration handling
|
||||||
|
- Improved cross-platform functionality for GitLab MCP server
|
||||||
|
- See: [PR #71](https://github.com/zereight/gitlab-mcp/pull/71), [Issue #69](https://github.com/zereight/gitlab-mcp/issues/69)
|
||||||
|
|
||||||
|
- 🔐 **Custom SSL Configuration**: Added custom SSL options for enhanced security and flexibility
|
||||||
|
- Support for custom SSL certificates and configurations
|
||||||
|
- Improved HTTPS connection handling with custom SSL settings
|
||||||
|
- Better support for self-signed certificates and custom CA configurations
|
||||||
|
- See: [PR #72](https://github.com/zereight/gitlab-mcp/pull/72), [Issue #70](https://github.com/zereight/gitlab-mcp/issues/70)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## [1.0.48] - 2025-05-29
|
## [1.0.48] - 2025-05-29
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
6
event.json
Normal file
6
event.json
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"action": "published",
|
||||||
|
"release": {
|
||||||
|
"tag_name": "v1.0.53"
|
||||||
|
}
|
||||||
|
}
|
15
index.ts
15
index.ts
@ -16,6 +16,7 @@ import fs from "fs";
|
|||||||
import path from "path";
|
import path from "path";
|
||||||
// Add type imports for proxy agents
|
// Add type imports for proxy agents
|
||||||
import { Agent } from "http";
|
import { Agent } from "http";
|
||||||
|
import { Agent as HttpsAgent } from 'https';
|
||||||
import { URL } from "url";
|
import { URL } from "url";
|
||||||
|
|
||||||
import {
|
import {
|
||||||
@ -197,6 +198,16 @@ const USE_PIPELINE = process.env.USE_PIPELINE === "true";
|
|||||||
// Add proxy configuration
|
// Add proxy configuration
|
||||||
const HTTP_PROXY = process.env.HTTP_PROXY;
|
const HTTP_PROXY = process.env.HTTP_PROXY;
|
||||||
const HTTPS_PROXY = process.env.HTTPS_PROXY;
|
const HTTPS_PROXY = process.env.HTTPS_PROXY;
|
||||||
|
const NODE_TLS_REJECT_UNAUTHORIZED = process.env.NODE_TLS_REJECT_UNAUTHORIZED;
|
||||||
|
const GITLAB_CA_CERT_PATH = process.env.GITLAB_CA_CERT_PATH;
|
||||||
|
|
||||||
|
let sslOptions= undefined;
|
||||||
|
if (NODE_TLS_REJECT_UNAUTHORIZED === '0') {
|
||||||
|
sslOptions = { rejectUnauthorized: false };
|
||||||
|
} else if (GITLAB_CA_CERT_PATH) {
|
||||||
|
const ca = fs.readFileSync(GITLAB_CA_CERT_PATH);
|
||||||
|
sslOptions = { ca };
|
||||||
|
}
|
||||||
|
|
||||||
// Configure proxy agents if proxies are set
|
// Configure proxy agents if proxies are set
|
||||||
let httpAgent: Agent | undefined = undefined;
|
let httpAgent: Agent | undefined = undefined;
|
||||||
@ -213,9 +224,11 @@ if (HTTPS_PROXY) {
|
|||||||
if (HTTPS_PROXY.startsWith("socks")) {
|
if (HTTPS_PROXY.startsWith("socks")) {
|
||||||
httpsAgent = new SocksProxyAgent(HTTPS_PROXY);
|
httpsAgent = new SocksProxyAgent(HTTPS_PROXY);
|
||||||
} else {
|
} else {
|
||||||
httpsAgent = new HttpsProxyAgent(HTTPS_PROXY);
|
httpsAgent = new HttpsProxyAgent(HTTPS_PROXY, sslOptions);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
httpsAgent = httpsAgent || new HttpsAgent(sslOptions);
|
||||||
|
httpAgent = httpAgent || new Agent();
|
||||||
|
|
||||||
// Modify DEFAULT_HEADERS to include agent configuration
|
// Modify DEFAULT_HEADERS to include agent configuration
|
||||||
const DEFAULT_HEADERS = {
|
const DEFAULT_HEADERS = {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@zereight/mcp-gitlab",
|
"name": "@zereight/mcp-gitlab",
|
||||||
"version": "1.0.52",
|
"version": "1.0.54",
|
||||||
"description": "MCP server for using the GitLab API",
|
"description": "MCP server for using the GitLab API",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"author": "zereight",
|
"author": "zereight",
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
### 1.0.40 (2025-05-21)
|
|
||||||
|
|
||||||
- Added support for listing discussions (comments/notes) on GitLab issues.
|
|
||||||
- Example: You can now easily fetch all conversations (comments) attached to an issue via the API.
|
|
||||||
- Related PR: [#44](https://github.com/zereight/gitlab-mcp/pull/44)
|
|
12
schemas.ts
12
schemas.ts
@ -618,21 +618,21 @@ export const GitLabDiscussionNoteSchema = z.object({
|
|||||||
old_path: z.string(),
|
old_path: z.string(),
|
||||||
new_path: z.string(),
|
new_path: z.string(),
|
||||||
position_type: z.enum(["text", "image", "file"]),
|
position_type: z.enum(["text", "image", "file"]),
|
||||||
old_line: z.number().nullable(),
|
old_line: z.number().nullish(), // This is missing for image diffs
|
||||||
new_line: z.number().nullable(),
|
new_line: z.number().nullish(), // This is missing for image diffs
|
||||||
line_range: z
|
line_range: z
|
||||||
.object({
|
.object({
|
||||||
start: z.object({
|
start: z.object({
|
||||||
line_code: z.string(),
|
line_code: z.string(),
|
||||||
type: z.enum(["new", "old", "expanded"]),
|
type: z.enum(["new", "old", "expanded"]),
|
||||||
old_line: z.number().nullable(),
|
old_line: z.number().nullish(), // This is missing for image diffs
|
||||||
new_line: z.number().nullable(),
|
new_line: z.number().nullish(), // This is missing for image diffs
|
||||||
}),
|
}),
|
||||||
end: z.object({
|
end: z.object({
|
||||||
line_code: z.string(),
|
line_code: z.string(),
|
||||||
type: z.enum(["new", "old", "expanded"]),
|
type: z.enum(["new", "old", "expanded"]),
|
||||||
old_line: z.number().nullable(),
|
old_line: z.number().nullish(), // This is missing for image diffs
|
||||||
new_line: z.number().nullable(),
|
new_line: z.number().nullish(), // This is missing for image diffs
|
||||||
}),
|
}),
|
||||||
})
|
})
|
||||||
.nullable()
|
.nullable()
|
||||||
|
@ -10,9 +10,9 @@ IMAGE_NAME=gitlab-mcp
|
|||||||
IMAGE_VERSION=$(jq -r '.version' package.json)
|
IMAGE_VERSION=$(jq -r '.version' package.json)
|
||||||
|
|
||||||
echo "${DOCKER_USER}/${IMAGE_NAME}:${IMAGE_VERSION}"
|
echo "${DOCKER_USER}/${IMAGE_NAME}:${IMAGE_VERSION}"
|
||||||
docker build --platform=linux/arm64 -t "${DOCKER_USER}/${IMAGE_NAME}:latest" .
|
|
||||||
|
|
||||||
docker tag "${DOCKER_USER}/${IMAGE_NAME}:latest" "${DOCKER_USER}/${IMAGE_NAME}:${IMAGE_VERSION}"
|
docker buildx build --platform linux/arm64,linux/amd64 \
|
||||||
|
-t "${DOCKER_USER}/${IMAGE_NAME}:latest" \
|
||||||
docker push "${DOCKER_USER}/${IMAGE_NAME}:latest"
|
-t "${DOCKER_USER}/${IMAGE_NAME}:${IMAGE_VERSION}" \
|
||||||
docker push "${DOCKER_USER}/${IMAGE_NAME}:${IMAGE_VERSION}"
|
--push \
|
||||||
|
.
|
||||||
|
Reference in New Issue
Block a user