source.json interpolation with environment variables
Nobody has claimed this yet.
- Dominant language
- Haskell
- Stars
- 1.9k
- Forks
- 75
- Avg merge
- 7m
- Merged PRs (30d)
- 5
Description
I spent a few days of integrating a cascade of CI for several projects on gitlab.
The issue is ssh authentication. Every git repo is private.
gitlab has a hack - special user with token.
so if sources.json instead of:
{
"private-dep": {
"branch": "master",
"repo": "ssh://git@gitlab.com/company/private-dep.git",
"rev": "ed73d970fd13b009ca5829f6b8c1c936c7221032",
"type": "git"
},
would contain following:
"repo": "ssh://gitlab-ci-token:$CI_JOB_TOKEN@gitlab.com/company/private-dep.git",
then there is no hassle with ssh keys at all.
Some expression language (mustache?) supporting environment variables would help here a lot.
"repo": "ssh://git$([ -n "$CI_JOB_TOKEN ] && echo "lab-ci-token:$CI_JOB_TOKEN)@gitlab.com/company/private-dep.git",
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing how niv reads source.json and handles git repository URLs; the issue names no implementation file or test. Determine the intended environment-variable interpolation behavior, including the CI token example, and consider how completion would be verified by fetching a private GitLab dependency without SSH keys.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- git, haskell
- Domain
- devops, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100