google / google/copybara

First time importing pull request from public to private

Open
#107 5 comments 2 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
3.8k
Forks
345
PR merge metrics
No merged PRs in 30d

Description

Hello!

I'm stuck on importing PRs.

- I have private and public repositories.
- Before release I need to import some PRs from public to private repository. There have been zero migrations using Copybara before and repositories have zero commits in common.
- Copybara obviously cannot find parent commit. I tell it to use latest master commit as parent and it replaces new code in private with the old one from public which is not the part of the PR.

But I need to migrate only PR changes. I think I can use something like **patch**. Is there any solutions for doing it using Copybara?

Here's my current config:

```
core.workflow(
name = "import_pr_from_oss",

origin = git.github_pr_origin(
url = publicRepoUrl,
state = "ALL",
use_merge = True,
),
destination = git.github_pr_destination(
url = internalRepoUrl,
destination_ref = "master-internal", # TODO: Update to master after test
integrates = [],
),
mode = "CHANGE_REQUEST",
set_rev_id = False,

authoring = authoring.pass_thru("**authoring here**"),

# Including/excluding files
origin_files = glob(["**"], exclude = [

# exclude hidden files
".**",
"**/.**",

# exclude all private sources
"private/**",

# exclude helper scripts and related
"**.sh",
"**.log",
"**.rc",
"revision.txt",

# exclude generated bits
"**/target/**",
"**/node_modules/**",

]) + glob([

# keep some specified files
".circleci/config.yml",
"**/.placeholder",
".mvn/**",
]),

destination_files = glob(["**"], exclude = [

# exclude hidden files
".**",
"**/.**",

# exclude all private sources
"private/**",

# exclude helper scripts and related
"**.sh",
"**.log",
"**.rc",
"revision.txt",

# exclude generated bits
"**/target/**",
"**/node_modules/**",
]) + glob([

# keep some specified files
".circleci/config.yml",
"**/.placeholder",
".mvn/**",
]),

transformations = [
metadata.save_author(),
metadata.expose_label("COPYBARA_INTEGRATE_REVIEW")
metadata.replace_message("${GITHUB_PR_TITLE}\n\n${GITHUB_PR_BODY}\n\nSubmitted by: @${GITHUB_PR_USER}\n\nExternal PR number: #${GITHUB_PR_NUMBER}"),
],
```

Thank you!

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.