GitHub je popredná platforma na hosting a spoluprácu pri vývoji softvéru. V tejto štúdii budeme analyzovať úložiská GitHub s cieľom identifikovať kľúčové trendy vo vývoji softvéru a určiť faktory, ktoré ovplyvňujú popularitu úložísk.
Cieľom štúdie je analyzovať úložiská GitHub s využitím otvoreného rozhrania API a identifikovať nasledujúce aspekty: - Základné parametre repozitárov, ako je počet hviezdičiek a počet forkov. - Rozdelenie repozitárov do rôznych kategórií a programovacích jazykov. - Identifikácia najpopulárnejších repozitárov a ich vlastností.
Na dosiahnutie nášho cieľa použijeme tieto metódy: 1. Získanie údajov pomocou rozhrania GitHub API. 2. Analýza štatistických ukazovateľov repozitárov. 3. Vizualizácia údajov s cieľom prehľadne prezentovať výsledky. 4. Interpretácia a diskusia o zisteniach.
Na analýzu použijeme otvorené rozhranie API služby GitHub na prístup k údajom úložiska. Prvým krokom je získanie štatistických údajov o úložisku vrátane počtu hviezdičiek a počtu forkov.
# Inštalácia a stiahnutie potrebných balíkov
#install.packages(c("httr", "jsonlite", "dplyr", "ggplot2"))
library(httr)
## Warning: пакет 'httr' был собран под R версии 4.3.3
library(jsonlite)
library(dplyr)
##
## Присоединяю пакет: 'dplyr'
## Следующие объекты скрыты от 'package:stats':
##
## filter, lag
## Следующие объекты скрыты от 'package:base':
##
## intersect, setdiff, setequal, union
library(ggplot2)
## Warning: пакет 'ggplot2' был собран под R версии 4.3.3
# Funkcia na načítanie údajov z API
load_github_data <- function(url) {
response <- httr::GET(url)
if (httr::http_error(response)) {
stop("HTTP error: ", httr::http_status(response)$message)
}
jsonlite::fromJSON(httr::content(response, "text"))
}
Ďalej získame zoznam úložísk a ich štatistiky pomocou rozhrania GitHub API.
# URL na získanie zoznamu úložísk pre rok 2023
repos_url <- "https://api.github.com/search/repositories?q=created:2023-01-01..2023-12-31&sort=stars&order=desc"
# Získajte údaje o úložisku
repos_data <- load_github_data(repos_url)
# Konverzia údajov do dátového rámca
repos_df <- data.frame(
Repository = repos_data$items$name,
Stars = repos_data$items$stargazers_count,
Forks = repos_data$items$forks_count
)
Pozrime sa na prvé riadky výsledných údajov.
# Zobrazenie prvých riadkov dátového rámca
head(repos_df)
## Repository Stars Forks
## 1 the-algorithm 61315 12150
## 2 llama.cpp 55561 7835
## 3 llama 52399 9039
## 4 gpt-engineer 50386 6548
## 5 segment-anything 43855 5164
## 6 FastChat 33593 4104
Na vizualizáciu rozdelenia repozitárov podľa počtu hviezdičiek vykreslíme graf.
# Vytvorenie grafu
ggplot(repos_df, aes(x = Repository, y = Stars)) +
geom_bar(stat = "identity", fill = "skyblue") +
labs(title = "Top Repositories by Stars in 2023", x = "Repository", y = "Stars") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Analýza repozitárov na
GitHub umožňuje identifikovať kľúčové trendy a populárne technológie vo vývoji softvéru. Prezentované výsledky analýzy pomôžu vývojárom a výskumníkom lepšie pochopiť dynamiku zmien a vývojové trendy v komunite GitHub.