Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for using ssh cloning with GitLab #1057

Closed
wants to merge 2 commits into from

Conversation

rwestberg
Copy link
Member

@rwestberg rwestberg commented Mar 15, 2021

Add support for configuring a GitLab forge to use ssh for cloning repositories using a private ssh key.


Progress

  • Change must not contain extraneous whitespace
  • Change must be properly reviewed

Reviewers

Download

$ git fetch https://git.openjdk.java.net/skara pull/1057/head:pull/1057
$ git checkout pull/1057

@bridgekeeper
Copy link

@bridgekeeper bridgekeeper bot commented Mar 15, 2021

👋 Welcome back rwestberg! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@openjdk openjdk bot added the rfr label Mar 15, 2021
@mlbridge
Copy link

@mlbridge mlbridge bot commented Mar 15, 2021

Webrevs

"\n";

try {
Files.writeString(cfgFile, result + filtered.strip() + "\n", StandardCharsets.UTF_8);
Copy link
Member

@magicus magicus Mar 15, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this result in us writing to a users .ssh/config when running Skara CLI tools?

Copy link
Member Author

@rwestberg rwestberg Mar 15, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, CLI tools never pass a configuration object when creating a Forge.

Copy link
Member

@magicus magicus Mar 15, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good.

var existingBlock = Pattern.compile("^Match host=" + Pattern.quote(userHost) + "(?:\\R[ \\t]+.*)+", Pattern.MULTILINE);
var existingMatcher = existingBlock.matcher(existing);
var filtered = existingMatcher.replaceAll("");
var result = "Match host=" + userHost + "\n" +
Copy link
Member

@magicus magicus Mar 15, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this is valid .ssh/config syntax. Afaik it should be Match <keyword> <value>, that is, no =. I see no tests in this PR. Are you sure this works?

Copy link
Member Author

@rwestberg rwestberg Mar 15, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, tested it manually and seems to work fine. And no, there are no automated tests that exercise GitLab or GitHub APIs, except for running them with a special credential configuration..

Copy link
Member

@magicus magicus Mar 15, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I still think this does not follow the documented ssh config file syntax (https://man7.org/linux/man-pages/man5/ssh_config.5.html). And even if that works on your machine right now, it can break on a future update of ssh.

Copy link
Member Author

@rwestberg rwestberg Mar 15, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Configuration options may be separated by whitespace or optional whitespace and exactly one ‘=’

Still, works without it as well, so can certainly change it..

Copy link
Member

@magicus magicus left a comment

LGTM

edvbld
edvbld approved these changes Mar 16, 2021
Copy link
Member

@edvbld edvbld left a comment

Looks good!

@openjdk
Copy link

@openjdk openjdk bot commented Mar 16, 2021

@rwestberg This change now passes all automated pre-integration checks.

ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details.

🔍 One or more changes in this pull request modifies files in areas of the source code that often require two reviewers. Please consider if this is the case for this pull request, and if so, await a second reviewer to approve this pull request before you integrate it.

🌎 Applicable reviewers for one or more changes in this pull request are spread across multiple different time zones. Please consider waiting with integrating this pull request until it has been out for review for at least 24 hours to give all reviewers a chance to review the pull request.

After integration, the commit message for the final commit will be:

Add support for using ssh cloning with GitLab

Reviewed-by: ihse, ehelin

You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed.

At the time when this comment was updated there had been 2 new commits pushed to the master branch:

  • 763af0c: bot: don't run watchdogTrigger test on Windows
  • 902698a: vcs: add ReadOnlyRepository.commitMetadataFor

Please see this link for an up-to-date comparison between the source branch of this pull request and the master branch.
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details.

➡️ To integrate this PR with the above commit message to the master branch, type /integrate in a new comment.

@openjdk openjdk bot added the ready label Mar 16, 2021
@rwestberg
Copy link
Member Author

@rwestberg rwestberg commented Mar 16, 2021

/integrate

@openjdk openjdk bot closed this Mar 16, 2021
@openjdk openjdk bot added integrated and removed ready rfr labels Mar 16, 2021
@openjdk
Copy link

@openjdk openjdk bot commented Mar 16, 2021

@rwestberg Since your change was applied there have been 3 commits pushed to the master branch:

  • 79e2056: vcs: make RepositoryTests deterministic
  • 763af0c: bot: don't run watchdogTrigger test on Windows
  • 902698a: vcs: add ReadOnlyRepository.commitMetadataFor

Your commit was automatically rebased without conflicts.

Pushed as commit 2ca0412.

💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
3 participants