FeedbackFlow is a set of tools designed to collect and consolidate feedback from GitHub issues, discussions, and YouTube comments into a machine-readable format (JSON). With dedicated components for different platforms, FeedbackFlow simplifies the process of centralizing feedback for analysis and decision-making.
This tool retrieves data from GitHub issues and discussions, including associated comments. The collected information is saved as JSON files, enabling easy integration with other tools.
This tool gathers comments from specified YouTube videos or playlists and exports them into JSON format. Input sources can be configured through a file or directly via command-line arguments.
To use FeedbackFlow, ensure you have the following:
- .NET 9.0 SDK installed
- A valid GitHub API Key
- A valid YouTube API Key
-
Clone the repository:
git clone https://github.com/davidfowl/feedbackflow.git cd feedbackflow -
Restore dependencies:
dotnet restore
-
Build the project:
dotnet build
To collect feedback from GitHub:
./ghdump -r <repository>To gather comments from YouTube:
./ytdump -v <video-id> -o <output-file.json>To run the Azure Functions project locally, you'll need to configure the local.settings.json file in the feedbackfunctions directory. Create the file with the following structure:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated",
"GitHub:AccessToken": "your_github_pat_here",
"YouTube:ApiKey": "your_youtube_api_key_here",
"Azure:OpenAI:Endpoint": "your_azure_openai_endpoint",
"Azure:OpenAI:ApiKey": "your_azure_openai_key",
"Azure:OpenAI:Deployment": "your_model_deployment_name"
}
}-
GitHub Personal Access Token (PAT)
- Create a GitHub PAT with
reposcope - Set it in
GitHub:AccessToken
- Create a GitHub PAT with
-
YouTube API Key
- Create a project in Google Cloud Console
- Enable YouTube Data API v3
- Create API credentials
- Set the key in
YouTube:ApiKey
-
Azure OpenAI Configuration
- Create an Azure OpenAI resource
- Set the endpoint URL in
Azure:OpenAI:Endpoint - Set the API key in
Azure:OpenAI:ApiKey - Deploy a model and set its name in
Azure:OpenAI:Deployment
-
Azure Storage Emulator
- Install Azure Storage Emulator for local development
- The default connection string is already set in
AzureWebJobsStorage
After configuring the settings:
cd feedbackfunctions
func startNote: Keep your API keys and tokens secure and never commit them to source control.
You will need the following:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated"
},
"YouTube:ApiKey": "YOUR_API_KEY_HERE",
"Reddit:ClientId": "YOUR_REDDIT_CLIENT_ID",
"Reddit:ClientSecret": "YOUR_REDDIT_CLIENT_SECRET",
"GitHub:AccessToken": "YOUR_ACCESS_TOKEN_HERE",
"Azure:OpenAI:Endpoint": "YOUR_AZURE_OPENAI_ENDPOINT",
"Azure:OpenAI:ApiKey": "YOUR_AZURE_OPENAI_API_KEY",
"Azure:OpenAI:Deployment": "YOUR_DEPLOYMENT_NAME",
"Twitter:BearerToken": "YOUR_TWITTER_BEARER_TOKEN",
"BlueSky:Username": "YOUR_BLUESKY_USERNAME",
"BlueSky:AppPassword": "YOUR_BLUESKY_APP_PASSWORD"
}This project is licensed under the MIT License. See the LICENSE file for details.