Commit files into azure git repo using azure devops

8.2k views Asked by At

how to commit files into azure git repo using build pipeline.

I am generating some files from my azure ci pipeline and I want to commit those files into the same repo which I used in my ci pipeline.

I have added the azure CLI task and added an inline command to commit code but it gives me the error and not working.

git add .
git commit -m "test commit"
git push -u origin Trunk
3

There are 3 answers

2
Kevin Lu-MSFT On BEST ANSWER

For classic Mode pipeline:

You could enable the Allow scripts to access the OAuth token option.

enter image description here

And grant the Repo Contribute permission for Project Collection Build Service Accounts.

enter image description here

Git command:

   git config --global user.email "email"
   git config --global user.name "Kevin Lu"

   git add .

   git commit -m "My commit message"

   git push origin master

For Yaml Pipeline:

You could set the persistCredentials: true in YAML sample.

And grant the Repo Contribute permission for Build Service .

enter image description here

Yaml Sample:

steps:
- checkout: self
  persistCredentials: true

- script: |
   git config --global user.email "email"
   git config --global user.name "Kevin Lu"
       
   git add .
   
   git commit -m "My commit message"
   
   git push origin master
   
  displayName: 'Command Line Script'

For more detailed info, you could refer to this ticket.

0
Krzysztof Madej On

Please make sure that both Project Collection Build Service Accounts and <repo> Build Service (<org>) have Allow in Contribute section:

enter image description here

Asssuming you already made all steps Run Git commands in a script you should be ready to go. Please notice that documentation says that you should set Project Collection Build Service, but it is also necessary to set Project Collection Build Service Accounts.

0
jfdevops On

FYI this can also be achieved using GitHub as-well, all that is required is the Service Connection running the pipeline has permission to commit to the GitHub repository, you can then run the following below:

steps:
- checkout: self
  persistCredentials: true
  fetchDepth: 0
  
- bash: |
    echo "This Is Build $(Build.BuildId)" > "$(Build.SourcesDirectory)/BuildNumber"
  displayName: Create File
  
- bash: |
    git config user.name "John Smith"
    git config user.email "[email protected]"
  
    git checkout main --
    git add --all
    git commit -m "Adding Build File"
    git push origin main
  displayName: Git Commit

Ref: https://jimferrari.com/2023/08/02/commit-files-to-github-during-azure-pipelines-run/