near-protocol-rewards
Version:
A transparent, metric-based rewards system for NEAR projects
33 lines (32 loc) • 1.13 kB
TypeScript
/**
* GitHub Metrics Collector
*
* Collects metrics from GitHub repositories including:
* - Commits
* - Pull requests
* - Issues and comments
*
* Features built-in rate limiting and error handling for API calls.
* Uses exponential backoff for retries on transient failures.
*/
import { RateLimiter } from "../utils/rate-limiter";
import { Logger } from "../utils/logger";
import { BaseCollector } from "./base";
import { GitHubMetrics } from "../types/metrics";
export declare class GitHubCollector extends BaseCollector {
private readonly octokit;
private readonly owner;
private readonly repo;
constructor({ token, repo, logger, rateLimiter, }: {
token: string;
repo: string;
logger?: Logger;
rateLimiter?: RateLimiter;
});
testConnection(): Promise<void>;
collectCommitMetrics(): Promise<GitHubMetrics["commits"]>;
collectPullRequestMetrics(): Promise<GitHubMetrics["pullRequests"]>;
collectReviewMetrics(): Promise<GitHubMetrics["reviews"]>;
collectIssueMetrics(): Promise<GitHubMetrics["issues"]>;
collectMetrics(): Promise<GitHubMetrics>;
}