{"id":50649160,"url":"https://github.com/indico/indico-plugins-contrib","last_synced_at":"2026-06-07T16:02:39.838Z","repository":{"id":341798714,"uuid":"1171530506","full_name":"indico/indico-plugins-contrib","owner":"indico","description":null,"archived":false,"fork":false,"pushed_at":"2026-06-02T12:45:30.000Z","size":156,"stargazers_count":2,"open_issues_count":3,"forks_count":5,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-06-02T14:25:05.615Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/indico.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-03T10:32:18.000Z","updated_at":"2026-05-28T15:00:45.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/indico/indico-plugins-contrib","commit_stats":null,"previous_names":["indico/indico-plugins-contrib"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/indico/indico-plugins-contrib","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indico%2Findico-plugins-contrib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indico%2Findico-plugins-contrib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indico%2Findico-plugins-contrib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indico%2Findico-plugins-contrib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/indico","download_url":"https://codeload.github.com/indico/indico-plugins-contrib/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/indico%2Findico-plugins-contrib/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34027670,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-07T02:00:07.652Z","response_time":124,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-07T16:02:37.615Z","updated_at":"2026-06-07T16:02:39.829Z","avatar_url":"https://github.com/indico.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Indico Third-Party Plugins [![CI Status][ci-badge]][ci-link] [![License][license-badge]][license-link]\n\nThis repository contains third-party plugins for [Indico][indico].\n\nThese plugins are licensed under the MIT license.\n\nNeither the Indico team nor CERN give you any guarantees that plugins in this repo are bug-free,\nworking as expected or meet the quality standards of the Indico project itself.\n\n\n## Versioning\n\nPlugins in this repo MUST follow the Indico plugin versioning schema, which means that the first\ntwo version number digits MUST match the minimum Indico version they are compatible with.\n\nSo for example, in early 2026 this is Indico v3.3, so the initial release version of a plugin\nshould be `3.3` as well. If you make use of the version number within your plugin, bump the third\nsegment whenever appropriate, e.g. `3.3.1`. It is recommended to also keep a changelog in your\nplugin's README.md for each version. If you do not use PyPI to publish your plugin and do not care\nabout versioning and a changelog, you can also stick with `3.3-dev` and benefit of the version\nsuffix that the build scripts (and CI build job) can automatically append (`--add-version-suffix`),\nwhich results in the version number of each build being higher than that of an older build.\n\n\n## Compatibility\n\nWhen making changes in the Indico core that affect a plugin in this repo, the Indico team will\nusually add a commit to adapt any plugin in this repository, and - if the change is not compatible\nwith older Indico versions - bump the required Indico version in `pyproject.toml` as well. This\ngenerally includes pre-releases of that version, e.g. `indico\u003e=3.3.10.dev0` if the plugin requires\nsomething that was added in Indico v3.3.10.\n\nWhen opening a pull request that adds or updates a plugin which also requires changes to the Indico\ncore (such as adding a new signal), then you need to open a separate PR against the core Indico repo\nand reference it in your PR - that way the CI tests of the plugin will use your PR's branch instead\nof `master`.\n\n\n## Adding a new plugin\n\nFollow the structure that existing plugins in [indico-plugins] have. In particular, your\n`pyproject.toml` file should be copied from one of these plugins and just be adjusted to include\nthe data related to your own plugin (ie the technical metadata and author information). Usually the\neasiest is copying a complete plugin to have all the boilerplate. Also, add the plugin to the\n`plugin-name` dropdown in the `workflow_dispatch` inputs in both `build.yml` and `pypi.yml`, and\nto the build matrix in `ci.yml`.\n\nAlso add a `.header.yaml` in your plugin to benefit from file copyright headers mentioning your\nname and when you created the plugin:\n\n```yaml\nowner: Sneaky Cat\nstart_year: 2026\n```\n\nIf you want to benefit from PyPI releases done via GitHub, then please reach out to us (via an issue\nunless you have access to other channels) and setup a [Trusted Publisher via PyPI][pypi-publish]\n(\"Add a new pending publisher\") for the plugin's name (which would be `indico-plugin-\u003cfancy-stuff\u003e`\nif the Python package is `indico_fancy_stuff`) with the following data:\n\n- Owner: `indico`\n- Repository name: `indico-plugins-contrib`\n- Workflow: `pypi.yml`\n- Environment name: `publish`\n\nThere is currently no automation for creating tags or creating releases. Just ping us and we'll take\ncare of it.\n\n\n## Requirements for plugins\n\nAs mentioned above, plugins here do not need to meet our strict quality standards (but you make us\nhappy by meeting them anyway). However, we do have some basic requirements:\n\n- Plugins MUST be licensed under the MIT license, and MUST NOT contain any minified or otherwise\n  obfuscated or compiled code.\n- CI and linters/formatters MUST pass, and a plugin SHOULD NOT disable linting rules without a good\n  reason\n- Plugins SHOULD have tests, and these test MUST be run in the CI (by adding them to the build\n  matrix in `ci.yml`)\n- Plugins MUST work with `CSP_ENABLED = True` in `indico.conf`\n- Plugins MUST NOT be \"AI slop\" or \"vibe-coded\" - if you use LLMs when developing your plugin, you\n  MUST understand their output and also disclose that AI was used and how it was used in your pull\n  request. You MUST NOT blindly pass on any feedback you receive on PRs into your LLM: If we give\n  feedback, we expect a human to read, understand and act on it. We do not want to write prompts\n  for your LLM.\n- Plugins MUST provide some general usefulness for others; if it provides zero benefit for\n  anyone but the author (e.g. because it integrates w/ a company-specific API), then it should\n  reside in your own repository\n- Plugins MUST have a `README.md` file that describe what the plugin does and SHOULD contain a\n  changelog\n- Plugins MUST be a good \"cultural fit\" in the Indico ecosystem. For example, anything related to\n  core Indico functionality is usually fine. Ask us if you are not sure.\n- Plugin authors SHOULD monitor the issue tracker for issues related to their plugin, and be\n  reachable under an email address published in the README and/or the `pyproject.toml` author\n  metadata\n- Plugins MAY integrate with cloud services that require a subscription to use; in this case the\n  necessary credentials MUST be configurable via plugin settings, unless there is a strong argument\n  for an alternative (e.g. a configuration file specific to the ecosystem such as `~/.aws/...` when\n  interacting with AWS services)\n- Authors of plugins that interact with cloud services SHOULD consider whether it makes sense to let\n  event managers provide their own credentials. In that case they SHOULD allow admins to configure a\n  global API which MUST not be visible to event organizers (who are usually not admins), and the\n  event-level configuration form SHOULD have an option to opt-out from using the global credentials\n  and provide custom ones. If not global credentials are configure, the this form MUST require\n  credentials to be entered in order to enable the plugin's functionality. You can have a look\n  at the Stripe plugin to get an example on how this could be done in case of a payment plugin.\n- Plugins that interact with cloud services SHOULD mention in their README how to get free (test)\n  credentials in order to test the functionality of the plugin, or at least link to the website of\n  the cloud service they integrate with.\n\n\n## Note\n\nIn applying the MIT license, CERN does not waive the privileges and immunities granted to it by\nvirtue of its status as an Intergovernmental Organization or submit itself to any jurisdiction.\n\n\n[ci-badge]: https://github.com/indico/indico-plugins-contrib/actions/workflows/ci.yml/badge.svg\n[ci-link]: https://github.com/indico/indico-plugins-contrib/actions/workflows/ci.yml\n[license-link]: https://github.com/indico/indico-plugins-contrib/blob/master/LICENSE\n[license-badge]: https://img.shields.io/github/license/indico/indico-plugins-contrib.svg\n[indico]: https://github.com/indico/indico\n[indico-plugins]: https://github.com/indico/indico-plugins\n[pypi-publish]: https://pypi.org/manage/account/publishing/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Findico%2Findico-plugins-contrib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Findico%2Findico-plugins-contrib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Findico%2Findico-plugins-contrib/lists"}