Как можно использовать .gitattributes, чтобы заставить Github отображать правильный основной язык для репо?

Я написал программу на Python и использовал Bootstrap в качестве внешнего интерфейса.

Когда я загружаю каталог на GitHub, он показывает, что проект на 90% состоит из JavaScript и только на 7,5% из Python. Я так понимаю, что это происходит из-за каталога JS в папке Bootstrap.

Мне нужно отобразить Python в качестве основного языка проекта для репо.

Я провел небольшое исследование и выяснил, что добавление файла .gitattributes в ваш проект — это решение, но я понятия не имею, что добавить в этот файл, чтобы Github игнорировал JavaScript при оценке основного языка проекта.

Я проверил официальную страницу руководства .gitattributes, но не смог найти прямого решения этой проблемы. .

Вот как выглядит репозиторий

Скриншот репозитория

Ссылка на репозиторий Github

Редактировать: все файлы CSS и JS находятся в папке static/, поэтому я добавил файл .gitattributes в репозиторий и добавил static/* linguist-vendored в первую строку, однако репо по-прежнему показывает JS как 90% языка.


person Eshaan Sharma    schedule 18.04.2018    source источник
comment
github.com/github/linguist/issues/2989 — поможет ли это?   -  person Evgeny    schedule 18.04.2018
comment
Или это: stackoverflow.com/q/44613192/1758363   -  person Evgeny    schedule 18.04.2018
comment
Привет, спасибо за ответ! Все файлы css и js находятся в статической папке, и даже после добавления static/* linguist-vendored в качестве первой строки в .gitignore репозиторий по-прежнему показывает JS как 90% языка проекта. Мне помогла эта страница hackernoon.com/ Я тоже прохожу по вашим ссылкам.   -  person Eshaan Sharma    schedule 18.04.2018
comment
Ваша последняя строка — *.js linguist-vendored=false, поэтому все файлы JavaScript будут учитываться в статистике. Я думаю, вы хотите *.js linguist-vendored. И вы можете удалить две первые строки.   -  person pchaigno    schedule 18.04.2018
comment
Возможный дубликат Как изменить язык репозитория на Гитхаб?   -  person pchaigno    schedule 18.04.2018
comment
@pchaigno, боже мой, это сработало МГНОВЕННО. Большое спасибо!   -  person Eshaan Sharma    schedule 18.04.2018


Ответы (1)


Официальная документация gitattributes ничего не говорит об этом, так как это особенность GitHub. Сам Git не занимается статистикой языка.

GitHub использует инструмент под названием Linguist для языковой статистики, а Linguist позволяет указать пути, которые следует игнорировать, с помощью пользовательского linguist-vendored атрибут:

Проверка кода, который вы не писали, например, библиотек JavaScript, в вашем репозитории git — обычная практика, но это часто завышает языковую статистику вашего проекта и может даже привести к тому, что ваш проект будет помечен как другой язык. По умолчанию Linguist обрабатывает все пути, указанные в vendor.yml как предоставлено поставщиком и поэтому не включает их в языковую статистику репозитория.

Используйте атрибут linguist-vendored для путей поставщика или не поставщика.

$ cat .gitattributes
special-vendored-path/* linguist-vendored
jquery.js linguist-vendored=false

Обратите внимание, что эффект от этого изменения проявится через некоторое время :

Когда вы отправляете изменения в репозиторий на GitHub.com, фоновое задание с низким приоритетом ставится в очередь для анализа вашего репозитория, как описано выше. Результаты этого анализа кэшируются на время существования вашего репозитория и обновляются только при обновлении репозитория. Поскольку этот анализ выполняется фоновым заданием с низким приоритетом, может потребоваться некоторое время, особенно в периоды занятости, для того чтобы панель языковой статистики отразила ваши изменения.

Дайте GitHub день или два, чтобы наверстать упущенное после того, как вы изменили свой .gitattributes.

person Chris    schedule 18.04.2018
comment
Спасибо за ваш ответ Крис. Я добавил последние 2 строки из приведенного выше блока кода в свой файл .gitattributes, и это по-прежнему ничего не меняет. Это то, что файл выглядит как atm github.com/sharmaeshaan/Stats4R/blob/master /.gitатрибуты - person Eshaan Sharma; 18.04.2018
comment
@EshaanSharma, пожалуйста, посмотрите примечание, которое я только что добавил к своему ответу. Также обратите внимание, что приведенные мной примеры взяты прямо из документации Linguist; вам, вероятно, не нужно буквально special-vendored-path/* linguist-vendored в вашем репо. - person Chris; 18.04.2018
comment
Понятно. Спасибо за вашу помощь! - person Eshaan Sharma; 18.04.2018
comment
@EshaanSharma, пожалуйста. Как только ваша языковая статистика будет исправлена, не забудьте вернуться и принять этот ответ если это решило вашу проблему. - person Chris; 18.04.2018
comment
Привет, @Chris, решение состояло в том, чтобы добавить всего одну строку - *.js linguist-vendored в .gitattributes, и изменения отразились мгновенно. Репозиторий теперь показывает Python в качестве основного языка. В любом случае спасибо за ваш вклад. - person Eshaan Sharma; 18.04.2018
comment
@EshaanSharma, вы уверены, что фоновая работа, о которой я упоминал, не закончилась только что? - person Chris; 18.04.2018