1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/yadong.zhang-gitee-stargazers

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 11 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 12.03.2025 01:51 557636e

gitee-stargazers

Отображает количество звёзд проекта Gitee в виде графика.

Официальный пример: https://www.whnb.wang

⚠️⚠️ При значительном увеличении количества пользователей, серверные ресурсы официального сайта достигли своего предела. Поэтому данная услуга временно приостановлена. В ближайшее время мы обновим серверные ресурсы и снова запустим её. Благодарим за вашу поддержку! Прошу понять возможные неудобства. Мы рекомендуем вам использовать gitee-stargazers для создания собственной службы. ⚠️⚠️

Описание проекта

Сейчас наиболее популярной службой для отслеживания трендов звёзд является starchart.cc, например:

Stargazers over time

Но эта служба не поддерживает репозитории Gitee. Это должно быть исправлено!

Как использовать

Npm

Необходимо сначала изменить конфигурацию config/config.js:

Замените часть, помеченную как 'локальные изменения требуют модификации этого параметра', своим реальным содержанием.

npm run start

Docker

# 1. Получение образа
docker pull justauth/gitee-stargazers:v1.11

# 2. Создание локальной базы данных Redis, можно использовать Docker или установить локально (необходимо обеспечить доступ из контейнера)
```# 3. Запуск контейнера
```bash
docker run \
   -d \
   -p 3000:3000 \
   -e GITEE_USERNAME={ваш логин на Gitee} \
   -e GITEE_PASSWORD={<PASSWORD>} \
   -e GITEE_CLIENT_ID={ID клиента OAuth вашего приложения на Gitee} \
   -e GITEE_CLIENT_SECRET={секрет клиента OAuth вашего приложения на Gitee} \
   -e REDIS_HOST={хост Redis, по умолчанию 127.0.0.1} \
   -e REDIS_PORT={порт Redis, по умолчанию 6379} \
   -e REDIS_PASSWORD={<PASSWORD> Redis, обязательный параметр} \
   -e REDIS_DB_INDEX={индекс базы данных Redis, по умолчанию 1} \
   -e REDIS_EXPIRE={время истечения срока действия кэша Redis, по умолчанию 3600 секунд} \
   -e REDIS_CONNECT_TIMEOUT={время ожидания соединения Redis, по умолчанию 3000 миллисекунд} \
   -e CONTRIBUTORS_DIR={путь к директории, содержащей аватарки вкладчиков} \
   -e PROD=true \
   -v /var/log/gitee-stargazers/:/usr/src/app/log/ \
   -v /var/gs/contributors/:/usr/src/gs/contributors/ \
   --name gitee-stargazers \
   justauth/gitee-stargazers:v1.11

Параметры командной строки:

  • GITEE_USERNAME: ваш логин на Gitee
  • GITEE_PASSWORD:
  • GITEE_CLIENT_ID: ID клиента вашего приложения OAuth на Gitee
  • GITEE_CLIENT_SECRET: секрет клиента вашего приложения OAuth на Gitee
  • REDIS_HOST: хост Redis, по умолчанию 127.0.0.1
  • REDIS_PORT: порт Redis, по умолчанию 6379
  • REDIS_PASSWORD: пароль Redis, обязательный параметр
  • REDIS_DB_INDEX: индекс базы данных Redis, по умолчанию 1
  • REDIS_EXPIRE: время жизни кэша Redis, опциональный параметр, по умолчанию 3600, единицы измерения — секунды
  • REDIS_CONNECT_TIMEOUT: время ожидания соединения с Redis, опциональный параметр, по умолчанию 3000, единицы измерения — миллисекунды
  • CONTRIBUTORS_DIR: путь к директории, содержащей аватарки вкладчиков- PROD: является ли окружение продактшном, строковый тип; если значение равно 'true', то консольные логи будут записываться в файл. При запуске Docker можно использовать следующие команды для просмотра логов:- Для просмотра бизнес-логов консоли: tail -f /var/log/gitee-stargazers/console-xxx.log
  • Для просмотра логов доступа: tail -f /var/log/gitee-stargazers/access-xxx.log

Docker Compose

Создайте файл docker-compose.yml.

version: '3.3'
services:
  app:
    image: "justauth/gitee-stargazers:v1.11"
    container_name: "gitee-stargazers"
    volumes:
      - /var/log/gitee-stargazers/:/usr/src/app/log/
    environment:
      # Является ли это окружение production? Строка типа, когда значение равно 'true', консольные логи будут записываться в файл
      PROD: "true"
      # Ваше имя пользователя на Gitee
      GITEE_USERNAME: "xx"
      # Пароль вашего аккаунта на Gitee
      GITEE_PASSWORD: "xx"
      # ID клиента OAuth приложения Gitee
      GITEE_CLIENT_ID: "xx"
      # Клиентский секрет OAuth приложения Gitee
      GITEE_CLIENT_SECRET: "xx"
      # Хост Redis соединения, по умолчанию 127.0.0.1
      REDIS_HOST: 'redis'
      # Порт Redis, по умолчанию 6379
      REDIS_PORT: 6379
      # Пароль Redis, обязательный параметр, пароль, указанный при запуске контейнера Redis (--requirepass)
      REDIS_PASSWORD: "gs123456"
      # Время ожидания соединения Redis, секунды
      REDIS_CONNECT_TIMEOUT: 3
      # Время жизни кэша Redis, секунды
      REDIS_EXPIRE: 3600
      # Индекс базы данных Redis, по умолчанию 1
      REDIS_DB_INDEX: 2
      # Путь к папке с аватарами участников
      CONTRIBUTORS_DIR: /usr/src/gs/contributors
    ports:
      - "3000:3000"
    depends_on:
      - redis
    links:
      - redis
  redis:
    image: redis
    container_name: "gs_redis"
    command: redis-server --appendonly yes --requirepass gs123456
    ports:
      - "6379:6379"
    volumes:
      - /var/redis/:/data/

Замените значения в разделе environment на реальные данные согласно примечаниям и запустите проект с помощью docker-compose.```bash docker-compose up -d


### Доступ

Доступ через браузер: http://localhost:3000/{владелец}/{репозиторий}

- владелец: владелец проекта, может быть имя организации, имя пользователя или название компании
- репозиторий: имя репозитория

Пример: [http://localhost:3000/fujieid/jap](http://localhost:3000/fujieid/jap)

Пример вывода:

![](docs/img/3399b37c.png)

## О конфигурационных параметрах

- В проекте используется модель получения токена с использованием пароля, поэтому требуется настроить учетные данные Gitee. Если вы предпочитаете не использовать свои личные учетные данные, вы можете создать отдельный аккаунт на Gitee. При регистрации OAuth-приложения можно указать произвольный обратный адрес; главное — это значения `clientId` и `clientSecret`, полученные после завершения регистрации.

- Для параметра `expire` не рекомендуется использовать слишком низкие значения (по умолчанию 3600 секунд); слишком маленькие значения могут привести к ограничению скорости запросов Gitee. **Помните об этом!** В программе уже установлено ограничение, чтобы значение было не меньше 3600.

- Вы можете указать время жизни кэша конкретного проекта, добавив параметр `e` в конец URL (не менее 3600 с): `http://localhost:3000/{владелец}/{репозиторий}?e=10000`. Этот метод полезен для проектов с большим количеством звезд, так как краткосрочное увеличение числа звезд не оказывает значительного влияния на общую картину. Это позволяет повысить скорость доступа к данным.- Внимание: если данные были ранее получены через URL `http://localhost:3000/{владелец}/{репозиторий}`, то добавление параметра `?e=xx` не сбросит текущее состояние кэширования. Кэш будет действителен в течение часа, и параметр `?e=xx` будет использоваться только после истечения этого времени.

- **Файлы журнала `console-xxx.log` содержат учетные записи и пароли Redis и Gitee!** Не публикуйте эти файлы!

## Особое примечание

Проблема получения данных за более длительное время была решена благодаря поддержке команды Gitee.

## Ссылки

Файлы `index.html` и `style.css` основаны на проекте [caarlos0/starcharts](https://github.com/caarlos0/starcharts).

## Ресурсы

- GraphicsMagick: ftp://ftp.graphicsmagick.org/pub/GraphicsMagick/1.3/

## Примеры команд

### Создание образа Docker
```bash
docker build -t justauth/gitee-stargazers:v1.11 .

Отправка образа

docker push justauth/gitee-stargazers:v1.11

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/yadong.zhang-gitee-stargazers.git
git@api.gitlife.ru:oschina-mirror/yadong.zhang-gitee-stargazers.git
oschina-mirror
yadong.zhang-gitee-stargazers
yadong.zhang-gitee-stargazers
master