Search Code Repository using GitHub API by Name or User

By
 
import os
from flask import Flask, render_template, request, jsonify
import requests

app = Flask(__name__)

GITHUB_API_URL = "https://api.github.com/search/code"

@app.route("/")
def root_route():
    return render_template('search.html')

@app.route("/search")
def search():
    query = request.args.get('q')
    headers = {'Authorization': f'token {os.environ["GITHUB_TOKEN"]}'}
    params = {'q': query}
    response = requests.get(GITHUB_API_URL, headers=headers, params=params)
    if response.status_code == 200:
        return jsonify(response.json())
    else:
        return jsonify({'error': 'Failed to fetch data from GitHub'}), response.status_code

About this template

This application is a GitHub Code Search tool, employing Flask for the backend and JavaScript with the Octokit library for the frontend. Users can input search queries, and the application fetches results from GitHub's code repository using the GitHub API. The Flask backend handles the API requests, while the JavaScript frontend dynamically displays the search results in a table format. The application provides a user-friendly interface for efficiently searching and browsing code hosted on GitHub. You can search by name or by user by customizing this template. Made by BaranDev[https://github.com/BaranDev]

Introduction to the GitHub Code Search Template

Welcome to the GitHub Code Search Template! This template allows you to create a web application that leverages the GitHub API to search for code across GitHub repositories. It features a sleek design and an intuitive user interface that displays search results in an organized manner. Whether you're looking to enhance your project with code search capabilities or just exploring the possibilities of the GitHub API, this template is a great starting point.

Getting Started

To begin using this template, simply click on "Start with this Template" on the Lazy platform. This will set up the template in your Lazy Builder interface, pre-populating the code so you can start customizing and deploying your application right away.

Initial Setup

Before you can start using the application, you'll need to set up an environment secret for the GitHub API token. This token is necessary for the application to authenticate with the GitHub API and perform searches.

  • First, you'll need to generate a personal access token on GitHub. Go to your GitHub settings, select "Developer settings," then "Personal access tokens," and generate a new token with the appropriate scopes for searching code.
  • Once you have your token, go to the Environment Secrets tab within the Lazy Builder.
  • Create a new secret with the key GITHUB_TOKEN and paste your GitHub personal access token as the value.

Test: Deploying the App

With the environment secret set, you're ready to deploy the application. Press the "Test" button on the Lazy platform. This will initiate the deployment process and, if necessary, the Lazy CLI will prompt you for any required user input.

Using the App

Once the app is deployed, you will be provided with a dedicated server link to access the web interface. Navigate to this link to interact with the GitHub Code Search application. Here's how to use it:

  • Enter a search term in the input field labeled "Enter search term..."
  • Click the "Search" button to initiate the search.
  • The search results will be displayed below the search bar, showing the name and path of the code files found.
  • You can click on the links in the search results to view the code in a new tab.

Integrating the App

If you wish to integrate this code search functionality into another service or frontend, you can use the provided server link as the API endpoint. For example, you could make AJAX calls to this endpoint from a different web application to fetch search results and display them within that application's context.

Here's a sample AJAX request you might use in another application:


fetch('YOUR_SERVER_LINK/search?q=SEARCH_TERM')
  .then(response => response.json())
  .then(data => {
    // Process and display the data
  })
  .catch(error => console.error('Error:', error));

Replace YOUR_SERVER_LINK with the server link provided by Lazy and SEARCH_TERM with the term you want to search for.

And that's it! You now have a fully functional GitHub Code Search application ready to be used and integrated as you see fit. Enjoy exploring the vast world of code available on GitHub!

Category
Technology
Last published
April 7, 2024

More templates like this

A bot that answers questions about data

Ask questions about your database via a chat bot. This chatbot connects to a SQLITE database, generates queries for it based on the schema and then runs the queries printing the response all in a nicely styled chat UI. This template is pre-loaded with sample data (car parts) to play around with - here are the sample data columns that you can query: part_number, part_name, price, units_left_in_stock, manufacturer .

Python
Flask

WebGen

WebGen: A web development app that combines front-end and back-end skills to generate code based on user requests.

React JS
Python
Flask
HTML
CSS

Customisable Signup/Login Page with User Database

This app allows users to sign up with a username and password, stores the information in a database, and displays a personalized greeting upon signing in.

Python
Flask
SQL
Home
/
Search Code Repository using GitHub API by Name or User