jira-importer opened a new issue, #1253:
URL: https://github.com/apache/maven-scm/issues/1253

   **[Nikolas 
Falco](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=nfalco79)** 
opened 
**[SCM-1030](https://issues.apache.org/jira/browse/SCM-1030?redirect=false)** 
and commented
   
   We are moving our SCM developer connection from https that use a configured 
appPassword credentials to git/ssh configured with a private SSH key.
   
   From
   
   ```xml
   
<developerConnection>scm:git:https://bitbucket.org/owner/reponame.git</developerConnection>
   ```
   
   with credentials in settings.xml like this:
   
   ```xml
   <server>
       <id>bitbucket.org</id>
       <username>builder</username>
       <password>secret</password>
   </server>
   ```
   
   To
   
   ```xml
   
<developerConnection>scm:git:ssh://[email protected]/owner/reponame.git</developerConnection>
   ```
   
   with credentials in settings.xml like this:
   
   ```xml
   <server>
       <id>bitbucket.org</id>
       <privateKey>fullpath/to/private/key</privateKey>
   </server>
   ```
   
   When we run `mvn -ntp release:prepare` we get the following error:
   
   ```bash
   [INFO] 11/17 prepare:scm-commit-release
   [INFO] Checking in modified POMs...
   [INFO] Executing: cmd.exe /X /C "git add -- pom.xml"
   [INFO] Working directory: D:\git\reponame
   [INFO] Executing: cmd.exe /X /C "git rev-parse --show-prefix"
   [INFO] Working directory: D:\git\reponame
   [INFO] Executing: cmd.exe /X /C "git status --porcelain ."
   [INFO] Working directory: D:\git\reponame
   [WARNING] Ignoring unrecognized line: ?? pom.xml.releaseBackup
   [WARNING] Ignoring unrecognized line: ?? release.properties
   [INFO] Executing: cmd.exe /X /C "git commit --verbose -F 
C:\Users\nfalco\AppData\Local\Temp\maven-scm-2141752647.commit"
   [INFO] Working directory: D:\git\os-devops-organisation-pom
   [INFO] Executing: cmd.exe /X /C "git symbolic-ref HEAD"
   [INFO] Working directory: D:\git\reponame
   [INFO] Executing: cmd.exe /X /C "git push 
ssh:********@bitbucket.org/owner/reponame.git 
refs/heads/master:refs/heads/master"
   [INFO] Working directory: D:\git\reponame
   [INFO] 12/17 prepare:scm-tag
   [INFO] Tagging release with the label 1.13...
   [INFO] Executing: cmd.exe /X /C "git tag -F 
C:\Users\nfalco\AppData\Local\Temp\maven-scm-699167272.commit 1.13"
   [INFO] Working directory: D:\git\reponame
   [INFO] Executing: cmd.exe /X /C "git push 
ssh:********@bitbucket.org/owner/reponame.git refs/tags/1.13"
   [INFO] Working directory: D:\git\reponame
   [INFO] 
------------------------------------------------------------------------
   [INFO] BUILD FAILURE
   [INFO] 
------------------------------------------------------------------------
   [INFO] Total time:  15.470 s
   [INFO] Finished at: 2025-04-08T15:54:53+02:00
   [INFO] 
------------------------------------------------------------------------
   [ERROR] Failed to execute goal 
org.apache.maven.plugins:maven-release-plugin:3.1.1:prepare (default-cli) on 
project opensoftware-parent: Unable to tag SCM
   [ERROR] Provider message:
   [ERROR] The git-push command failed.
   [ERROR] Command output:
   [ERROR] [email protected]: Permission denied (publickey).
   [ERROR] fatal: Could not read from remote repository.
   [ERROR]
   [ERROR] Please make sure you have the correct access rights
   [ERROR] and the repository exists.
   [ERROR]
   ```
   
   Commit `[maven-release-plugin] prepare release 1.13` is pushed with success 
but fail to push annotated tag.
   
   If we add the environment variable
   
   ```bash
   GIT_SSH_COMMAND = "ssh -i d:\\builder.private.openssh"
   ```
   
   the tag is pushed with success to remote
   
   ```bash
   ...
   [INFO] 12/17 prepare:scm-tag
   [INFO] Tagging release with the label 1.13...
   [INFO] Executing: cmd.exe /X /C "git tag -F 
C:\Users\nfalco\AppData\Local\Temp\maven-scm-826466640.commit 1.13"
   [INFO] Working directory: D:\git\reponame
   [INFO] Executing: cmd.exe /X /C "git push 
ssh:********@bitbucket.org/owner/reponame.git refs/tags/1.13"
   [INFO] Working directory: D:\git\reponame
   [INFO] Executing: cmd.exe /X /C "git ls-files"
   [INFO] Working directory: D:\git\reponame
   [INFO] 13/17 prepare:rewrite-poms-for-development
   [INFO] Transforming pom.xml opensoftware-parent 'Opensoftware'...
   [INFO] 14/17 prepare:remove-release-poms
   [INFO] Not removing release POMs
   [INFO] 15/17 prepare:run-completion-goals
   [INFO] 16/17 prepare:scm-commit-development
   [INFO] Checking in modified POMs...
   [INFO] Executing: cmd.exe /X /C "git add -- pom.xml"
   [INFO] Working directory: D:\git\reponame
   [INFO] Executing: cmd.exe /X /C "git rev-parse --show-prefix"
   [INFO] Working directory: D:\git\reponame
   [INFO] Executing: cmd.exe /X /C "git status --porcelain ."
   [INFO] Working directory: D:\git\reponame
   [WARNING] Ignoring unrecognized line: ?? pom.xml.releaseBackup
   [WARNING] Ignoring unrecognized line: ?? release.properties
   [INFO] Executing: cmd.exe /X /C "git commit --verbose -F 
C:\Users\nfalco\AppData\Local\Temp\maven-scm-1969078592.commit"
   [INFO] Working directory: D:\git\reponame
   [INFO] Executing: cmd.exe /X /C "git symbolic-ref HEAD"
   [INFO] Working directory: D:\git\reponame
   [INFO] Executing: cmd.exe /X /C "git push 
ssh:********@bitbucket.org/owner/reponame.git 
refs/heads/master:refs/heads/master"
   [INFO] Working directory: D:\git\reponame
   [INFO] 17/17 prepare:end-release
   [INFO] Release preparation complete.
   ```
   
    
   
   Digging into the source code in Github repository I think I have found the 
root cause for this behaviour.
   
   In GitTagCommand class at [line 
149](https://github.com/apache/maven-scm/blob/55f3e9ec07567ea97e3c58db5d495389d48b34b9/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/tag/GitTagCommand.java#L149)
 the push command is created without pass the given GitScmProviderRepository to 
git CLI builder. This mean that the CLI builder at [line 
101](https://github.com/apache/maven-scm/blob/55f3e9ec07567ea97e3c58db5d495389d48b34b9/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/GitCommandLineUtils.java#L101)
 will not inject the GIT_SSH_COMMAND variable with the privateKey like the 
CheckInCommand does at [line 
189](https://github.com/apache/maven-scm/blob/55f3e9ec07567ea97e3c58db5d495389d48b34b9/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/chec
 kin/GitCheckInCommand.java#L189)
   
   
   ---
   
   **Affects:** 2.1.0
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to