refact: add github api type
This commit is contained in:
		
							parent
							
								
									79d8b321a5
								
							
						
					
					
						commit
						9d18600437
					
				
					 2 changed files with 85 additions and 12 deletions
				
			
		| 
						 | 
				
			
			@ -1,15 +1,6 @@
 | 
			
		|||
#! /usr/bin/env deno run --allow-net --allow-env
 | 
			
		||||
import {Issue} from "./githubType.ts";
 | 
			
		||||
 | 
			
		||||
type Issue = {
 | 
			
		||||
    id: number;
 | 
			
		||||
    url: string;
 | 
			
		||||
    title: string;
 | 
			
		||||
    body: string;
 | 
			
		||||
    number: number,
 | 
			
		||||
    labels: {
 | 
			
		||||
        name: string;
 | 
			
		||||
    }[]
 | 
			
		||||
}
 | 
			
		||||
/**
 | 
			
		||||
 * get issue from github
 | 
			
		||||
 * @param repo repository name with owner (e.g. denoland/deno)
 | 
			
		||||
| 
						 | 
				
			
			@ -21,8 +12,9 @@ type Issue = {
 | 
			
		|||
 * console.log(issues);
 | 
			
		||||
 * ```
 | 
			
		||||
 */
 | 
			
		||||
async function getIssues(repo: string, token: string): Promise<Issue[]> {
 | 
			
		||||
    const res = await fetch(`https://api.github.com/repos/${repo}/issues?per_page=100`, {
 | 
			
		||||
export async function getIssues(repo: string, token: string): Promise<Issue[]> {
 | 
			
		||||
    //check https://docs.github.com/en/rest/reference/issues#list-repository-issues
 | 
			
		||||
    const res = await fetch(`https://api.github.com/repos/${repo}/issues?per_page=100&labels=feature`, {
 | 
			
		||||
        headers: {
 | 
			
		||||
            Accept: 'application/vnd.github.v3+json',
 | 
			
		||||
            Authorization: `Token ${token}`
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										81
									
								
								tools/githubType.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								tools/githubType.ts
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,81 @@
 | 
			
		|||
export type User = {
 | 
			
		||||
    login: string;
 | 
			
		||||
    id: number;
 | 
			
		||||
    node_id: string;
 | 
			
		||||
    avatar_url: string;
 | 
			
		||||
    gravatar_id: string;
 | 
			
		||||
    url: string;
 | 
			
		||||
    html_url: string;
 | 
			
		||||
    followers_url: string;
 | 
			
		||||
    following_url: string;
 | 
			
		||||
    gists_url: string;
 | 
			
		||||
    starred_url: string;
 | 
			
		||||
    subscriptions_url: string;
 | 
			
		||||
    organizations_url: string;
 | 
			
		||||
    repos_url: string;
 | 
			
		||||
    events_url: string;
 | 
			
		||||
    received_events_url: string;
 | 
			
		||||
    type: string;
 | 
			
		||||
    site_admin: boolean;
 | 
			
		||||
};
 | 
			
		||||
export type Label = {
 | 
			
		||||
    id: number;
 | 
			
		||||
    node_id: string;
 | 
			
		||||
    url: string;
 | 
			
		||||
    name: string;
 | 
			
		||||
    description: string;
 | 
			
		||||
    color: string;
 | 
			
		||||
    default: boolean;
 | 
			
		||||
};
 | 
			
		||||
export type Milestone = {
 | 
			
		||||
    url: string;
 | 
			
		||||
    html_url: string;
 | 
			
		||||
    labels_url: string;
 | 
			
		||||
    id: number;
 | 
			
		||||
    node_id: string;
 | 
			
		||||
    number: number;
 | 
			
		||||
    state: string;
 | 
			
		||||
    title: string;
 | 
			
		||||
    description: string;
 | 
			
		||||
    creator: User;
 | 
			
		||||
    open_issues: number;
 | 
			
		||||
    closed_issues: number;
 | 
			
		||||
    created_at: string;
 | 
			
		||||
    updated_at: string;
 | 
			
		||||
    closed_at?: string;
 | 
			
		||||
    due_on: string;
 | 
			
		||||
};
 | 
			
		||||
export type PullRequest = {
 | 
			
		||||
    url: string;
 | 
			
		||||
    html_url: string;
 | 
			
		||||
    diff_url: string;
 | 
			
		||||
    patch_url: string;
 | 
			
		||||
};
 | 
			
		||||
export type Issue = {
 | 
			
		||||
    id: number;
 | 
			
		||||
    node_id: string;
 | 
			
		||||
    url: string;
 | 
			
		||||
    repository_url: string;
 | 
			
		||||
    labels_url: string;
 | 
			
		||||
    comments_url: string;
 | 
			
		||||
    events_url: string;
 | 
			
		||||
    html_url: string;
 | 
			
		||||
    number: number;
 | 
			
		||||
    state: string;
 | 
			
		||||
    title: string;
 | 
			
		||||
    body: string;
 | 
			
		||||
    user: User;
 | 
			
		||||
    labels: Label[];
 | 
			
		||||
    assignee: User;
 | 
			
		||||
    assignees: User[];
 | 
			
		||||
    milestone: any;
 | 
			
		||||
    locked: boolean;
 | 
			
		||||
    active_lock_reason: string;
 | 
			
		||||
    comments: number;
 | 
			
		||||
    pull_request: PullRequest; 
 | 
			
		||||
    closed_at?: string;
 | 
			
		||||
    created_at: string;
 | 
			
		||||
    updated_at: string;
 | 
			
		||||
    closed_by: User;
 | 
			
		||||
    author_association: string;
 | 
			
		||||
};
 | 
			
		||||
		Loading…
	
	Add table
		
		Reference in a new issue