@rashidazarang/airtable-mcp 2.1.0 โ 2.2.0
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/README.md +1 -1
- package/airtable_simple_production.js +387 -5
- package/examples/claude_simple_config.json +0 -9
- package/package.json +10 -1
- package/.github/ISSUE_TEMPLATE/bug-report.yml +0 -173
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
- package/.github/ISSUE_TEMPLATE/custom.md +0 -10
- package/.github/ISSUE_TEMPLATE/feature-request.yml +0 -209
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
- package/.github/ISSUE_TEMPLATE/security-report.yml +0 -216
- package/.github/pull_request_template.md +0 -245
- package/.github/workflows/ci-cd.yml +0 -408
- package/.github/workflows/security-audit.yml +0 -316
- package/API_DOCUMENTATION.md +0 -897
- package/CAPABILITY_REPORT.md +0 -118
- package/CLAUDE_INTEGRATION.md +0 -96
- package/CODE_OF_CONDUCT.md +0 -181
- package/CONTRIBUTING.md +0 -81
- package/DEVELOPMENT.md +0 -190
- package/Dockerfile +0 -39
- package/Dockerfile.node +0 -20
- package/Dockerfile.production +0 -127
- package/IMPROVEMENT_PROPOSAL.md +0 -371
- package/INSTALLATION.md +0 -183
- package/ISSUE_RESPONSES.md +0 -171
- package/MCP_REVIEW_SUMMARY.md +0 -142
- package/QUICK_START.md +0 -60
- package/RELEASE_NOTES_v1.2.0.md +0 -50
- package/RELEASE_NOTES_v1.2.1.md +0 -40
- package/RELEASE_NOTES_v1.2.2.md +0 -48
- package/RELEASE_NOTES_v1.2.3.md +0 -105
- package/RELEASE_NOTES_v1.2.4.md +0 -60
- package/RELEASE_NOTES_v1.4.0.md +0 -104
- package/RELEASE_NOTES_v1.5.0.md +0 -185
- package/RELEASE_NOTES_v1.6.0.md +0 -248
- package/SECURITY_NOTICE.md +0 -40
- package/airtable-clipper/CHANGELOG.md +0 -198
- package/airtable-clipper/CHROME_STORE_SUBMISSION.md +0 -343
- package/airtable-clipper/LAUNCH_STRATEGY.md +0 -495
- package/airtable-clipper/LICENSE +0 -21
- package/airtable-clipper/OAUTH_SETUP.md +0 -51
- package/airtable-clipper/PRIVACY_POLICY.md +0 -187
- package/airtable-clipper/README.md +0 -575
- package/airtable-clipper/SUBMIT_TO_CHROME_STORE.md +0 -273
- package/airtable-clipper/build.sh +0 -85
- package/airtable-clipper/docs/QUICK_START.md +0 -99
- package/airtable-clipper/docs/SETUP.md +0 -291
- package/airtable-clipper/extension/background.js +0 -337
- package/airtable-clipper/extension/base-setup.html +0 -324
- package/airtable-clipper/extension/base-setup.js +0 -471
- package/airtable-clipper/extension/content.js +0 -771
- package/airtable-clipper/extension/icons/README.md +0 -69
- package/airtable-clipper/extension/icons/icon-16.png +0 -3
- package/airtable-clipper/extension/manifest.json +0 -73
- package/airtable-clipper/extension/popup.html +0 -144
- package/airtable-clipper/extension/popup.js +0 -475
- package/airtable-clipper/extension/styles/content.css +0 -229
- package/airtable-clipper/extension/styles/popup.css +0 -477
- package/airtable-clipper/privacy-policy.md +0 -63
- package/airtable-clipper/releases/v1.0.0/background.js +0 -337
- package/airtable-clipper/releases/v1.0.0/base-setup.html +0 -324
- package/airtable-clipper/releases/v1.0.0/base-setup.js +0 -471
- package/airtable-clipper/releases/v1.0.0/content.js +0 -771
- package/airtable-clipper/releases/v1.0.0/icons/README.md +0 -69
- package/airtable-clipper/releases/v1.0.0/icons/icon-128.png +0 -2
- package/airtable-clipper/releases/v1.0.0/icons/icon-16.png +0 -3
- package/airtable-clipper/releases/v1.0.0/icons/icon-32.png +0 -2
- package/airtable-clipper/releases/v1.0.0/icons/icon-48.png +0 -2
- package/airtable-clipper/releases/v1.0.0/manifest.json +0 -73
- package/airtable-clipper/releases/v1.0.0/popup.html +0 -144
- package/airtable-clipper/releases/v1.0.0/popup.js +0 -475
- package/airtable-clipper/releases/v1.0.0/sidepanel.html +0 -25
- package/airtable-clipper/releases/v1.0.0/styles/content.css +0 -229
- package/airtable-clipper/releases/v1.0.0/styles/popup.css +0 -477
- package/airtable-clipper/releases/v1.0.1/background.js +0 -337
- package/airtable-clipper/releases/v1.0.1/base-setup.html +0 -324
- package/airtable-clipper/releases/v1.0.1/base-setup.js +0 -471
- package/airtable-clipper/releases/v1.0.1/content.js +0 -771
- package/airtable-clipper/releases/v1.0.1/icons/README.md +0 -69
- package/airtable-clipper/releases/v1.0.1/icons/icon-128.png +0 -2
- package/airtable-clipper/releases/v1.0.1/icons/icon-16.png +0 -3
- package/airtable-clipper/releases/v1.0.1/icons/icon-32.png +0 -2
- package/airtable-clipper/releases/v1.0.1/icons/icon-48.png +0 -2
- package/airtable-clipper/releases/v1.0.1/manifest.json +0 -70
- package/airtable-clipper/releases/v1.0.1/popup.html +0 -157
- package/airtable-clipper/releases/v1.0.1/popup.js +0 -562
- package/airtable-clipper/releases/v1.0.1/sidepanel.html +0 -25
- package/airtable-clipper/releases/v1.0.1/styles/content.css +0 -229
- package/airtable-clipper/releases/v1.0.1/styles/popup.css +0 -647
- package/airtable-clipper/releases/v1.0.2/background.js +0 -337
- package/airtable-clipper/releases/v1.0.2/base-setup.html +0 -324
- package/airtable-clipper/releases/v1.0.2/base-setup.js +0 -471
- package/airtable-clipper/releases/v1.0.2/content.js +0 -771
- package/airtable-clipper/releases/v1.0.2/icons/README.md +0 -69
- package/airtable-clipper/releases/v1.0.2/icons/icon-128.png +0 -2
- package/airtable-clipper/releases/v1.0.2/icons/icon-16.png +0 -3
- package/airtable-clipper/releases/v1.0.2/icons/icon-32.png +0 -2
- package/airtable-clipper/releases/v1.0.2/icons/icon-48.png +0 -2
- package/airtable-clipper/releases/v1.0.2/manifest.json +0 -62
- package/airtable-clipper/releases/v1.0.2/popup.html +0 -157
- package/airtable-clipper/releases/v1.0.2/popup.js +0 -567
- package/airtable-clipper/releases/v1.0.2/sidepanel.html +0 -25
- package/airtable-clipper/releases/v1.0.2/styles/content.css +0 -229
- package/airtable-clipper/releases/v1.0.2/styles/popup.css +0 -647
- package/airtable-clipper/terms-of-service.md +0 -124
- package/airtable-clipper/test-credentials.md +0 -61
- package/airtable-clipper/test-extension/background.js +0 -337
- package/airtable-clipper/test-extension/base-setup.html +0 -324
- package/airtable-clipper/test-extension/base-setup.js +0 -471
- package/airtable-clipper/test-extension/content.js +0 -873
- package/airtable-clipper/test-extension/icons/README.md +0 -69
- package/airtable-clipper/test-extension/icons/icon-128.png +0 -2
- package/airtable-clipper/test-extension/icons/icon-16.png +0 -3
- package/airtable-clipper/test-extension/icons/icon-32.png +0 -2
- package/airtable-clipper/test-extension/icons/icon-48.png +0 -2
- package/airtable-clipper/test-extension/manifest.json +0 -72
- package/airtable-clipper/test-extension/popup.html +0 -274
- package/airtable-clipper/test-extension/popup.js +0 -729
- package/airtable-clipper/test-extension/sidepanel.html +0 -25
- package/airtable-clipper/test-extension/styles/content.css +0 -229
- package/airtable-clipper/test-extension/styles/popup.css +0 -794
- package/airtable_mcp/__init__.py +0 -5
- package/airtable_mcp/src/server.py +0 -329
- package/airtable_mcp_v2.js +0 -1505
- package/airtable_mcp_v2_oauth.js +0 -1048
- package/airtable_mcp_v3_advanced.js +0 -1161
- package/cleanup.sh +0 -71
- package/docker-compose.production.yml +0 -366
- package/helm/airtable-mcp/Chart.yaml +0 -122
- package/helm/airtable-mcp/values.yaml +0 -538
- package/index.js +0 -179
- package/inspector.py +0 -148
- package/inspector_server.py +0 -337
- package/k8s/deployment.yaml +0 -402
- package/k8s/namespace.yaml +0 -108
- package/k8s/service.yaml +0 -194
- package/monitoring/alerts.yml +0 -289
- package/monitoring/prometheus.yml +0 -224
- package/publish-steps.txt +0 -27
- package/quick_test.sh +0 -30
- package/requirements.txt +0 -10
- package/setup.py +0 -29
- package/simple_airtable_server.py +0 -151
- package/smithery.yaml +0 -45
- package/test_all_features.sh +0 -146
- package/test_all_operations.sh +0 -120
- package/test_client.py +0 -70
- package/test_enhanced_features.js +0 -389
- package/test_mcp_comprehensive.js +0 -163
- package/test_mock_server.js +0 -180
- package/test_v1.4.0_final.sh +0 -131
- package/test_v1.5.0_comprehensive.sh +0 -96
- package/test_v1.5.0_final.sh +0 -224
- package/test_v1.6.0_comprehensive.sh +0 -187
- package/test_webhooks.sh +0 -105
|
@@ -1,408 +0,0 @@
|
|
|
1
|
-
name: ๐ CI/CD Pipeline - Trust Score 100
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [ main, develop ]
|
|
6
|
-
pull_request:
|
|
7
|
-
branches: [ main ]
|
|
8
|
-
release:
|
|
9
|
-
types: [ published ]
|
|
10
|
-
|
|
11
|
-
env:
|
|
12
|
-
NODE_VERSION: '18'
|
|
13
|
-
PYTHON_VERSION: '3.10'
|
|
14
|
-
|
|
15
|
-
jobs:
|
|
16
|
-
# ============================================================================
|
|
17
|
-
# SECURITY & QUALITY CHECKS
|
|
18
|
-
# ============================================================================
|
|
19
|
-
security:
|
|
20
|
-
name: ๐ก๏ธ Security Scan
|
|
21
|
-
runs-on: ubuntu-latest
|
|
22
|
-
steps:
|
|
23
|
-
- name: ๐ฅ Checkout code
|
|
24
|
-
uses: actions/checkout@v4
|
|
25
|
-
|
|
26
|
-
- name: ๐ Run Trivy vulnerability scanner
|
|
27
|
-
uses: aquasecurity/trivy-action@master
|
|
28
|
-
with:
|
|
29
|
-
scan-type: 'fs'
|
|
30
|
-
scan-ref: '.'
|
|
31
|
-
format: 'sarif'
|
|
32
|
-
output: 'trivy-results.sarif'
|
|
33
|
-
|
|
34
|
-
- name: ๐ Upload Trivy scan results
|
|
35
|
-
uses: github/codeql-action/upload-sarif@v3
|
|
36
|
-
if: always()
|
|
37
|
-
with:
|
|
38
|
-
sarif_file: 'trivy-results.sarif'
|
|
39
|
-
|
|
40
|
-
- name: ๐ Run npm audit
|
|
41
|
-
run: |
|
|
42
|
-
npm audit --audit-level=high
|
|
43
|
-
|
|
44
|
-
- name: ๐ก๏ธ Check for secrets
|
|
45
|
-
uses: trufflesecurity/trufflehog@main
|
|
46
|
-
with:
|
|
47
|
-
path: ./
|
|
48
|
-
base: main
|
|
49
|
-
head: HEAD
|
|
50
|
-
|
|
51
|
-
# ============================================================================
|
|
52
|
-
# CODE QUALITY & LINTING
|
|
53
|
-
# ============================================================================
|
|
54
|
-
quality:
|
|
55
|
-
name: ๐ Code Quality
|
|
56
|
-
runs-on: ubuntu-latest
|
|
57
|
-
steps:
|
|
58
|
-
- name: ๐ฅ Checkout code
|
|
59
|
-
uses: actions/checkout@v4
|
|
60
|
-
|
|
61
|
-
- name: ๐ข Setup Node.js
|
|
62
|
-
uses: actions/setup-node@v4
|
|
63
|
-
with:
|
|
64
|
-
node-version: ${{ env.NODE_VERSION }}
|
|
65
|
-
cache: 'npm'
|
|
66
|
-
|
|
67
|
-
- name: ๐ฆ Install dependencies
|
|
68
|
-
run: npm ci
|
|
69
|
-
|
|
70
|
-
- name: ๐ ESLint
|
|
71
|
-
run: |
|
|
72
|
-
npx eslint . --ext .js,.json --format=json --output-file=eslint-report.json || true
|
|
73
|
-
|
|
74
|
-
- name: ๐ Prettier check
|
|
75
|
-
run: |
|
|
76
|
-
npx prettier --check . || true
|
|
77
|
-
|
|
78
|
-
- name: ๐ Code complexity analysis
|
|
79
|
-
run: |
|
|
80
|
-
npx complexity-report --output=complexity-report.json --format=json . || true
|
|
81
|
-
|
|
82
|
-
- name: ๐ Upload code quality reports
|
|
83
|
-
uses: actions/upload-artifact@v4
|
|
84
|
-
with:
|
|
85
|
-
name: code-quality-reports
|
|
86
|
-
path: |
|
|
87
|
-
eslint-report.json
|
|
88
|
-
complexity-report.json
|
|
89
|
-
|
|
90
|
-
# ============================================================================
|
|
91
|
-
# COMPREHENSIVE TESTING
|
|
92
|
-
# ============================================================================
|
|
93
|
-
test:
|
|
94
|
-
name: ๐งช Test Suite
|
|
95
|
-
runs-on: ubuntu-latest
|
|
96
|
-
strategy:
|
|
97
|
-
matrix:
|
|
98
|
-
node-version: [16, 18, 20]
|
|
99
|
-
|
|
100
|
-
steps:
|
|
101
|
-
- name: ๐ฅ Checkout code
|
|
102
|
-
uses: actions/checkout@v4
|
|
103
|
-
|
|
104
|
-
- name: ๐ข Setup Node.js ${{ matrix.node-version }}
|
|
105
|
-
uses: actions/setup-node@v4
|
|
106
|
-
with:
|
|
107
|
-
node-version: ${{ matrix.node-version }}
|
|
108
|
-
cache: 'npm'
|
|
109
|
-
|
|
110
|
-
- name: ๐ฆ Install dependencies
|
|
111
|
-
run: npm ci
|
|
112
|
-
|
|
113
|
-
- name: ๐งช Run unit tests
|
|
114
|
-
run: |
|
|
115
|
-
npm test || echo "Tests need to be implemented"
|
|
116
|
-
|
|
117
|
-
- name: ๐ง Test MCP server functionality
|
|
118
|
-
env:
|
|
119
|
-
AIRTABLE_TOKEN: ${{ secrets.AIRTABLE_TOKEN }}
|
|
120
|
-
AIRTABLE_BASE_ID: ${{ secrets.AIRTABLE_BASE_ID }}
|
|
121
|
-
run: |
|
|
122
|
-
# Start server in background
|
|
123
|
-
timeout 30s node airtable_simple.js &
|
|
124
|
-
SERVER_PID=$!
|
|
125
|
-
sleep 5
|
|
126
|
-
|
|
127
|
-
# Test basic endpoints
|
|
128
|
-
curl -f http://localhost:8010/health || echo "Health check failed"
|
|
129
|
-
|
|
130
|
-
# Test MCP initialization
|
|
131
|
-
curl -f -X POST http://localhost:8010/mcp \
|
|
132
|
-
-H "Content-Type: application/json" \
|
|
133
|
-
-d '{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {}}' || echo "MCP init failed"
|
|
134
|
-
|
|
135
|
-
# Clean up
|
|
136
|
-
kill $SERVER_PID || true
|
|
137
|
-
|
|
138
|
-
- name: ๐ Test coverage report
|
|
139
|
-
run: |
|
|
140
|
-
npm run coverage || echo "Coverage reporting needs setup"
|
|
141
|
-
|
|
142
|
-
# ============================================================================
|
|
143
|
-
# INTEGRATION TESTS
|
|
144
|
-
# ============================================================================
|
|
145
|
-
integration:
|
|
146
|
-
name: ๐ Integration Tests
|
|
147
|
-
runs-on: ubuntu-latest
|
|
148
|
-
needs: [test]
|
|
149
|
-
|
|
150
|
-
steps:
|
|
151
|
-
- name: ๐ฅ Checkout code
|
|
152
|
-
uses: actions/checkout@v4
|
|
153
|
-
|
|
154
|
-
- name: ๐ข Setup Node.js
|
|
155
|
-
uses: actions/setup-node@v4
|
|
156
|
-
with:
|
|
157
|
-
node-version: ${{ env.NODE_VERSION }}
|
|
158
|
-
cache: 'npm'
|
|
159
|
-
|
|
160
|
-
- name: ๐ฆ Install dependencies
|
|
161
|
-
run: npm ci
|
|
162
|
-
|
|
163
|
-
- name: ๐ Test OAuth2 server
|
|
164
|
-
env:
|
|
165
|
-
AIRTABLE_TOKEN: ${{ secrets.AIRTABLE_TOKEN }}
|
|
166
|
-
AIRTABLE_BASE_ID: ${{ secrets.AIRTABLE_BASE_ID }}
|
|
167
|
-
run: |
|
|
168
|
-
# Test OAuth enhanced server
|
|
169
|
-
timeout 30s node airtable_mcp_v2_oauth.js &
|
|
170
|
-
SERVER_PID=$!
|
|
171
|
-
sleep 5
|
|
172
|
-
|
|
173
|
-
# Test OAuth endpoints
|
|
174
|
-
curl -f http://localhost:8010/health
|
|
175
|
-
curl -f http://localhost:8010/docs
|
|
176
|
-
|
|
177
|
-
# Test security features
|
|
178
|
-
curl -f -X POST http://localhost:8010/mcp \
|
|
179
|
-
-H "Content-Type: application/json" \
|
|
180
|
-
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "security_audit"}}' || echo "Security audit test failed"
|
|
181
|
-
|
|
182
|
-
kill $SERVER_PID || true
|
|
183
|
-
|
|
184
|
-
- name: ๐ Test Python components
|
|
185
|
-
uses: actions/setup-python@v4
|
|
186
|
-
with:
|
|
187
|
-
python-version: ${{ env.PYTHON_VERSION }}
|
|
188
|
-
|
|
189
|
-
- name: ๐งช Python integration tests
|
|
190
|
-
run: |
|
|
191
|
-
if [ -f requirements.txt ]; then
|
|
192
|
-
pip install -r requirements.txt
|
|
193
|
-
python -m pytest tests/ || echo "Python tests need setup"
|
|
194
|
-
fi
|
|
195
|
-
|
|
196
|
-
# ============================================================================
|
|
197
|
-
# PERFORMANCE & LOAD TESTING
|
|
198
|
-
# ============================================================================
|
|
199
|
-
performance:
|
|
200
|
-
name: โก Performance Tests
|
|
201
|
-
runs-on: ubuntu-latest
|
|
202
|
-
needs: [test]
|
|
203
|
-
|
|
204
|
-
steps:
|
|
205
|
-
- name: ๐ฅ Checkout code
|
|
206
|
-
uses: actions/checkout@v4
|
|
207
|
-
|
|
208
|
-
- name: ๐ข Setup Node.js
|
|
209
|
-
uses: actions/setup-node@v4
|
|
210
|
-
with:
|
|
211
|
-
node-version: ${{ env.NODE_VERSION }}
|
|
212
|
-
cache: 'npm'
|
|
213
|
-
|
|
214
|
-
- name: ๐ฆ Install dependencies
|
|
215
|
-
run: npm ci
|
|
216
|
-
|
|
217
|
-
- name: โก Load testing with Artillery
|
|
218
|
-
env:
|
|
219
|
-
AIRTABLE_TOKEN: ${{ secrets.AIRTABLE_TOKEN }}
|
|
220
|
-
AIRTABLE_BASE_ID: ${{ secrets.AIRTABLE_BASE_ID }}
|
|
221
|
-
run: |
|
|
222
|
-
# Start server
|
|
223
|
-
node airtable_mcp_v2_oauth.js &
|
|
224
|
-
SERVER_PID=$!
|
|
225
|
-
sleep 5
|
|
226
|
-
|
|
227
|
-
# Install artillery
|
|
228
|
-
npm install -g artillery@latest
|
|
229
|
-
|
|
230
|
-
# Create basic load test config
|
|
231
|
-
cat > load-test.yml << EOF
|
|
232
|
-
config:
|
|
233
|
-
target: 'http://localhost:8010'
|
|
234
|
-
phases:
|
|
235
|
-
- duration: 60
|
|
236
|
-
arrivalRate: 10
|
|
237
|
-
scenarios:
|
|
238
|
-
- name: "Health check load test"
|
|
239
|
-
requests:
|
|
240
|
-
- get:
|
|
241
|
-
url: "/health"
|
|
242
|
-
EOF
|
|
243
|
-
|
|
244
|
-
# Run load test
|
|
245
|
-
artillery run load-test.yml || echo "Load test completed"
|
|
246
|
-
|
|
247
|
-
kill $SERVER_PID || true
|
|
248
|
-
|
|
249
|
-
- name: ๐ Performance metrics
|
|
250
|
-
run: |
|
|
251
|
-
echo "Performance metrics logged"
|
|
252
|
-
|
|
253
|
-
# ============================================================================
|
|
254
|
-
# DOCKER BUILD & SECURITY SCAN
|
|
255
|
-
# ============================================================================
|
|
256
|
-
docker:
|
|
257
|
-
name: ๐ณ Docker Build & Scan
|
|
258
|
-
runs-on: ubuntu-latest
|
|
259
|
-
needs: [security, quality]
|
|
260
|
-
|
|
261
|
-
steps:
|
|
262
|
-
- name: ๐ฅ Checkout code
|
|
263
|
-
uses: actions/checkout@v4
|
|
264
|
-
|
|
265
|
-
- name: ๐ณ Set up Docker Buildx
|
|
266
|
-
uses: docker/setup-buildx-action@v3
|
|
267
|
-
|
|
268
|
-
- name: ๐จ Build Docker image
|
|
269
|
-
run: |
|
|
270
|
-
docker build -t airtable-mcp:latest .
|
|
271
|
-
|
|
272
|
-
- name: ๐ Scan Docker image
|
|
273
|
-
uses: aquasecurity/trivy-action@master
|
|
274
|
-
with:
|
|
275
|
-
image-ref: 'airtable-mcp:latest'
|
|
276
|
-
format: 'sarif'
|
|
277
|
-
output: 'docker-trivy-results.sarif'
|
|
278
|
-
|
|
279
|
-
- name: ๐ Upload Docker scan results
|
|
280
|
-
uses: github/codeql-action/upload-sarif@v3
|
|
281
|
-
if: always()
|
|
282
|
-
with:
|
|
283
|
-
sarif_file: 'docker-trivy-results.sarif'
|
|
284
|
-
|
|
285
|
-
# ============================================================================
|
|
286
|
-
# AUTOMATED RELEASE
|
|
287
|
-
# ============================================================================
|
|
288
|
-
release:
|
|
289
|
-
name: ๐ Automated Release
|
|
290
|
-
runs-on: ubuntu-latest
|
|
291
|
-
needs: [security, quality, test, integration, performance, docker]
|
|
292
|
-
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
|
|
293
|
-
|
|
294
|
-
steps:
|
|
295
|
-
- name: ๐ฅ Checkout code
|
|
296
|
-
uses: actions/checkout@v4
|
|
297
|
-
with:
|
|
298
|
-
fetch-depth: 0
|
|
299
|
-
token: ${{ secrets.GITHUB_TOKEN }}
|
|
300
|
-
|
|
301
|
-
- name: ๐ข Setup Node.js
|
|
302
|
-
uses: actions/setup-node@v4
|
|
303
|
-
with:
|
|
304
|
-
node-version: ${{ env.NODE_VERSION }}
|
|
305
|
-
cache: 'npm'
|
|
306
|
-
registry-url: 'https://registry.npmjs.org'
|
|
307
|
-
|
|
308
|
-
- name: ๐ฆ Install dependencies
|
|
309
|
-
run: npm ci
|
|
310
|
-
|
|
311
|
-
- name: ๐ท๏ธ Generate version and changelog
|
|
312
|
-
id: version
|
|
313
|
-
run: |
|
|
314
|
-
# Get latest tag
|
|
315
|
-
LATEST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.0")
|
|
316
|
-
echo "Latest tag: $LATEST_TAG"
|
|
317
|
-
|
|
318
|
-
# Determine next version based on commit messages
|
|
319
|
-
if git log $LATEST_TAG..HEAD --oneline | grep -q "BREAKING CHANGE\|major:"; then
|
|
320
|
-
VERSION_TYPE="major"
|
|
321
|
-
elif git log $LATEST_TAG..HEAD --oneline | grep -q "feat:\|feature:"; then
|
|
322
|
-
VERSION_TYPE="minor"
|
|
323
|
-
else
|
|
324
|
-
VERSION_TYPE="patch"
|
|
325
|
-
fi
|
|
326
|
-
|
|
327
|
-
# Update version
|
|
328
|
-
npm version $VERSION_TYPE --no-git-tag-version
|
|
329
|
-
NEW_VERSION=$(node -p "require('./package.json').version")
|
|
330
|
-
|
|
331
|
-
echo "version=$NEW_VERSION" >> $GITHUB_OUTPUT
|
|
332
|
-
echo "version_type=$VERSION_TYPE" >> $GITHUB_OUTPUT
|
|
333
|
-
|
|
334
|
-
- name: ๐ Generate changelog
|
|
335
|
-
run: |
|
|
336
|
-
# Generate changelog based on commit messages
|
|
337
|
-
cat > CHANGELOG_NEW.md << EOF
|
|
338
|
-
# Changelog - v${{ steps.version.outputs.version }}
|
|
339
|
-
|
|
340
|
-
## ๐ What's New
|
|
341
|
-
|
|
342
|
-
$(git log --oneline --since="$(git log -1 --format=%cd $(git describe --tags --abbrev=0 2>/dev/null || echo "HEAD~10"))" --pretty=format:"- %s (%h)" | head -20)
|
|
343
|
-
|
|
344
|
-
## ๐ก๏ธ Security & Quality
|
|
345
|
-
|
|
346
|
-
- โ
All security scans passed
|
|
347
|
-
- โ
Code quality checks passed
|
|
348
|
-
- โ
Performance tests completed
|
|
349
|
-
- โ
Docker security scan passed
|
|
350
|
-
|
|
351
|
-
## ๐ Trust Score Progress
|
|
352
|
-
|
|
353
|
-
- ๐ฏ Target: 100/100 points
|
|
354
|
-
- โ
OAuth2 authentication implemented
|
|
355
|
-
- โ
Enterprise security features added
|
|
356
|
-
- โ
Comprehensive CI/CD pipeline
|
|
357
|
-
- โ
Automated testing and validation
|
|
358
|
-
|
|
359
|
-
EOF
|
|
360
|
-
|
|
361
|
-
- name: ๐ท๏ธ Create release
|
|
362
|
-
uses: actions/create-release@v1
|
|
363
|
-
env:
|
|
364
|
-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
365
|
-
with:
|
|
366
|
-
tag_name: v${{ steps.version.outputs.version }}
|
|
367
|
-
release_name: ๐ Enhanced Airtable MCP v${{ steps.version.outputs.version }}
|
|
368
|
-
body_path: CHANGELOG_NEW.md
|
|
369
|
-
draft: false
|
|
370
|
-
prerelease: false
|
|
371
|
-
|
|
372
|
-
- name: ๐ฆ Publish to NPM
|
|
373
|
-
env:
|
|
374
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
375
|
-
run: |
|
|
376
|
-
npm publish --access public
|
|
377
|
-
|
|
378
|
-
- name: ๐ Update Trust Score tracking
|
|
379
|
-
run: |
|
|
380
|
-
echo "๐ฏ Trust Score progress tracking updated"
|
|
381
|
-
echo "Version: v${{ steps.version.outputs.version }}"
|
|
382
|
-
echo "Features completed: OAuth2, Security, CI/CD"
|
|
383
|
-
|
|
384
|
-
# ============================================================================
|
|
385
|
-
# NOTIFICATION & REPORTING
|
|
386
|
-
# ============================================================================
|
|
387
|
-
notify:
|
|
388
|
-
name: ๐ข Notifications
|
|
389
|
-
runs-on: ubuntu-latest
|
|
390
|
-
needs: [release]
|
|
391
|
-
if: always()
|
|
392
|
-
|
|
393
|
-
steps:
|
|
394
|
-
- name: ๐ Workflow Summary
|
|
395
|
-
run: |
|
|
396
|
-
echo "## ๐ CI/CD Pipeline Complete" >> $GITHUB_STEP_SUMMARY
|
|
397
|
-
echo "" >> $GITHUB_STEP_SUMMARY
|
|
398
|
-
echo "### โ
Completed Phases:" >> $GITHUB_STEP_SUMMARY
|
|
399
|
-
echo "- ๐ก๏ธ Security scanning" >> $GITHUB_STEP_SUMMARY
|
|
400
|
-
echo "- ๐ Code quality checks" >> $GITHUB_STEP_SUMMARY
|
|
401
|
-
echo "- ๐งช Comprehensive testing" >> $GITHUB_STEP_SUMMARY
|
|
402
|
-
echo "- ๐ Integration testing" >> $GITHUB_STEP_SUMMARY
|
|
403
|
-
echo "- โก Performance testing" >> $GITHUB_STEP_SUMMARY
|
|
404
|
-
echo "- ๐ณ Docker build & scan" >> $GITHUB_STEP_SUMMARY
|
|
405
|
-
echo "- ๐ Automated release" >> $GITHUB_STEP_SUMMARY
|
|
406
|
-
echo "" >> $GITHUB_STEP_SUMMARY
|
|
407
|
-
echo "### ๐ฏ Trust Score Target: 100/100" >> $GITHUB_STEP_SUMMARY
|
|
408
|
-
echo "Phase 3.1 (CI/CD Pipeline) - โ
**COMPLETED**" >> $GITHUB_STEP_SUMMARY
|