๐Ÿ’ Spring

Github API - Repository ์—ฐ๋™ํ•ด์„œ Issue์— Comments ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

2020. 12. 11. 13:44
๋ชฉ์ฐจ
  1. Github API ์‚ฌ์šฉ ํ•˜๊ธฐ
๋ฐ˜์‘ํ˜•

Github API ์‚ฌ์šฉ ํ•˜๊ธฐ

github-api.kohsuke.org/index.html

 

GitHub API for Java โ€“

What is this? This library defines an object oriented representation of the GitHub API. By "object oriented" we mean there are classes that correspond to the domain model of GitHub (such as GHUser and GHRepository), operations that act on them as defined a

github-api.kohsuke.org

 

์œ„ ํŽ˜์ด์ง€๋ฅผ ๋“ค์–ด๊ฐ€๋ณด๋ฉด, 

์Œ....... ์‹œ์ž‘๋ถ€ํ„ฐ ๋ง‰๋ง‰ํ•˜๋‹ค.

 

์‹œ์ž‘์— ์•ž์„œ Download ๋ฅผ ํ•ด๋ณด์ž

 

 

 

์˜์กด์„ฑ ์ถ”๊ฐ€

 <!-- https://mvnrepository.com/artifact/org.kohsuke/github-api -->
        <dependency>
            <groupId>org.kohsuke</groupId>
            <artifactId>github-api</artifactId>
            <version>1.117</version>
        </dependency>

 

 

์ž ์ด์ œ๋ถ€ํ„ฐ ์‹œ์ž‘์ด๋‹ค.

 

์•„๊นŒ ์ฒ˜์Œ ๋ดค๋˜ ์˜์–ด๋กœ๋งŒ ๋˜์–ด์žˆ๋Š” ํŽ˜์ด์ง€๋ฅผ ๋˜ ๋ด์•ผํ•œ๋‹ค.

์œ„์— ํŒจ์Šค์›Œ๋“œ๋ฅผ ๋„ฃ์–ด์„œ ์ƒ์„ฑํ•˜๋Š”๊ฑฐ๋Š” not recommended๋ผ๊ณ  ์ ํ˜€์žˆ์œผ๋‹ˆ๊นŒ ํ•˜์ง€ ๋ง๊ณ ,

๋ฐ‘์— ๋ณด๋‹ˆ๊นŒ Personal access token์„ ์‚ฌ์šฉํ•ด์„œ github์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋Ÿผ Personal accsess token์„ ๋ฐ›์•„์•ผ ํ•œ๋‹ค..

Personal access token์„ ๋ฐœ๊ธ‰ ๋ฐ›๋Š” ๋ฐฉ๋ฒ•์€ Github - Personal Access Token ์„ ์ฐธ์กฐํ•˜์ž.

 

Github - Personal Access Token ๋ฐ›๋Š” ๋ฒ•

Personal Access Token Github ์ ‘์† - profile - Settings Settings / Developer settings / Personal access tokens ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์— Generate new token์„ ํด๋ฆญํ•ด์ค€๋‹ค. Note ์—๋Š” ์ด ํ† ํฐ์€ ๋ฌด์—‡์„ ์œ„ํ•ด ์‚ฌ์šฉ..

iseunghan.tistory.com

 

 

Github connect

Github gitHub = new GitHubBuilder().withOAuthToken("token").build();

 

GHRepository

GHRepository repository = gitHub.getRepository("user/repository_Name");

 

Github repository๋ฅผ ๊ฐ€์ ธ์™€์„œ Issue๋„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๊ณ , ๊ทธ issue ์•ˆ์— comment ๋‚จ๊ธด ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

public class App {
	private Github github;
    private GHRepository repository;
    
    public App() throws IOException {
    	gitHub = new GitHubBuilder().withOAuthToken("์—ฌ๊ธฐ์— ํ† ํฐ์„ ๋„ฃ์–ด์ค€๋‹ค").build();
        repository = github.getRepository("repository name");
        
        // Issue๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜๋„ ์žˆ๋‹ค.
        GHIssue issue = repository.getIssue(i);
        
        // Issue์— ์žˆ๋Š” comments๋„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜๋„ ์žˆ๋‹ค.
        List<GHIssueComment> comments = issue.getComments();
        
        // comments์— ๋ณด๋ฉด User์˜ ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜๋„ ์žˆ๋‹ค.
		for (GHIssueComment comment : comments) {
        	comment.getUser();
            comment.getUser().getName();
            ..
		}
    }	
}

์•„์ง ์—ฌ๊ธฐ๊นŒ์ง€ ๋ฐ–์— ๊ณต๋ถ€ ๋ชปํ•ด์„œ ๊ณต๋ถ€ ํ•ด๊ฐ€๋ฉด์„œ ๋‚ด์šฉ์„ ์ฑ„์›Œ ๋‚˜๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)
  1. Github API ์‚ฌ์šฉ ํ•˜๊ธฐ
'๐Ÿ’ Spring' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [intelliJ] Console log color ์ ์šฉ ์•ˆ๋  ๋•Œ
  • [JUnit] JUnit5 ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•
  • [JUnit] - JUnit5 ์‹œ์ž‘ํ•˜๊ธฐ
  • Github - Personal Access Token ๋ฐ›๋Š” ๋ฒ•
iseunghan
iseunghan
๊พธ์ค€ํ•˜๊ฒŒ ์—ด์‹ฌํžˆ..
iseunghan๊พธ์ค€ํ•˜๊ฒŒ ์—ด์‹ฌํžˆ..
iseunghan
iseunghan

๊ณต์ง€์‚ฌํ•ญ

  • ์–ด์ œ๋ณด๋‹ค ๋‚˜์€ ์˜ค๋Š˜์ด ๋˜๊ธฐ ์œ„ํ•ด ๐Ÿ”ฅ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (261)
    • ๐Ÿ’ Spring (14)
      • ๊ฐœ๋… ๋ฐ ์ดํ•ด (2)
      • Spring ํ•ต์‹ฌ ๊ธฐ์ˆ  (24)
      • Spring REST API (8)
      • Spring MVC, DB ์ ‘๊ทผ ๊ธฐ์ˆ  (7)
      • Spring Security (23)
      • Spring in Action (1)
    • ๐ŸŒป JAVA (84)
      • ์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ (20)
      • ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์ž๋ฃŒ๊ตฌ์กฐ (13)
      • ๋””์ž์ธ ํŒจํ„ด (7)
      • ์ •๋ฆฌ์ •๋ฆฌ์ •๋ฆฌ (43)
      • JUnit (1)
    • ๐Ÿ”– Snippets (3)
      • Javascript (3)
    • โš™๏ธ Devops (22)
      • โ› Git (11)
      • ๐Ÿณ Docker (6)
      • ๐Ÿง Linux (3)
      • ๐ŸŒˆ Jenkins (1)
      • ๐Ÿ“ฌ Kafka (1)
    • ๐Ÿ’ฌ ETC.. (4)
      • ๐Ÿ’ป macOS (2)
    • ๐ŸŒง๏ธ ORM (2)
      • JPA (2)
    • ๐Ÿ Python (2)
    • ๐Ÿ“š Databases (15)
      • ์˜ค๋ผํด๋กœ ๋ฐฐ์šฐ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐœ๋ก ๊ณผ ์‹ค์Šต(2ํŒ) (3)
      • RealMySQL 8.0 (8)
    • ๐Ÿ”ฅ Computer Science (5)
      • ๐Ÿ“ก ๋„คํŠธ์›Œํฌ (5)
    • ๐Ÿท๏ธ ํ˜‘์—… (1)
    • ๐Ÿ“œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ (38)
      • BAEKJOON\์ˆ˜ํ•™ 1, ์ˆ˜ํ•™ 2 (8)
      • BAEKJOON\์žฌ๊ท€ (5)
      • BAEKJOON\๋ธŒ๋ฃจํŠธ ํฌ์Šค (3)
      • BAEKJOON\์ •๋ ฌ (1)
      • BAEKJOON\๋ฐฑํŠธ๋ž˜ํ‚น (5)
      • BAEKJOON\BFS, DFS (6)
      • BAEKJOON\์ด๋ถ„ํƒ์ƒ‰ (1)
      • BAEKJOON\๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ (9)
      • BAEKJOON\๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ (0)
    • โœจ ISEUNGHAN (1)

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๊ธ€

์ „์ฒด
์˜ค๋Š˜
์–ด์ œ
๋ฐ˜์‘ํ˜•
hELLO ยท Designed By ์ •์ƒ์šฐ.
iseunghan
Github API - Repository ์—ฐ๋™ํ•ด์„œ Issue์— Comments ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๊ฐœ์ธ์ •๋ณด

  • ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ
  • ํฌ๋Ÿผ
  • ๋กœ๊ทธ์ธ

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.