Simplifying team codespaces tool and customization for the future

I have 20-30 different repos, some with common tools.
I’d like to ensure some tools are easily available (git-town, linux brew, etc).

While I can do this in my own dotfiles repo, I’d like to simplify the tooling for sharing with a team and I can only currently think of 2 ways that this would be easily managed in the future.

  1. Create a custom container and registry (now I have to add the authentication and more for that, which is doable, but more work) and build this image and and use it for all codespaces.
  2. Use ansible playbooks and have each codespace run tooling install in post dockerfile setup.

Is there any other better way or recommendations on how to future proof the sharing? I really don’t want each repo to have to repeat all the setup and tool installs, but also don’t know of any “team dotfiles” approach that is currently being planned or available.

Codespaces supports adding a “devcontainer.json” into the repository that includes settings and even custom containers. This allows you to easily share with a team for a given repo.

See https://docs.github.com/en/github/developing-online-with-codespaces/configuring-codespaces-for-your-project

Yes, I’m very familiar with that, I should have been more clear.
I’m referring to all the extra tools I end up adding to my dockerfile for example. Simplifying that across many small repos would be great, but dotfiles is focus on me, not a team. Do I need to have my own custom image basically for me to bake all these things in or is there an approach where I could better share tooling setup like a “team dotfiles” or something similar?

1 Like

Got it - thanks for clarifying! We do not currently have a “team dotfiles” concept, though that’s an interesting idea! That said, git should be available when the install is run, so you should be able to pull in another repo at the same time - but I realize that’s not a baked in feature.

We have considered the idea of scripts that are set at different levels that are applied like postCreateCommand (or another lifecycle event) that could be set at the org level for example. Any repo in that org would then have the script run for a Codespace for the repo. Are you mainly looking to run a script, or are you thinking there are actual dotfiles as well?

1 Like