stacklok / stacklok/modelith

Azure DevOps support for `deps import`

Open
#44 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
32
Forks
5
PR merge metrics
No merged PRs in 30d

Description

I've implemented Azure DevOps support for modelith deps import on a fork branch:

https://github.com/gosharplite/modelith/tree/feat/ado-deps-import

It follows the same "no TLS in modelith" pattern — all network calls go through az rest via the Runner interface. No HTTP client or credential handling in modelith itself.

What's there:

  • ParseSource accepts dev.azure.com blob URLs:
    https://dev.azure.com/{org}/{project}/_git/{repo}?path=...&version=GB{branch}
  • GB/GT/GC version prefixes mapped to branch/tag/commit in the API calls
  • --resource 499b84ac-1321-427f-aa17-267ca6975798 passed to az rest so it gets an AAD token with the correct audience
  • Source.Project field added (empty for GitHub)
  • ExecRunner.Run shows correct install instructions per CLI (az login vs gh auth login)
  • 14 new tests, all CI checks passing

Usage:

az login
modelith deps import \
  "https://dev.azure.com/myorg/myproject/_git/myrepo?path=docs/payments.modelith.yaml&version=GBmain"

I don't have much experience with upstream PRs in open-source world — feel free to reference, adapt, or take anything useful from the branch. If a PR would be helpful I'm happy to open one with some guidance.

The full commit history and an earlier review thread are at https://github.com/gosharplite/modelith/pull/1.

p.s. I find modelith extremely useful and use it on my agent tool and several Azure DevOps repos: https://github.com/gosharplite/tell-me-go/tree/main/docs/domain-model#how-modelith-helps-tell-me-go

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the referenced fork branch and earlier pull request, then inspect ParseSource, Source.Project, and ExecRunner.Run along with the 14 added tests. Confirm the existing approach integrates cleanly with deps import, preserves GitHub behavior, and passes the full CI checks.

Written by the indexing model from the issue text.

Assessment

Tech stack
azure, git, go
Domain
cli, devops
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.