Обзор моей заявки
Что?
Это базовый проект для поиска сообщений в вашей истории коммитов.
Зачем?
Я думал создать приложение для получения информации из моих коммитов, если я хочу найти какое-то важное сообщение, которое было написано ранее.
Как?
Для получения информации использовался 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()
Как осуществляется доступ к данным:
Данные будут загружаться с сервера через конечные точки во фронтенд. Там вы сможете видеть все коммиты и искать данные.
- Получение всех данных (используется функция search() из репозитория Redis)
app.get('/commits', async (req, res) => {
const commits = await commitRepository.search().return.all();
res.json(commits)
})
- Поиск сообщений…
Лицензия: MIT
Дополнительные ресурсы / информация
Github-Api
Docker-Image
Коллабораторы
Одиночный проект
- Ознакомьтесь с Redis OM, клиентскими библиотеками для работы с Redis как многомодельной базой данных.
- Используйте RedisInsight для визуализации данных в Redis.
- Подпишитесь на бесплатную базу данных Redis.