Skip to content

Config migration: typed config, VisualizationConfig, and bootstrap command#58

Draft
aboydnw wants to merge 8 commits intomainfrom
config-migration
Draft

Config migration: typed config, VisualizationConfig, and bootstrap command#58
aboydnw wants to merge 8 commits intomainfrom
config-migration

Conversation

@aboydnw
Copy link
Member

@aboydnw aboydnw commented Feb 25, 2026

Summary

Keeps all config in a single config.toml (repositories + contributors inline) while adding typed data models.

  • Adds ContributorType enum, ContributorEntry model, VisualizationConfig for typed config access
  • Adds core_contributors / community_contributors properties (first group = core, rest = community)
  • Adds contributor-network bootstrap <infile> command to generate config.toml from a repos file or contributors CSV
  • Adds GITHUB_TOKEN to CI build step
  • Updates README with "Creating your own contributor network" section

Value

Enables typed config access and the bootstrap workflow without breaking the existing single-file config format.

@aboydnw aboydnw requested a review from gadomski as a code owner February 25, 2026 04:20
@aboydnw
Copy link
Member Author

aboydnw commented Feb 25, 2026

@gadomski this splits out the config.toml file into two files, one for contributors and one for repositories. I think this will help set up #59 #60 and #61 by making the lists more clearly separated.

Copy link
Collaborator

@gadomski gadomski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this idea here that forks will want to use the same contributor list, but change the repositories?

I don't get why we couldn't do that from the same config.toml?

@aboydnw
Copy link
Member Author

aboydnw commented Feb 26, 2026

Hm good point @gadomski

The next feature is intended to make it so that a person can either bring a list of repositories as the starting point OR a list of contributors. So maybe I just made this change to make it make more sense to me, but I am not sure it's actually needed. If you think it's safer to keep as config.toml then I'm down to keep it.

@gadomski
Copy link
Collaborator

gadomski commented Feb 26, 2026

The next feature is intended to make it so that a person can either bring a list of repositories as the starting point OR a list of contributors. So maybe I just made this change to make it make more sense to me, but I am not sure it's actually needed. If you think it's safer to keep as config.toml then I'm down to keep it.

Yeah, let's keep it as a single config.toml. For the "i want to bring a list of contributors and build the respoitories" or vice-versa, let's add a contributor-network bootstrap <infile> command that builds a config.toml from a file's contents.

…properties

Keep repositories and contributors inline in config.toml.
Add ContributorType enum, ContributorEntry model, VisualizationConfig,
and core_contributors/community_contributors properties to Config.
Update CLI to use core_contributors instead of devseed_contributors.

Made-with: Cursor
Accepts a repos file (one owner/repo per line) or a contributors CSV
and writes a config.toml. Auto-detects the input format.

Made-with: Cursor
@aboydnw aboydnw changed the title Config migration: repositories.txt, contributors.csv, config.toml Config migration: typed config, VisualizationConfig, and bootstrap command Feb 26, 2026
Use a single organization value as the source of truth for chart naming. Bootstrap now accepts --organization/--org only, emits organization in config.toml, and Config derives page title from organization with backward compatibility for legacy organization_name.

Made-with: Cursor
@aboydnw
Copy link
Member Author

aboydnw commented Feb 27, 2026

@gadomski okay good call. I think this is ready for review again. And it's a nice addition to this workflow for somebody to standup a new visual.

Copy link
Collaborator

@gadomski gadomski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tried "bootstrap" locally w/ a list of repos, and my subsequent discover command errored with:

$ contributor-network discover
Discovering repos for 0 core contributors...
Known repos: 4

============================================================
DISCOVERED REPOSITORIES (min 2 core contributors)
============================================================

No repos found with 2+ core contributors.
Try lowering --min-contributors or check GitHub token permissions.

I think that's because the discover command won't work w/o contributors:

for username, name in contributors.items():

For the flow suggested by this PR to work, we'll need to refactor the discover command to work with an empty contributors list and a empty repo list.

@aboydnw aboydnw marked this pull request as draft March 7, 2026 00:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants