Úvod

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ľ a úlohy štúdie

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í.

Metodika výskumu

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.

Získavanie údajov

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

# 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"))
}

Získavanie údajov

Ď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
)

Analýza údajov

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

Vizualizácia údajov

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))

Záver

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.