Поиск коммитов на Github


Обзор моей заявки

Что?
Это базовый проект для поиска сообщений в вашей истории коммитов.

Зачем?
Я думал создать приложение для получения информации из моих коммитов, если я хочу найти какое-то важное сообщение, которое было написано ранее.

Как?
Для получения информации использовался Github-API, а для локального запуска Redis использовался Docker.

Идеи по улучшению

  • использовать GitHub Actions для автоматического обновления информации
  • сохранять больше данных и фильтровать их во фронтенде
  • использовать кэширование Redis для повышения производительности.

Категория заявки:

MERN/RERN(Redis,Express,React,Node) Mavericks

Используемый язык

  • JavaScript

Tech-Stack

  • Redis для хранения данных (база данных)
  • Redis для поиска данных (поисковая система)
  • Node с express (бэкенд)
  • React (фронтенд)

Ссылка на код

Yordaniss / commit-searcher

Commit-Searcher

Небольшой проект для поиска коммитов в вашем репозитории.

Пример

Как это работает

Как хранятся данные:

После загрузки сервера данные будут сохранены в базу данных Redis из конечной точки api.

Для этого необходимо выполнить несколько шагов:

  • создать схему:
const commitSchema = new Schema(Commit, {

    message: { type: 'text' },

    author: { type: 'string' },

    url: { type: 'string' }

})
  • получить данные из вашего хранилища:
const response = octokit.request('GET https://api.github.com/repos/{owner}/{repo}/commits', {

    owner: process.env.GITHUB_OWNER,

    repo: process.env.GITHUB_REPO

});
  • сохранить данные в Redis
response.then(function(result) {

    result.data.map((commit) => {

        saveDataToRedis(

            commit.commit.message,

            commit.commit.author.name,

            commit.html_url,

        )

    })

})
  • создать индекс в Redis:
await  commitRepository.createIndex()

Как осуществляется доступ к данным:

Данные будут загружаться с сервера через конечные точки во фронтенд. Там вы сможете видеть все коммиты и искать данные.

  1. Получение всех данных (используется функция search() из репозитория Redis)
app.get('/commits', async (req, res) => {

    const commits = await commitRepository.search().return.all();

    res.json(commits)

})
  1. Поиск сообщений…
Посмотреть на GitHub

Лицензия: MIT

Дополнительные ресурсы / информация

Github-Api
Docker-Image

Коллабораторы

Одиночный проект

  • Ознакомьтесь с Redis OM, клиентскими библиотеками для работы с Redis как многомодельной базой данных.
  • Используйте RedisInsight для визуализации данных в Redis.
  • Подпишитесь на бесплатную базу данных Redis.

Оцените статью
devanswers.ru
Добавить комментарий