cqse / cqse/Teamscale-AzureDevOps-Extension

ReportUploadTask - revision variable with multiple git repositories

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

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
3
Forks
1
Avg merge
1m
Merged PRs (30d)
1

Description

If a azure devops pipeline uses multiple git repositories the content of the Build.SourceVersion variable is set to different values depending what triggers the pipeline.

For example in a typical setup:

  • an infrastructure repository which contains the .yaml file of the pipeline definition
  • another repository containing the 'main' source code

Triggers and the values of Build.SourceVersion:

  • If the pipeline is triggered manually -> SourceVersion is set to the commitId of the head of the infrastructure repository
  • If the pipeline is triggered by a code change in the infastructure repository -> SourceVersion is set to the commitId of the change in the infrastructure repository
  • If the pipeline is triggered by a code change in the 'main' repository -> SourceVersion is set to the commitId of the change in the main repository

Result:
If a pipeline is triggered manually or by a change of the pipeline itself the reportUploadTask uses the 'wrong' commitId and the task will fail.
curl: (22) The requested URL returned error: 400 Bad Request ##[error]Task failed. Please check the log for further details. Error: The process 'TeamscaleReportUploader_xxx\1.2.5\curl\windows\curl.exe' failed with exit code 22

Possible solutions:

  • If the revision variable would be exposed as an input field of the task pipelines could set the correct revision themselves
  • Identify the revision by getting the checked out commit with git tooling

Contributor guide

No contributing guide indexed for this repository

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 at the ReportUploadTask entry point and trace how Build.SourceVersion is selected for manual, infrastructure-repository, and main-repository triggers. Compare that value with the checked-out commit and the task's revision input handling. Done means the upload uses the correct commit for each trigger scenario without producing the reported 400 error.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
ci-cd, devops
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.