원클릭으로
github-api-hybrid
Rules for using both GraphQL and REST APIs simultaneously for GitHub data fetching.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Rules for using both GraphQL and REST APIs simultaneously for GitHub data fetching.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Node.js best practices and runtime configuration for GitData-BackEnd.
Mandatory rule requiring a corresponding Vitest/React Testing Library test file for every React component (.tsx) in GitData frontend.
Catalog of all specialized skills used across the GitData Monorepo project.
Guidelines for mathematically deducing advanced widget data on the backend.
Architecture rules for building UI widgets, supporting i18n locales, and multi-theme logic.
Mandatory rule to keep CSS files inside a styles/ folder relative to their component.
| name | github-api-hybrid |
| description | Rules for using both GraphQL and REST APIs simultaneously for GitHub data fetching. |
When building widgets for GitData, the GitHub GraphQL API is excellent for deep relational data (like PRs, repositories, and languages). However, it is poorly optimized for fetching chronological event feeds or exact timestamps of recent activity. Therefore, GitData uses a Hybrid approach.
contributionsCollection).GET /users/{username}/events/public) strictly for time-sensitive, chronological feeds (e.g., Activity Stream or determining the exact hours a user codes).try/catch block. If it fails, the backend must gracefully degrade and return empty arrays for the activity stream, but MUST still return the GraphQL data successfully.// GraphQL Call
const response = await octokit.graphql(query, { login: username });
// Supplemental REST Call
let publicEvents = [];
try {
const eventsRes = await octokit.request('GET /users/{username}/events/public', { username, per_page: 50 });
publicEvents = eventsRes.data;
} catch (e) {
console.warn('Could not fetch REST events', e);
}