Provide insight into GitHub users, organizations and repositories using the GitHub GraphQL API v4 and PowerBI
Provide insight into GitHub users, organizations and repositories using the GitHub
GraphQL API v4 and PowerBI.
nano service
. The output of each nano service
is written into a document collection of the shared Azure Cosmos DB. Each service implements its own Power BI template to visualize its data.nano services
.nano service
requires sequential processing (e.g. extract the key contributors for each repository), the task should be split into multiple functions which are triggered by a queue message.CLI tool
.In order to use project-lenis
the first thing you’ll need to do is to deploy the Azure resources to your Azure subscription. Click the Deploy to Azure
button (below) to kick off a deployment.
You will be required to provide the following parameters:
appName
: A unique identifier for your app deploymentgithubToken
: A Personal Access Token for GitHub. You can generate one heredatabaseAccountName
: A unique identifier for your CosmosDB account nameorganizations
: A comma seperated list of organisations to query against
npm i -g azure-functions-core-tools
cd $REPO_ROOT/azure-functions
npm install
cp appsettings.json local.settings.json
Check appropriate values are set in your local.settings.json
file
Run the azure functions runtime host
func host start --debug vscode
Open the folder project-lenis
in Visual Studio Code, switch to the Debug view and select Attach to Azure Functions
Open a new terminal and navigate to the $REPO_ROOT/azure-functions
directory
Execute the individual functions
func run your-function-name
azure-functions
directory. Name it the same way as your nano service
is called (e.g. github-repositories
). Place all your function files into this folder.nano-service
name followed by the description of the collection itself (e.g. githubRepositories
)power-bi
folder. Name the same way as your nano service
called (e.g. github-collaboration-graph.pbit
)Edit the data query and set for each query the datasource to your CosmosDB endpoint. Provide the account key when requested.