mirror of
https://forgejo.stefka.eu/jiriks74/create-pull-request.git
synced 2025-01-18 16:01:06 +01:00
fix: support github server url for pushing to fork (#1318)
* feat: support github server url for pushing to fork (#1315) Co-authored-by: Kevin Zhu <kevin.zhu@sap.com> * fix: code formatting * test: fix tests for getRemoteUrl Co-authored-by: MildC <kevin.xizhu@gmail.com> Co-authored-by: Kevin Zhu <kevin.zhu@sap.com>
This commit is contained in:
parent
d7db273d6c
commit
331d02c7e2
4 changed files with 43 additions and 16 deletions
|
@ -74,6 +74,7 @@ export async function createPullRequest(inputs: Inputs): Promise<void> {
|
|||
// Add a remote for the fork
|
||||
const remoteUrl = utils.getRemoteUrl(
|
||||
baseRemote.protocol,
|
||||
baseRemote.hostname,
|
||||
branchRepository
|
||||
)
|
||||
await git.exec(['remote', 'add', 'fork', remoteUrl])
|
||||
|
|
22
src/utils.ts
22
src/utils.ts
|
@ -32,6 +32,7 @@ export function getRepoPath(relativePath?: string): string {
|
|||
}
|
||||
|
||||
interface RemoteDetail {
|
||||
hostname: string
|
||||
protocol: string
|
||||
repository: string
|
||||
}
|
||||
|
@ -46,18 +47,18 @@ export function getRemoteDetail(remoteUrl: string): RemoteDetail {
|
|||
throw new Error('Could not parse GitHub Server name')
|
||||
}
|
||||
|
||||
const hostname = githubServerMatch[1]
|
||||
|
||||
const httpsUrlPattern = new RegExp(
|
||||
'^https?://.*@?' + githubServerMatch[1] + '/(.+/.+?)(\\.git)?$',
|
||||
'i'
|
||||
)
|
||||
const sshUrlPattern = new RegExp(
|
||||
'^git@' + githubServerMatch[1] + ':(.+/.+)\\.git$',
|
||||
'^https?://.*@?' + hostname + '/(.+/.+?)(\\.git)?$',
|
||||
'i'
|
||||
)
|
||||
const sshUrlPattern = new RegExp('^git@' + hostname + ':(.+/.+)\\.git$', 'i')
|
||||
|
||||
const httpsMatch = remoteUrl.match(httpsUrlPattern)
|
||||
if (httpsMatch) {
|
||||
return {
|
||||
hostname,
|
||||
protocol: 'HTTPS',
|
||||
repository: httpsMatch[1]
|
||||
}
|
||||
|
@ -66,6 +67,7 @@ export function getRemoteDetail(remoteUrl: string): RemoteDetail {
|
|||
const sshMatch = remoteUrl.match(sshUrlPattern)
|
||||
if (sshMatch) {
|
||||
return {
|
||||
hostname,
|
||||
protocol: 'SSH',
|
||||
repository: sshMatch[1]
|
||||
}
|
||||
|
@ -76,10 +78,14 @@ export function getRemoteDetail(remoteUrl: string): RemoteDetail {
|
|||
)
|
||||
}
|
||||
|
||||
export function getRemoteUrl(protocol: string, repository: string): string {
|
||||
export function getRemoteUrl(
|
||||
protocol: string,
|
||||
hostname: string,
|
||||
repository: string
|
||||
): string {
|
||||
return protocol == 'HTTPS'
|
||||
? `https://github.com/${repository}`
|
||||
: `git@github.com:${repository}.git`
|
||||
? `https://${hostname}/${repository}`
|
||||
: `git@${hostname}:${repository}.git`
|
||||
}
|
||||
|
||||
export function secondsSinceEpoch(): number {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue