Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
jupyter-naas
GitHub Repository: jupyter-naas/awesome-notebooks
Path: blob/master/GitHub/GitHub_Get_Traffic_Clones_on_repository.ipynb
2973 views
Kernel: Python 3

GitHub.png

GitHub - Get Traffic Clones on repository

Give Feedback | Bug report

Tags: #github #api #traffic #clones #plotly #linechart

Last update: 2023-04-12 (Created: 2023-02-08)

Description: This notebook will show how to get traffic clones on a GitHub repository.

Input

Import libraries

import requests import naas from pprint import pprint import pandas as pd import plotly.graph_objects as go

Setup Variables

  • Create your personal access token here

  • Select all scopes on "repo" section

repo_url = "https://github.com/jupyter-naas/awesome-notebooks" token = naas.secret.get("GITHUB_TOKEN") or "GITHUB_TOKEN"

Model

Get Traffic Clones

This function will get the traffic clones of a GitHub repository.

def get_traffic_clones(repo_url, token): # owner + name of the repository owner = repo_url.split("/")[-2] name = repo_url.split("/")[-1] url = f"https://api.github.com/repos/{owner}/{name}/traffic/clones" headers = {"Authorization": f"token {token}"} response = requests.get(url, headers=headers) return response.json() traffic_clones = get_traffic_clones(repo_url, token) pprint(traffic_clones)

Output

Display data

print("-> Git clones on the last 14 days") print(f"Clones count: {traffic_clones.get('count')}") print(f"Uniques cloner: {traffic_clones.get('uniques')}") df = pd.DataFrame(traffic_clones.get("clones")) df

Display graph

fig = go.Figure() fig.add_trace( go.Scatter( name="count", x=df["timestamp"], y=df["count"], mode="lines+markers", marker=dict(color="blue"), ) ) fig.add_trace( go.Scatter( name="uniques", x=df["timestamp"], y=df["uniques"], mode="lines+markers", marker=dict(color="orange"), ) ) fig.update_layout(title="Git clones") fig.show()