Skip to content

Feat/tool integration beta - #79

Draft
Amazing-Stardom wants to merge 445 commits into
masterfrom
feat/tool-integration-beta
Draft

Feat/tool integration beta#79
Amazing-Stardom wants to merge 445 commits into
masterfrom
feat/tool-integration-beta

Conversation

@Amazing-Stardom

Copy link
Copy Markdown
Contributor

No description provided.

RijulTP and others added 30 commits May 20, 2026 20:11
LiveReview Pre-Commit Check: vouched (iter:1, coverage:0%)
LiveReview Pre-Commit Check: vouched (iter:1, coverage:0%)
LiveReview Pre-Commit Check: skipped (iter:1, coverage:0%)
LiveReview Pre-Commit Check: vouched (iter:1, coverage:0%)
LiveReview Pre-Commit Check: skipped (iter:1, coverage:0%)
LiveReview Pre-Commit Check: skipped (iter:1, coverage:0%)
LiveReview Pre-Commit Check: vouched (iter:1, coverage:0%)
LiveReview Pre-Commit Check: skipped (iter:1, coverage:0%)
LiveReview Pre-Commit Check: vouched (iter:1, coverage:0%)
LiveReview Pre-Commit Check: vouched (iter:1, coverage:0%)
LiveReview Pre-Commit Check: vouched (iter:1, coverage:0%)
LiveReview Pre-Commit Check: ran (iter:8, coverage:30%)
LiveReview Pre-Commit Check: skipped (iter:1, coverage:0%)
LiveReview Pre-Commit Check: ran (iter:1, coverage:0%)
LiveReview Pre-Commit Check: ran (iter:1, coverage:0%)
LiveReview Pre-Commit Check: skipped (iter:1, coverage:0%)
LiveReview Pre-Commit Check: ran (iter:1, coverage:0%)
LiveReview Pre-Commit Check: skipped (iter:1, coverage:0%)
LiveReview Pre-Commit Check: skipped (iter:1, coverage:0%)
LiveReview Pre-Commit Check: ran (iter:1, coverage:0%)
LiveReview Pre-Commit Check: ran (iter:1, coverage:0%)
LiveReview Pre-Commit Check: ran (iter:1, coverage:0%)
LiveReview Pre-Commit Check: vouched (iter:1, coverage:0%)
LiveReview Pre-Commit Check: ran (iter:2, coverage:0%)
LinceMathew and others added 26 commits July 7, 2026 20:51
LiveReview Pre-Commit Check: ran (iter:1, coverage:0%)
LiveReview Pre-Commit Check: ran (iter:1, coverage:0%)
LiveReview Pre-Commit Check: ran (iter:1, coverage:0%)
LiveReview Pre-Commit Check: ran (iter:1, coverage:0%)
LiveReview Pre-Commit Check: ran (iter:3, coverage:49%)
LiveReview Pre-Commit Check: vouched (iter:2, coverage:93%)
LiveReview Pre-Commit Check: ran (iter:1, coverage:0%)
LiveReview Pre-Commit Check: ran (iter:1, coverage:0%)
LiveReview Pre-Commit Check: ran (iter:1, coverage:0%)
Add Microsoft Teams Integration to LiveReview
LiveReview Pre-Commit Check: ran (iter:1, coverage:0%)
LiveReview Pre-Commit Check: ran (iter:6, coverage:100%)
LiveReview Pre-Commit Check: ran (iter:2, coverage:54%)
…Spec

LiveReview Pre-Commit Check: ran (iter:1, coverage:0%)
LiveReview Pre-Commit Check: ran (iter:1, coverage:0%)
LiveReview Pre-Commit Check: ran (iter:1, coverage:0%)
LiveReview Pre-Commit Check: ran (iter:2, coverage:0%)
LiveReview Pre-Commit Check: ran (iter:1, coverage:0%)
LiveReview Pre-Commit Check: ran (iter:1, coverage:0%)
LiveReview Pre-Commit Check: ran (iter:1, coverage:0%)
…lder

LiveReview Pre-Commit Check: ran (iter:1, coverage:0%)
LiveReview Pre-Commit Check: ran (iter:1, coverage:0%)
@Amazing-Stardom
Amazing-Stardom force-pushed the feat/tool-integration-beta branch from 580c1b5 to 96b7669 Compare July 26, 2026 14:38
Comment on lines +12 to +106
runs-on: ubuntu-latest

env:
DATABASE_URL: ${{ secrets.DATABASE_URL }}
JWT_SECRET: ${{ secrets.JWT_SECRET }}
TOKENROUTER_API_KEY: ${{ secrets.TOKENROUTER_API_KEY }}
LIVEREVIEW_API_KEY_TR: ${{ secrets.LIVEREVIEW_API_KEY_TR }}

steps:
- name: Checkout repo
uses: actions/checkout@v4

- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
- name: Install Python dependencies
run: |
pip install -r tests/mcp/requirements.txt

- name: Build LiveReview
run: make build-ci

- name: Start MCP server
run: |
nohup ./livereview api > server.log 2>&1 &
echo $! > server.pid

- name: Wait for server startup
run: |
for i in {1..30}; do
response=$(curl -s http://localhost:8888/health || true)

if echo "$response" | grep -q '"status":"healthy"\|"status": "healthy"'; then
echo "Server is healthy"
exit 0
fi

echo "Waiting for server to start..."
sleep 2
done

echo "Server failed to become healthy"
cat server.log
exit 1

- name: Run MCP test script
run: |
python tests/mcp/mcp-testcase.py

- name: Check MCP test result
run: |
python - <<EOF
import json
import sys

with open("tests/mcp/test_results.json") as f:
result = json.load(f)

status = result.get("suite_summary", {}).get("overall_status")

print(f"Overall Status: {status}")

if status == "PASSED":
print("MCP test passed")
sys.exit(0)

print("MCP test failed")
print(json.dumps(result, indent=2))
sys.exit(1)
EOF
- name: Upload MCP Test Results
if: always()
uses: actions/upload-artifact@v4
with:
name: mcp-test-results
path: tests/mcp/test_results.json
retention-days: 30
- name: Print server logs on failure
if: failure()
run: cat server.log || true

- name: Cleanup
if: always()
run: |
kill $(cat server.pid) || true
if not matches:
print("Action: create webhook")
if args.dry_run:
print(json.dumps(payload_for_logging(payload), indent=2))

print(f"Action: update webhook id={webhook_id}")
if args.dry_run:
print(json.dumps(payload_for_logging(payload), indent=2))
if repoURL == "" {
return nil, fmt.Errorf("failed to create bitbucket provider: repo_url is required but was not provided")
}
log.Printf("[DEBUG] Bitbucket token exists: %v, email: %s, repoURL: %s", len(apiToken) > 0, email, repoURL)
if repoURL == "" {
return nil, fmt.Errorf("failed to create bitbucket provider: repo_url is required but was not provided")
}
log.Printf("[DEBUG] Bitbucket token exists: %v, email: %s, repoURL: %s", len(apiToken) > 0, email, repoURL)
Comment thread internal/teamsbot/bot.go
}
req.Header.Set("Content-Type", "application/json")

resp, err := b.client.Do(req)
log.Printf("[TeamsBot] JWT validation failed")
return c.JSON(http.StatusUnauthorized, map[string]string{"error": "unauthorized"})
}
log.Printf("[TeamsBot] Error handling activity: %s", err)
}
defer rows.Close()

items := make([]AdminBillingPortfolioOrg, 0, limit)
}
proxyReq.Header.Set("Content-Type", "application/json")

proxyResp, err := http.DefaultClient.Do(proxyReq)
err error
)
if connectorID, ok := parseInt64MetadataValue(event.MergeRequest.Metadata, "connector_id"); ok && connectorID > 0 {
token, _, err = giteainput.FindIntegrationTokenByConnectorID(p.server.DB(), int(connectorID))
func (wo *WebhookOrchestratorV2) postQuotaExhaustedResponse(provider WebhookProviderV2, event *UnifiedWebhookEventV2, locUsed int64, locLimit int64) {
if provider == nil || event == nil {
return
}
req.Header.Set(k, v)
}

resp, err := mcpHTTPClient.Do(req)
}

log.Printf("[SlackOAuth] Bot token proxied successfully to %s org %s", targetURL, orgID)
return c.Redirect(http.StatusFound, fmt.Sprintf("%s/settings#integrations", targetURL))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants