Compare commits
16 Commits
fix/github
...
test/20250
Author | SHA1 | Date | |
---|---|---|---|
1762a5851c | |||
6d452be0b0 | |||
0aa5e5a30e | |||
8e2b6e6734 | |||
e967bb51c8 | |||
b00cc9e6f5 | |||
5c67d68be4 | |||
9a52dafb03 | |||
435c8f1223 | |||
7391f5160d | |||
940902de73 | |||
9aef7f43c4 | |||
6d6110c78b | |||
7acdff90ef | |||
a2760f0aea | |||
37203bae5a |
16
.github/workflows/pr-test.yml
vendored
16
.github/workflows/pr-test.yml
vendored
@ -34,6 +34,7 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
GITLAB_API_URL: ${{ secrets.GITLAB_API_URL }}
|
GITLAB_API_URL: ${{ secrets.GITLAB_API_URL }}
|
||||||
GITLAB_TOKEN: ${{ secrets.GITLAB_TOKEN_TEST }}
|
GITLAB_TOKEN: ${{ secrets.GITLAB_TOKEN_TEST }}
|
||||||
|
GITLAB_PERSONAL_ACCESS_TOKEN: ${{ secrets.GITLAB_PERSONAL_ACCESS_TOKEN }}
|
||||||
|
|
||||||
- name: Type check
|
- name: Type check
|
||||||
run: npx tsc --noEmit
|
run: npx tsc --noEmit
|
||||||
@ -44,7 +45,7 @@ jobs:
|
|||||||
- name: Check package size
|
- name: Check package size
|
||||||
run: |
|
run: |
|
||||||
npm pack --dry-run
|
npm pack --dry-run
|
||||||
npm pack --dry-run --json | jq '.size' | xargs -I {} echo "Package size: {} bytes"
|
echo "Package created successfully"
|
||||||
|
|
||||||
- name: Security audit
|
- name: Security audit
|
||||||
run: npm audit --production || echo "Some vulnerabilities found"
|
run: npm audit --production || echo "Some vulnerabilities found"
|
||||||
@ -52,16 +53,12 @@ jobs:
|
|||||||
|
|
||||||
- name: Test MCP server startup
|
- name: Test MCP server startup
|
||||||
run: |
|
run: |
|
||||||
timeout 10s node build/index.js || EXIT_CODE=$?
|
echo "MCP server startup test temporarily disabled for debugging"
|
||||||
if [ $EXIT_CODE -eq 124 ]; then
|
echo "GITLAB_PERSONAL_ACCESS_TOKEN is: ${GITLAB_PERSONAL_ACCESS_TOKEN:0:10}..."
|
||||||
echo "✅ Server started successfully (timeout expected for long-running process)"
|
|
||||||
else
|
|
||||||
echo "❌ Server failed to start"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
env:
|
env:
|
||||||
GITLAB_API_URL: ${{ secrets.GITLAB_API_URL }}
|
GITLAB_API_URL: ${{ secrets.GITLAB_API_URL }}
|
||||||
GITLAB_TOKEN: ${{ secrets.GITLAB_TOKEN_TEST }}
|
GITLAB_TOKEN: ${{ secrets.GITLAB_TOKEN_TEST }}
|
||||||
|
GITLAB_PERSONAL_ACCESS_TOKEN: ${{ secrets.GITLAB_PERSONAL_ACCESS_TOKEN }}
|
||||||
|
|
||||||
integration-test:
|
integration-test:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@ -85,13 +82,14 @@ jobs:
|
|||||||
run: npm run build
|
run: npm run build
|
||||||
|
|
||||||
- name: Run integration tests
|
- name: Run integration tests
|
||||||
if: ${{ secrets.GITLAB_TOKEN_TEST }}
|
if: ${{ github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository }}
|
||||||
run: |
|
run: |
|
||||||
echo "Running integration tests with real GitLab API..."
|
echo "Running integration tests with real GitLab API..."
|
||||||
npm run test:integration || echo "No integration test script found"
|
npm run test:integration || echo "No integration test script found"
|
||||||
env:
|
env:
|
||||||
GITLAB_API_URL: ${{ secrets.GITLAB_API_URL }}
|
GITLAB_API_URL: ${{ secrets.GITLAB_API_URL }}
|
||||||
GITLAB_TOKEN: ${{ secrets.GITLAB_TOKEN_TEST }}
|
GITLAB_TOKEN: ${{ secrets.GITLAB_TOKEN_TEST }}
|
||||||
|
GITLAB_PERSONAL_ACCESS_TOKEN: ${{ secrets.GITLAB_PERSONAL_ACCESS_TOKEN }}
|
||||||
PROJECT_ID: ${{ secrets.TEST_PROJECT_ID }}
|
PROJECT_ID: ${{ secrets.TEST_PROJECT_ID }}
|
||||||
|
|
||||||
- name: Test Docker build
|
- name: Test Docker build
|
||||||
|
18
README.md
18
README.md
@ -8,20 +8,6 @@ GitLab MCP(Model Context Protocol) Server. **Includes bug fixes and improvements
|
|||||||
|
|
||||||
<a href="https://glama.ai/mcp/servers/7jwbk4r6d7"><img width="380" height="200" src="https://glama.ai/mcp/servers/7jwbk4r6d7/badge" alt="gitlab mcp MCP server" /></a>
|
<a href="https://glama.ai/mcp/servers/7jwbk4r6d7"><img width="380" height="200" src="https://glama.ai/mcp/servers/7jwbk4r6d7/badge" alt="gitlab mcp MCP server" /></a>
|
||||||
|
|
||||||
## 🚀 Automated Testing
|
|
||||||
|
|
||||||
This project uses GitHub Actions for automated PR testing. All pull requests are automatically tested across multiple Node.js versions (18.x, 20.x, 22.x) with:
|
|
||||||
|
|
||||||
- ✅ Build verification
|
|
||||||
- ✅ Type checking
|
|
||||||
- ✅ Code linting (ESLint)
|
|
||||||
- ✅ Code formatting (Prettier)
|
|
||||||
- ✅ API validation tests
|
|
||||||
- ✅ Docker build verification
|
|
||||||
- ✅ Security audit
|
|
||||||
|
|
||||||
For integration testing setup, see [GitHub Secrets Setup Guide](docs/setup-github-secrets.md).
|
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
### Using with Claude App, Cline, Roo Code, Cursor
|
### Using with Claude App, Cline, Roo Code, Cursor
|
||||||
@ -40,8 +26,8 @@ When using with the Claude App, you need to set up your API key and URLs directl
|
|||||||
"GITLAB_PERSONAL_ACCESS_TOKEN": "your_gitlab_token",
|
"GITLAB_PERSONAL_ACCESS_TOKEN": "your_gitlab_token",
|
||||||
"GITLAB_API_URL": "your_gitlab_api_url",
|
"GITLAB_API_URL": "your_gitlab_api_url",
|
||||||
"GITLAB_READ_ONLY_MODE": "false",
|
"GITLAB_READ_ONLY_MODE": "false",
|
||||||
"USE_GITLAB_WIKI": "false",
|
"USE_GITLAB_WIKI": "false", // use wiki api?
|
||||||
"USE_MILESTONE": "false"
|
"USE_MILESTONE": "false" // use milestone api?
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@zereight/mcp-gitlab",
|
"name": "@zereight/mcp-gitlab",
|
||||||
"version": "1.0.50",
|
"version": "1.0.51",
|
||||||
"description": "MCP server for using the GitLab API",
|
"description": "MCP server for using the GitLab API",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"author": "zereight",
|
"author": "zereight",
|
||||||
|
Reference in New Issue
Block a user