Manage your Insiders projects.
Project description
insiders
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 criteriainsiders 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) 🙂
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file insiders-4.1.0.tar.gz.
File metadata
- Download URL: insiders-4.1.0.tar.gz
- Upload date:
- Size: 68.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b40519a01fa270a2ab74133478e3fd5b12757b8c59c738d6df851a8e08a41d8b
|
|
| MD5 |
3c14e23a356a4dc064e1d897d3049529
|
|
| BLAKE2b-256 |
36becf1f59e5b7dcaeac473306d596d6e13b0e304d83718c7309c107f10b8f15
|
File details
Details for the file insiders-4.1.0-py3-none-any.whl.
File metadata
- Download URL: insiders-4.1.0-py3-none-any.whl
- Upload date:
- Size: 40.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
12eccff7c4db1a4b5f7d1b386f0d8d8ff17ca7d6bd91e6f072216c69a93390dd
|
|
| MD5 |
0f9bf27a5f025629ffa3e10e24f03a8d
|
|
| BLAKE2b-256 |
646b55a1896c9dcbce1950bdd5d5baaf511caac4df00f162dc08300345c88ac0
|