Skip to main content

insiders

ci documentation pypi version gitter

Manage your Insiders projects.

Installation

pip install insiders

With uv:

uv tool install insiders

Usage

The insiders tool provides several commands that will help you manage projects based on a sponsorware strategy.

  • insiders backlog: Print a backlog of issues, ordered using your own defined criteria
  • insiders index: Serve a PyPI-like index locally, and upload private Insiders packages to it.
  • insiders project: Bootstrap public/insiders project pairs on GitHub.
  • insiders sponsors: Manage your sponsors (grant/revoke access to private team, etc.).

Run insiders -h to see where the configuration file is found. Example configuration:

# --------------------------------------------------------------------------- #
# Backlog configuration.                                                      #
# --------------------------------------------------------------------------- #
# The `backlog` command prints a list of issues from GitHub repositories.
# It is used to keep track of what needs to be done, and to prioritize tasks.
[backlog]

# GitHub namespaces (user accounts / organizations) from which to fetch issues.
namespaces = ["pawamoy", "mkdocstrings"]

# How many issues to display when showing the backlog.
limit = 30

# Sorting criteria, in order of importance.
# TODO: Document syntax and available options.
sort = [
    "label('bug')",
    "label('unconfirmed')",
    "label('docs')",
    "label('refactor')",
    "min_sponsorships(50)",
    "min_upvotes(2)",
    "label('insiders')",
    "repository('mkdocstrings/*')",
    "created",
]

# A shell command to get your GitHub token.
github-token-command = "command to echo token"

# A map of labels to emojis, for shorter display in the backlog.
[backlog.issue-labels]
bug = "🐞"
docs = "📘"
feature = "✨"
insiders = "🔒"
unconfirmed = "❔"

# --------------------------------------------------------------------------- #
# Index configuration.                                                        #
# --------------------------------------------------------------------------- #
# The `index` command lets you serve a PyPI-like index locally,
# and upload Insiders versions of projects to it,
# so that you can install them transparently as dependencies.
# You can configure a remote index too, instead of a locally-served one.
[index]

# The URL of the index, local or remote.
url = "http://localhost:31411"

# Whether to start the index server in the background (when serving locally).
start-in-background = true

# The path to the log file of the index server (when serving locally).
log-path = "/tmp/insiders-index.log"

# --------------------------------------------------------------------------- #
# Projects configuration.                                                     #
# --------------------------------------------------------------------------- #
# The `project` command lets you create public and private projects on GitHub.
# It supports Copier templates to generate the initial project structure.
# It can also register projects on PyPI, and run post-creation commands.
# Created projects will be cloned in the specified directories.
[project]

# If your Insiders organization is named "your-username-insiders",
# you can specify your GitHub username instead of both the public
# and insiders namespaces in which projects will be created.
github-username = "pawamoy"

# Explicitly specify the public and insiders namespaces.
namespace = "pawamoy"
insiders-namespace = "pawamoy-insiders"

# Where to clone the created projects (Git repositories).
directory = "~/data/dev"
insiders-directory = "~/data/dev/insiders"

# Whether to register projects on PyPI.
register-on-pypi = false
pypi-username = "pawamoy"

# Post-creation commands to run after creating a project.
# The command only runs in the public project, not the private one.
post-creation-command = [
    "python",
    "scripts/make",
    "setup",
    "changelog",
    "release",
    "version=0.1.0",
]

# A Copier template to generate new projects from.
copier-template = "gh:pawamoy/copier-uv"

# A mapping of template questions to answers.
# TODO: Document syntax and available options.
[project.copier-template-answers]
project_name = "{public_name}"
project_description = "{description}"
author_username = "pawamoy"
repository_namespace = "{public_namespace}"
repository_name = "{public_name}"
insiders = true
insiders_repository_name = "{insiders_name}"

# --------------------------------------------------------------------------- #
# Sponsors configuration.                                                     #
# --------------------------------------------------------------------------- #
# The `sponsors` command lets you list sponsors from different platforms,
# show detailed information about a user,
# and synchronize your sponsors' access to a GitHub team,
# where your private projects are made available.
[sponsors]

# Your GitHub account receiving sponsorships.
github-sponsored-account = "pawamoy"

# A shell command to get your GitHub token.
github-token-command = "command to echo token"

# Your Polar account receiving sponsorships.
polar-sponsored-account = "pawamoy"

# A shell command to get your Polar token.
polar-token-command = "command to echo token"

# The minimum amount a sponsor must pledge to be considered an insider,
# granting them access to your private projects.
minimum-amount = 10

# The GitHub team to which insiders are invited.
insiders-team = "pawamoy-insiders/insiders"

# A list of users to always include into the insiders team.
include-users = [
    "pawamoy",  # Myself.
]

# A list of users to always exclude from the insiders team.
exclude-users = []

# A map of GitHub sponsors to their beneficiaries.
# Beneficiaries are users/organizations who get voting power
# and are optionally granted access to your Insiders team.
# TODO: Document supported values.
[sponsors.github-beneficiaries]
some-github-account = [
    "some-github-user",
    "&some-github-org",
]

# A map of Polar sponsors to their beneficiaries.
# Beneficiaries are users/organizations who get voting power
# and are optionally granted access to your Insiders team.
# TODO: Document supported values.
[sponsors.polar-beneficiaries]

More documentation will be added later, for now ask @pawamoy for details (see where I can be reached on my profile) 🙂

Sponsors

Metadata

Release files for insiders 4.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for insiders 4.1.1
File Size Uploaded
insiders-4.1.1.tar.gz 63.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for insiders 4.1.1
File Interpreter ABI Platform
insiders-4.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 113.8 kB

Release files / insiders-4.1.1.tar.gz

Download URL insiders-4.1.1.tar.gz
Size 63.7 kB
Tags Source
SHA-256 checksum
How to use checksums
3005b931d0454aeb7d33dfd643f097aee4aafe5500d7bd50f0fa12553df3687a
BLAKE2b-256 checksum
How to use checksums
b6b5a61397893b34f9f32870d752ff9bb1a0d5bd32191c4f7ba4774ab9a486e6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / insiders-4.1.1-py3-none-any.whl

Download URL insiders-4.1.1-py3-none-any.whl
Size 50.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3d42eae823a772892070b566ade680ff4184904a55d89c04ece6a9a962887ba0
BLAKE2b-256 checksum
How to use checksums
cf8ed9d8a3493a516f6707a711f212d95023f431c1ecef2338a9b74040549499
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release history Release notifications | RSS feed

This release

4.1.1 This release

2 release files

4.1.0

2 release files

4.0.2

2 release files

4.0.1

2 release files

4.0.0

2 release files

3.0.0

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.0.0

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

0.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page