pax_global_header 0000666 0000000 0000000 00000000064 15157261227 0014522 g ustar 00root root 0000000 0000000 52 comment=24968290c970fe8822c294994dc59204e1d674c0
dgarcia360-sphinx-contributors-2496829/ 0000775 0000000 0000000 00000000000 15157261227 0017620 5 ustar 00root root 0000000 0000000 dgarcia360-sphinx-contributors-2496829/.flake8 0000664 0000000 0000000 00000000036 15157261227 0020772 0 ustar 00root root 0000000 0000000 [flake8]
max-line-length = 88
dgarcia360-sphinx-contributors-2496829/.github/ 0000775 0000000 0000000 00000000000 15157261227 0021160 5 ustar 00root root 0000000 0000000 dgarcia360-sphinx-contributors-2496829/.github/dependabot.yml 0000664 0000000 0000000 00000000436 15157261227 0024013 0 ustar 00root root 0000000 0000000 version: 2
updates:
# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
# Maintain dependencies for Poetry
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "daily"
dgarcia360-sphinx-contributors-2496829/.github/workflows/ 0000775 0000000 0000000 00000000000 15157261227 0023215 5 ustar 00root root 0000000 0000000 dgarcia360-sphinx-contributors-2496829/.github/workflows/ci.yml 0000664 0000000 0000000 00000003115 15157261227 0024333 0 ustar 00root root 0000000 0000000 ---
name: CI
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
prepare:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: "Set up Python"
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: "Install dependencies"
run: |
python -m pip install .[test,doc]
- name: "Lint code"
run: |
pre-commit run --all-files
test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
sphinx-version: ["sphinx>=9,<10"]
exclude:
# Sphinx 9 requires Python 3.11+
- python-version: "3.10"
sphinx-version: "sphinx>=9,<10"
include:
# Test older Sphinx versions only on Python 3.12
- python-version: "3.12"
sphinx-version: "sphinx>=7,<8"
- python-version: "3.12"
sphinx-version: "sphinx>=8,<9"
name: "Python ${{ matrix.python-version }} / Sphinx ${{ matrix.sphinx-version }}"
steps:
- uses: actions/checkout@v4
- name: "Set up Python"
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
- name: "Install dependencies"
run: |
python -m pip install .[test,doc]
python -m pip install "${{ matrix.sphinx-version }}"
- name: "Build sample"
run: |
make -C docs dirhtml
- name: "Run tests"
run: |
pytest -vvv
dgarcia360-sphinx-contributors-2496829/.gitignore 0000664 0000000 0000000 00000000204 15157261227 0021604 0 ustar 00root root 0000000 0000000 .coverage
.DS_Store
.eggs
.idea
.pypirc
.pytest_cache
*pyc
*.egg-info
coverage.xml
dist
docs/build
__pycache__
venv
.python-version
dgarcia360-sphinx-contributors-2496829/.pre-commit-config.yaml 0000664 0000000 0000000 00000001027 15157261227 0024101 0 ustar 00root root 0000000 0000000 repos:
- repo: https://github.com/pycqa/isort
rev: 5.13.2
hooks:
- id: isort
name: isort (python)
- repo: https://github.com/psf/black
rev: 24.10.0
hooks:
- id: black
exclude: ^venv/
- repo: https://github.com/pycqa/flake8
rev: '7.1.1'
hooks:
- id: flake8
exclude: ^venv/
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
hooks:
- id: end-of-file-fixer
- id: trailing-whitespace
- id: check-yaml
- id: check-json
dgarcia360-sphinx-contributors-2496829/.readthedocs.yml 0000664 0000000 0000000 00000000511 15157261227 0022703 0 ustar 00root root 0000000 0000000 # Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
version: 2
build:
os: ubuntu-24.04
tools:
python: "3.12"
sphinx:
configuration: docs/source/conf.py
formats: []
python:
install:
- method: pip
path: .
extra_requirements:
- doc
dgarcia360-sphinx-contributors-2496829/CHANGELOG.rst 0000664 0000000 0000000 00000011111 15157261227 0021634 0 ustar 00root root 0000000 0000000 =========
Changelog
=========
All notable changes to this project will be documented in this file.
The format is based on `Keep a Changelog `_,
and this project adheres to `Semantic Versioning `_.
[0.3.0] - 20 March 2026
========================
Added
-----
- `#36 `_: New ``:names:`` option to display real names fetched from GitHub user profiles instead of usernames.
- `#35 `_: New ``:include:`` option to manually add contributors not detected by the GitHub REST API (e.g., ``Co-authored-by`` contributors).
- `#6 `_: Support for multiple repositories in a single directive. Contributors are merged and contribution counts are summed.
- `#37 `_: Support for whitespaces in the ``:exclude:`` list.
- `#34 `_: Added ``:exclude:`` option to reference docs.
- Support for ``GITHUB_TOKEN`` environment variable to authenticate API requests and increase the rate limit from 60 to 5,000 requests per hour. The token is only used at build time and is never included in the generated output.
- New ``:avatars_only:`` option to show only clickable avatar images with no text. Useful for compact contributor grids.
- GitHub API pagination: repositories with more than 100 contributors are now fully supported.
- New examples page in the documentation showcasing all directive options.
Changed
-------
- **Breaking**: The ``:limit:`` option no longer defaults to 10. If omitted, all contributors are shown. Set ``:limit: 10`` explicitly to restore the previous behavior.
Updated
-------
- `#40 `_: Python support updated to 3.10-3.14.
- Minimum Sphinx version bumped from 5 to 7.
- `#33 `_: Bumped ``actions/checkout`` from 3 to 4.
- CI matrix optimized: older Sphinx versions tested only on Python 3.12.
- Enabled parallel read/write safe for the extension.
- Avatar layout now aligns left-to-right instead of being distributed evenly.
Fixed
-----
- `#38 `_: Fixed typo in docs (whithout -> without).
- Avatar images now render at a consistent square size.
[0.2.7] - 10 January 2023
=========================
Added
-----
- [#27](https://github.com/dgarcia360/sphinx-contributors/pull/27) Sphinx extension classifier - thanks @jdillard!
Updated
-------
- [#28](https://github.com/dgarcia360/sphinx-contributors/pull/28): Black dependency for pre-commit - thanks @jdillard!
[0.2.6] - 26 January 2022
=========================
Added
-----
- Default CSS for lists.
[0.2.4] - 21 January 2022
=========================
Added
-----
- Linting with pre-commit.
Updated
-------
- Breaking change: The package is now named ``sphinx-contributors``.
- Breaking change: The required Sphinx version is at least 3.0.
- Replaced Travis CI for GitHub Actions.
- Replaced ``setup.py`` for ``pyproject.toml``.
[0.2.3] - 25 November 2021
==========================
Added
-----
* [#1](https://github.com/dgarcia360/sphinx-contributors/issues/1): The directive supports an option to render contributor's avatars - thanks @segfaultxavi!
* [#3])(https://github.com/dgarcia360/sphinx-contributors/issues/3): The docs now explain how to render contributors in a grid view.
* [#4](https://github.com/dgarcia360/sphinx-contributors/issues/4): The directive supports an option to hide the number of commits done by a contributor.
* [#13](https://github.com/dgarcia360/sphinx-contributors/issues/13): Docs for this extesion are now hosted on ReadTheDocs.
Updated
-------
* The extension now raises a warning instead of an error if the repository cannot be retrieved. This is especially useful when trying to build docs without internet connection.
[0.2.2] - 03 August 2019
========================
Added
-----
* [#2](https://github.com/dgarcia360/sphinx-contributors/issues/2): The directive supports an option to limit the number of contributors.
* The directive supports an option to sort contributors per number of commits.
* The directive supports an option to exclude usernames from the contributors' list.
Changed
--------
* Before, the repository name was passed as an option. Now, the directive accepts the repository name as an argument.
[0.1.0] - 18 July 2018
=======================
Added
-----
* Initial code release
dgarcia360-sphinx-contributors-2496829/LICENSE.md 0000664 0000000 0000000 00000002071 15157261227 0021224 0 ustar 00root root 0000000 0000000 Copyright (c) 2018 - present David Garcia (@dgarcia360).
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
dgarcia360-sphinx-contributors-2496829/README.rst 0000664 0000000 0000000 00000003451 15157261227 0021312 0 ustar 00root root 0000000 0000000 sphinx-contributors
===================
``sphinx-contributors`` is a Sphinx extension that automatically lists the people who have contributed to your GitHub repositories, right inside your documentation.
.. image:: https://raw.githubusercontent.com/dgarcia360/sphinx-contributors/master/docs/source/_static/example_avatars.png
Features
---------
- List contributors from one or multiple GitHub repositories in a single directive.
- Display real names, avatars, and contribution counts.
- Manually include contributors not detected by the API (e.g., ``Co-authored-by`` contributors).
- Exclude bots and specific users.
- Sort by most or least active, and limit the number shown.
Requirements
---------------------
- GitHub public repositories.
- Python 3.10+ and Sphinx 7.0+.
Installation
------------
#. Install ``sphinx-contributors`` using PIP.
.. code-block:: bash
pip install sphinx-contributors
#. Add the extension to your Sphinx project ``conf.py`` file.
.. code-block:: python
extensions = ['sphinx_contributors']
Usage
-----
Using the directive:
.. code-block:: rst
.. contributors:: sphinx-doc/sphinx
Renders:
.. image:: https://raw.githubusercontent.com/dgarcia360/sphinx-contributors/master/docs/source/_static/example.png
Check out the full documentation for more customizable options at https://sphinx-contributors.readthedocs.io/
Contributing
------------
We encourage public contributions!
Please review `CONTRIBUTING `_ for details on our code of conduct and development process.
License
-------
Copyright (c) 2018 - present David Garcia (`@dgarcia360 `_).
Licensed under the `MIT License `_.
dgarcia360-sphinx-contributors-2496829/docs/ 0000775 0000000 0000000 00000000000 15157261227 0020550 5 ustar 00root root 0000000 0000000 dgarcia360-sphinx-contributors-2496829/docs/Makefile 0000664 0000000 0000000 00000001176 15157261227 0022215 0 ustar 00root root 0000000 0000000 # Minimal makefile for Sphinx documentation
#
# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = source
BUILDDIR = build
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
.PHONY: help Makefile
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
dgarcia360-sphinx-contributors-2496829/docs/make.bat 0000664 0000000 0000000 00000001374 15157261227 0022162 0 ustar 00root root 0000000 0000000 @ECHO OFF
pushd %~dp0
REM Command file for Sphinx documentation
if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
)
set SOURCEDIR=source
set BUILDDIR=build
if "%1" == "" goto help
%SPHINXBUILD% >NUL 2>NUL
if errorlevel 9009 (
echo.
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
echo.installed, then set the SPHINXBUILD environment variable to point
echo.to the full path of the 'sphinx-build' executable. Alternatively you
echo.may add the Sphinx directory to PATH.
echo.
echo.If you don't have Sphinx installed, grab it from
echo.http://sphinx-doc.org/
exit /b 1
)
%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
goto end
:help
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
:end
popd
dgarcia360-sphinx-contributors-2496829/docs/requirements.txt 0000664 0000000 0000000 00000000031 15157261227 0024026 0 ustar 00root root 0000000 0000000 sphinx-contributors[doc]
dgarcia360-sphinx-contributors-2496829/docs/source/ 0000775 0000000 0000000 00000000000 15157261227 0022050 5 ustar 00root root 0000000 0000000 dgarcia360-sphinx-contributors-2496829/docs/source/_static/ 0000775 0000000 0000000 00000000000 15157261227 0023476 5 ustar 00root root 0000000 0000000 dgarcia360-sphinx-contributors-2496829/docs/source/_static/css/ 0000775 0000000 0000000 00000000000 15157261227 0024266 5 ustar 00root root 0000000 0000000 dgarcia360-sphinx-contributors-2496829/docs/source/_static/css/custom.css 0000664 0000000 0000000 00000000065 15157261227 0026313 0 ustar 00root root 0000000 0000000 .custom-contributors img {
border-radius: 50%;
}
dgarcia360-sphinx-contributors-2496829/docs/source/_static/example.png 0000664 0000000 0000000 00000562423 15157261227 0025653 0 ustar 00root root 0000000 0000000 ‰PNG
IHDR
D Úr}Å )iCCPICC Profile H‰•—T“É€ç/IHHh�H ½ R¤K¯¤ƒ��J AÅŽ,*¸T,XÑ×È¢"ö²öþ@EEY6TÞ$tõ¼÷λçÌÿ¹sçν7óÏ™@5Š-e¡j dóÄÑ!þÌĤd&é! - ô€›#ùEE…(ÃïÊ» ‘½¯ÚÊ|ýÜÿ_E�Ë“p @¢ §r%œlȇ À]8"q „^¨7™‘'‚L„QM1²©ŒÓì&ãT‡Ëmb£ § De³Åé ¨ÈâbæsÒ¡•e�í…\�r3doŸÍ…üò˜ììȪ–�-S¿ó“þŸ©#>ÙìôVä"¥@�D”Åžõ–ãKv–txب|qh´,gYÝ2sÂdL…|N˜ Yò5Wn/ã'|ihÜ�ýŽ$ Ö0 @©\v`d=ÈÆÂ¬ˆð!½wš ˜Ö�ä±bcQ®8'zÈ?:“' Šf¶X>—̦Dšç7äsŸÇöÙTÀ�MPĉ¶çâ# «@¾'ÉŒ ²y^Àˆ¶K£e1Ãÿiâàh…
fš-ÎóàXCžÇ�
UŒÅ¦qØòØ´!gð$‰áÃqry�Aм°Bž0n(~¬L”ç=d¿S”5d�5ó²BdzcÈm’ü˜á±}yp±)òÅ�(/*V®™Áž¥ˆ·á &�–
r@´õ6ôÂ_Šž`Àb�xÀvH3<"AÞ#„ÏP þ‚Ä’‘qþò^ȇú/#ZÅÓ¤É{óå#2ÁÈÙ dÁßRù(áÈlñà1Ô~š�cÍ‚MÖ÷“Ž©:¬#‰¡Ä`¢®‹{ãžx8|úÂæˆ»áîÃq}³'öМ²ªIìkì{ì?õ�<ÞÌ<ÙÇ�#š%¤óó˜~p·æ1YBŽÝ¦£½ÜEe{¿bkyÃ�ïéãÂ7]n î%P™þMdž{Б' Ðß}Ó™¼†Ë~% GÛ9Rq¾B‡Ë@ªðKÑpﲄ9à |A˜ "A,HÓ`�ùp�ŠÁ0,Å ¬kÁF°ì »Á>p 4€fpœA;¸îµÒ
^€>ð BBhÑA3ÄqDÜo$ G¢‘$$IG„ˆ™ƒ,BJ‘2d#²©F~GŽ '�óHréBz�×È'C©¨&ª�š£cQ7Ô
CcÑ©h:š‹ Eèrt=Z‰îEëÑèEô:Ú‰¾@û1€)c̳Åܰ ,KÆÒ016+ÁʱJ¬k‚ÿôU¬ëÅ>âDœŽ3q[¸^Cñ8œƒçâóðeøF|7^�ŸÂ¯â]xþ•@#èl!‘�N˜A(&”vNÃo§›ðŽH$2ˆDWøí%3ˆ³‰Ëˆ›‰uÄbñ±ŸD"é�lH^¤H›”G*&m í%']!u“>()+*9*+%+ •
•Ê•ö(Sº¢ôTi€¬F6#{�#É\ò,ò
òNrù2¹›<@Q§XP¼(±”ÊBÊzJ-å4åå�²²²±²»ò$e�òåõÊû•Ï)w)¤jP©Ô)T)u9µŠÚB½M}C£ÑÌi¾´dZm9šv’ö€öA…®b§ÂRáªÌW©P©W¹¢òR•¬j¦ê§:Mµ@µ\õ êeÕ^5²š¹Z€[mžZ…Úµ›jýêtuõHõlõeê{ÔÏ«?Ó i˜kip5Š4vhœÔxDÇè&ô