This is an automated email from the ASF dual-hosted git repository.

sjanc pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-newt.git

commit fa42de12048a5743e635394ab1d4c2035634bf12
Author: Szymon Janc <[email protected]>
AuthorDate: Tue Oct 13 19:13:42 2026 +0200

    ci: Use local dummy repos in newt upgrade tests
    
    The upgrade tests used mynewt-dummy-repo-0N repos hosted under the
    JuulLabs-OSS GitHub organization. Store them in the tree instead, as
    git fast-export streams, and have CI import them into bare repos
    before running the tests.
    
    Test projects and the repos' own repository.yml files now use the
    placeholder URL https://dummy.invalid/, which setup.sh maps to the
    local repos with a git insteadOf rule.
    
    Rewriting the URLs in repository.yml changed the hashes of commits in
    repos 01-03, so expected.txt files and -commit versions are updated
    accordingly. Repos 04 and 05 are unchanged.
    
    Assisted-by: Claude:claude-opus-5-5
---
 .../success/inferrc/project.yml => .gitattributes  |   7 +-
 .github/newt_upgrade/dummy-repos/README.md         |  49 +++
 .../dummy-repos/mynewt-dummy-repo-01.fi            | 383 ++++++++++++++++
 .../dummy-repos/mynewt-dummy-repo-02.fi            | 480 +++++++++++++++++++++
 .../dummy-repos/mynewt-dummy-repo-03.fi            | 424 ++++++++++++++++++
 .../dummy-repos/mynewt-dummy-repo-04.fi            | 275 ++++++++++++
 .../dummy-repos/mynewt-dummy-repo-05.fi            | 275 ++++++++++++
 .github/newt_upgrade/dummy-repos/setup.sh          |  54 +++
 .github/newt_upgrade/fail/conflict01/project.yml   |   6 +-
 .github/newt_upgrade/fail/conflict02/project.yml   |  12 +-
 .../fail/nonexistent-commit/project.yml            |   6 +-
 .../fail/nonexistent-version/project.yml           |   4 +-
 .github/newt_upgrade/success/basic01/expected.txt  |   6 +-
 .github/newt_upgrade/success/basic01/project.yml   |   4 +-
 .github/newt_upgrade/success/basic02/expected.txt  |   6 +-
 .github/newt_upgrade/success/basic02/project.yml   |   4 +-
 .github/newt_upgrade/success/basic03/expected.txt  |   6 +-
 .github/newt_upgrade/success/basic03/project.yml   |   4 +-
 .../newt_upgrade/success/branches01/expected.txt   |   6 +-
 .../newt_upgrade/success/branches01/project.yml    |   4 +-
 .../success/dup-overrides/expected.txt             |   6 +-
 .../newt_upgrade/success/dup-overrides/project.yml |  10 +-
 .github/newt_upgrade/success/inferrc/expected.txt  |   4 +-
 .github/newt_upgrade/success/inferrc/project.yml   |   2 +-
 .../newt_upgrade/success/one-override/expected.txt |   6 +-
 .../newt_upgrade/success/one-override/project.yml  |   6 +-
 .../success/three-overrides/expected.txt           |   6 +-
 .../success/three-overrides/project.yml            |  14 +-
 .github/workflows/test_upgrade.yml                 |   9 +
 .rat-excludes                                      |   3 +
 30 files changed, 2016 insertions(+), 65 deletions(-)

diff --git a/.github/newt_upgrade/success/inferrc/project.yml b/.gitattributes
similarity index 86%
copy from .github/newt_upgrade/success/inferrc/project.yml
copy to .gitattributes
index dee3c789..804da657 100644
--- a/.github/newt_upgrade/success/inferrc/project.yml
+++ b/.gitattributes
@@ -17,7 +17,6 @@
 # under the License.
 #
 
-repository.mynewt-dummy-repo-02:
-   type: git
-   vers: 2.0.1
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-02.git'
+# git fast-export streams must be imported byte for byte, never convert
+# their line endings.
+*.fi -text
diff --git a/.github/newt_upgrade/dummy-repos/README.md 
b/.github/newt_upgrade/dummy-repos/README.md
new file mode 100644
index 00000000..f85a4f78
--- /dev/null
+++ b/.github/newt_upgrade/dummy-repos/README.md
@@ -0,0 +1,49 @@
+<!--
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+-->
+
+# Dummy repos for newt upgrade tests
+
+The `*.fi` files are `git fast-export` streams of the repos used by the
+`newt upgrade` tests. The test projects refer to them with the
+placeholder URL `https://dummy.invalid/<repo>.git`.
+
+`setup.sh <dest-dir>` imports the streams as bare repos into `<dest-dir>`
+and sets a global git `insteadOf` rule that maps the placeholder URL to
+them. To run the tests locally without touching your git config, point
+`GIT_CONFIG_GLOBAL` at a scratch file first:
+
+    export GIT_CONFIG_GLOBAL=/tmp/dummy-gitconfig
+    .github/newt_upgrade/dummy-repos/setup.sh /tmp/dummy-repos
+    cd .github/newt_upgrade/success/basic01
+    newt upgrade
+
+Commit hashes are deterministic, so `expected.txt` files and `-commit`
+versions in the test projects can refer to them.
+
+## Modifying a repo
+
+Clone it from the imported bare repo, commit, tag and branch as needed,
+push the changes back, then regenerate its stream:
+
+    git -C /tmp/dummy-repos/mynewt-dummy-repo-01.git fast-export \
+        --signed-tags=strip --branches --tags > mynewt-dummy-repo-01.fi
+
+Update any `expected.txt` that depends on changed commits.
diff --git a/.github/newt_upgrade/dummy-repos/mynewt-dummy-repo-01.fi 
b/.github/newt_upgrade/dummy-repos/mynewt-dummy-repo-01.fi
new file mode 100644
index 00000000..83787498
--- /dev/null
+++ b/.github/newt_upgrade/dummy-repos/mynewt-dummy-repo-01.fi
@@ -0,0 +1,383 @@
+blob
+mark :1
+data 23
+# mynewt-dummy-repo-01
+
+reset refs/tags/mynewt_1_0_0_tag
+commit refs/tags/mynewt_1_0_0_tag
+mark :2
+author Christopher Collins <[email protected]> 1579035140 -0800
+committer Christopher Collins <[email protected]> 1579035140 -0800
+data 13
+first commit
+M 100644 :1 README.md
+
+blob
+mark :3
+data 1304
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+repo.name: mynewt-dummy-repo-01
+repo.versions:
+    "0.0.0": "master"
+
+repo.deps:
+    mynewt-dummy-repo-02:
+        type: git
+        url: https://dummy.invalid/mynewt-dummy-repo-02.git
+        vers:
+            master: 0-dev
+
+    mynewt-dummy-repo-03:
+        type: git
+        url: https://dummy.invalid/mynewt-dummy-repo-03.git
+        vers:
+            master: 0-dev
+
+    mynewt-dummy-repo-04:
+        type: git
+        url: https://dummy.invalid/mynewt-dummy-repo-04.git
+        vers:
+            master: 0.0.0
+
+commit refs/tags/mynewt_1_0_0_tag
+mark :4
+author Christopher Collins <[email protected]> 1579042802 -0800
+committer Christopher Collins <[email protected]> 1579042802 -0800
+data 19
+Add repository.yml
+from :2
+M 100644 :3 repository.yml
+
+commit refs/tags/mynewt_1_0_1_tag
+mark :5
+author Christopher Collins <[email protected]> 1579051844 -0800
+committer Christopher Collins <[email protected]> 1579051844 -0800
+data 8
+1.0.0-1
+from :4
+
+commit refs/tags/mynewt_1_0_1_tag
+mark :6
+author Christopher Collins <[email protected]> 1579051844 -0800
+committer Christopher Collins <[email protected]> 1579051844 -0800
+data 8
+1.0.0-2
+from :5
+
+commit refs/tags/mynewt_1_0_1_tag
+mark :7
+author Christopher Collins <[email protected]> 1579051844 -0800
+committer Christopher Collins <[email protected]> 1579051844 -0800
+data 8
+1.0.0-3
+from :6
+
+commit refs/tags/mynewt_1_0_1_tag
+mark :8
+author Christopher Collins <[email protected]> 1579051844 -0800
+committer Christopher Collins <[email protected]> 1579051844 -0800
+data 8
+1.0.1-0
+from :7
+
+commit refs/tags/mynewt_1_0_2_tag
+mark :9
+author Christopher Collins <[email protected]> 1579051844 -0800
+committer Christopher Collins <[email protected]> 1579051844 -0800
+data 8
+1.0.1-1
+from :8
+
+commit refs/tags/mynewt_1_0_2_tag
+mark :10
+author Christopher Collins <[email protected]> 1579051844 -0800
+committer Christopher Collins <[email protected]> 1579051844 -0800
+data 8
+1.0.1-2
+from :9
+
+commit refs/tags/mynewt_1_0_2_tag
+mark :11
+author Christopher Collins <[email protected]> 1579051844 -0800
+committer Christopher Collins <[email protected]> 1579051844 -0800
+data 8
+1.0.1-3
+from :10
+
+commit refs/tags/mynewt_1_0_2_tag
+mark :12
+author Christopher Collins <[email protected]> 1579051844 -0800
+committer Christopher Collins <[email protected]> 1579051844 -0800
+data 8
+1.0.2-0
+from :11
+
+commit refs/heads/mybranch
+mark :13
+author Christopher Collins <[email protected]> 1579051844 -0800
+committer Christopher Collins <[email protected]> 1579051844 -0800
+data 8
+1.0.2-1
+from :12
+
+commit refs/tags/mynewt_1_1_0_tag
+mark :14
+author Christopher Collins <[email protected]> 1579051844 -0800
+committer Christopher Collins <[email protected]> 1579051844 -0800
+data 8
+1.0.2-2
+from :13
+
+commit refs/tags/mynewt_1_1_0_tag
+mark :15
+author Christopher Collins <[email protected]> 1579051844 -0800
+committer Christopher Collins <[email protected]> 1579051844 -0800
+data 8
+1.0.2-3
+from :14
+
+commit refs/tags/mynewt_1_1_0_tag
+mark :16
+author Christopher Collins <[email protected]> 1579051844 -0800
+committer Christopher Collins <[email protected]> 1579051844 -0800
+data 8
+1.1.0-0
+from :15
+
+commit refs/tags/mynewt_2_0_0_tag
+mark :17
+author Christopher Collins <[email protected]> 1579051844 -0800
+committer Christopher Collins <[email protected]> 1579051844 -0800
+data 8
+1.1.0-1
+from :16
+
+commit refs/tags/mynewt_2_0_0_tag
+mark :18
+author Christopher Collins <[email protected]> 1579051844 -0800
+committer Christopher Collins <[email protected]> 1579051844 -0800
+data 8
+1.1.0-2
+from :17
+
+commit refs/tags/mynewt_2_0_0_tag
+mark :19
+author Christopher Collins <[email protected]> 1579051844 -0800
+committer Christopher Collins <[email protected]> 1579051844 -0800
+data 8
+1.1.0-3
+from :18
+
+commit refs/tags/mynewt_2_0_0_tag
+mark :20
+author Christopher Collins <[email protected]> 1579051844 -0800
+committer Christopher Collins <[email protected]> 1579051844 -0800
+data 8
+2.0.0-0
+from :19
+
+commit refs/heads/master
+mark :21
+author Christopher Collins <[email protected]> 1579051844 -0800
+committer Christopher Collins <[email protected]> 1579051844 -0800
+data 8
+2.0.0-1
+from :20
+
+commit refs/heads/master
+mark :22
+author Christopher Collins <[email protected]> 1579051844 -0800
+committer Christopher Collins <[email protected]> 1579051844 -0800
+data 8
+2.0.0-2
+from :21
+
+commit refs/heads/master
+mark :23
+author Christopher Collins <[email protected]> 1579051844 -0800
+committer Christopher Collins <[email protected]> 1579051844 -0800
+data 8
+2.0.0-3
+from :22
+
+blob
+mark :24
+data 1464
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+repo.name: mynewt-dummy-repo-01
+repo.versions:
+    "0.0.0": "master"
+    "1.0.0": "mynewt_1_0_0_tag"
+    "1.0.1": "mynewt_1_0_1_tag"
+    "1.0.2": "mynewt_1_0_2_tag"
+    "1.1.0": "mynewt_1_1_0_tag"
+    "2.0.0": "mynewt_2_0_0_tag"
+
+repo.deps:
+    mynewt-dummy-repo-02:
+        type: git
+        url: https://dummy.invalid/mynewt-dummy-repo-02.git
+        vers:
+            master: 0-dev
+
+    mynewt-dummy-repo-03:
+        type: git
+        url: https://dummy.invalid/mynewt-dummy-repo-03.git
+        vers:
+            master: 0-dev
+
+    mynewt-dummy-repo-04:
+        type: git
+        url: https://dummy.invalid/mynewt-dummy-repo-04.git
+        vers:
+            master: 0.0.0
+
+commit refs/heads/master
+mark :25
+author Christopher Collins <[email protected]> 1579052311 -0800
+committer Christopher Collins <[email protected]> 1579052311 -0800
+data 31
+Add versions to repository.yml
+from :23
+M 100644 :24 repository.yml
+
+blob
+mark :26
+data 2004
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+repo.name: mynewt-dummy-repo-01
+repo.versions:
+    "0.0.0": "master"
+    "1.0.0": "mynewt_1_0_0_tag"
+    "1.0.1": "mynewt_1_0_1_tag"
+    "1.0.2": "mynewt_1_0_2_tag"
+    "1.1.0": "mynewt_1_1_0_tag"
+    "2.0.0": "mynewt_2_0_0_tag"
+
+repo.deps:
+    mynewt-dummy-repo-02:
+        type: git
+        url: https://dummy.invalid/mynewt-dummy-repo-02.git
+        vers:
+            master: 0-dev
+            mynewt_1_0_0_tag: 1.0.0
+            mynewt_1_0_1_tag: 1.0.1
+            mynewt_1_0_2_tag: 1.0.2
+            mynewt_1_1_0_tag: 1.1.0
+            mynewt_2_0_0_tag: 2.0.0
+
+    mynewt-dummy-repo-03:
+        type: git
+        url: https://dummy.invalid/mynewt-dummy-repo-03.git
+        vers:
+            master: 0-dev
+            mynewt_1_0_0_tag: 1.0.0
+            mynewt_1_0_1_tag: 1.0.1
+            mynewt_1_0_2_tag: 1.0.2
+            mynewt_1_1_0_tag: 1.1.0
+            mynewt_2_0_0_tag: 2.0.0
+
+    mynewt-dummy-repo-04:
+        type: git
+        url: https://dummy.invalid/mynewt-dummy-repo-04.git
+        vers:
+            master: 0.0.0
+            mynewt_1_0_0_tag: 1.0.0
+            mynewt_1_0_1_tag: 1.0.1
+            mynewt_1_0_2_tag: 1.0.2
+            mynewt_1_1_0_tag: 1.1.0
+            mynewt_2_0_0_tag: 2.0.0
+
+commit refs/heads/master
+mark :27
+author Christopher Collins <[email protected]> 1579053294 -0800
+committer Christopher Collins <[email protected]> 1579053294 -0800
+data 27
+Add more repo dependencies
+from :25
+M 100644 :26 repository.yml
+
+tag mynewt_2_0_0_tag
+from :20
+tagger Christopher Collins <[email protected]> 1579051844 -0800
+data 6
+2.0.0
+
+tag mynewt_1_1_0_tag
+from :16
+tagger Christopher Collins <[email protected]> 1579051844 -0800
+data 6
+1.1.0
+
+tag mynewt_1_0_2_tag
+from :12
+tagger Christopher Collins <[email protected]> 1579051844 -0800
+data 6
+1.0.2
+
+tag mynewt_1_0_1_tag
+from :8
+tagger Christopher Collins <[email protected]> 1579051844 -0800
+data 6
+1.0.1
+
+tag mynewt_1_0_0_tag
+from :4
+tagger Christopher Collins <[email protected]> 1579051727 -0800
+data 6
+1.0.0
+
diff --git a/.github/newt_upgrade/dummy-repos/mynewt-dummy-repo-02.fi 
b/.github/newt_upgrade/dummy-repos/mynewt-dummy-repo-02.fi
new file mode 100644
index 00000000..f07ddd5c
--- /dev/null
+++ b/.github/newt_upgrade/dummy-repos/mynewt-dummy-repo-02.fi
@@ -0,0 +1,480 @@
+blob
+mark :1
+data 23
+# mynewt-dummy-repo-02
+
+reset refs/tags/mynewt_1_0_0_tag
+commit refs/tags/mynewt_1_0_0_tag
+mark :2
+author Christopher Collins <[email protected]> 1579035521 -0800
+committer Christopher Collins <[email protected]> 1579035521 -0800
+data 13
+first commit
+M 100644 :1 README.md
+
+blob
+mark :3
+data 1036
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+repo.name: mynewt-dummy-repo-02
+repo.versions:
+    "0.0.0": "master"
+
+    "0-dev": "0.0.0"
+
+repo.deps:
+    mynewt-dummy-repo-03:
+        type: git
+        url: https://dummy.invalid/mynewt-dummy-repo-03.git
+        vers:
+            master: 0-dev
+
+commit refs/tags/mynewt_1_0_0_tag
+mark :4
+author Christopher Collins <[email protected]> 1579042808 -0800
+committer Christopher Collins <[email protected]> 1579042808 -0800
+data 19
+Add repository.yml
+from :2
+M 100644 :3 repository.yml
+
+commit refs/tags/mynewt_1_0_1_tag
+mark :5
+author Christopher Collins <[email protected]> 1579051868 -0800
+committer Christopher Collins <[email protected]> 1579051868 -0800
+data 8
+1.0.0-1
+from :4
+
+commit refs/tags/mynewt_1_0_1_tag
+mark :6
+author Christopher Collins <[email protected]> 1579051868 -0800
+committer Christopher Collins <[email protected]> 1579051868 -0800
+data 8
+1.0.0-2
+from :5
+
+commit refs/tags/mynewt_1_0_1_tag
+mark :7
+author Christopher Collins <[email protected]> 1579051868 -0800
+committer Christopher Collins <[email protected]> 1579051868 -0800
+data 8
+1.0.0-3
+from :6
+
+commit refs/tags/mynewt_1_0_1_tag
+mark :8
+author Christopher Collins <[email protected]> 1579051868 -0800
+committer Christopher Collins <[email protected]> 1579051868 -0800
+data 8
+1.0.1-0
+from :7
+
+commit refs/tags/mynewt_1_0_2_tag
+mark :9
+author Christopher Collins <[email protected]> 1579051868 -0800
+committer Christopher Collins <[email protected]> 1579051868 -0800
+data 8
+1.0.1-1
+from :8
+
+commit refs/tags/mynewt_1_0_2_tag
+mark :10
+author Christopher Collins <[email protected]> 1579051868 -0800
+committer Christopher Collins <[email protected]> 1579051868 -0800
+data 8
+1.0.1-2
+from :9
+
+commit refs/tags/mynewt_1_0_2_tag
+mark :11
+author Christopher Collins <[email protected]> 1579051868 -0800
+committer Christopher Collins <[email protected]> 1579051868 -0800
+data 8
+1.0.1-3
+from :10
+
+commit refs/tags/mynewt_1_0_2_tag
+mark :12
+author Christopher Collins <[email protected]> 1579051868 -0800
+committer Christopher Collins <[email protected]> 1579051868 -0800
+data 8
+1.0.2-0
+from :11
+
+commit refs/tags/mynewt_1_1_0_tag
+mark :13
+author Christopher Collins <[email protected]> 1579051868 -0800
+committer Christopher Collins <[email protected]> 1579051868 -0800
+data 8
+1.0.2-1
+from :12
+
+commit refs/tags/mynewt_1_1_0_tag
+mark :14
+author Christopher Collins <[email protected]> 1579051868 -0800
+committer Christopher Collins <[email protected]> 1579051868 -0800
+data 8
+1.0.2-2
+from :13
+
+commit refs/tags/mynewt_1_1_0_tag
+mark :15
+author Christopher Collins <[email protected]> 1579051868 -0800
+committer Christopher Collins <[email protected]> 1579051868 -0800
+data 8
+1.0.2-3
+from :14
+
+commit refs/tags/mynewt_1_1_0_tag
+mark :16
+author Christopher Collins <[email protected]> 1579051868 -0800
+committer Christopher Collins <[email protected]> 1579051868 -0800
+data 8
+1.1.0-0
+from :15
+
+commit refs/tags/mynewt_2_0_0_tag
+mark :17
+author Christopher Collins <[email protected]> 1579051868 -0800
+committer Christopher Collins <[email protected]> 1579051868 -0800
+data 8
+1.1.0-1
+from :16
+
+commit refs/tags/mynewt_2_0_0_tag
+mark :18
+author Christopher Collins <[email protected]> 1579051868 -0800
+committer Christopher Collins <[email protected]> 1579051868 -0800
+data 8
+1.1.0-2
+from :17
+
+commit refs/tags/mynewt_2_0_0_tag
+mark :19
+author Christopher Collins <[email protected]> 1579051868 -0800
+committer Christopher Collins <[email protected]> 1579051868 -0800
+data 8
+1.1.0-3
+from :18
+
+commit refs/tags/mynewt_2_0_0_tag
+mark :20
+author Christopher Collins <[email protected]> 1579051868 -0800
+committer Christopher Collins <[email protected]> 1579051868 -0800
+data 8
+2.0.0-0
+from :19
+
+commit refs/tags/mynewt_2_0_1_rc1_tag
+mark :21
+author Christopher Collins <[email protected]> 1579051869 -0800
+committer Christopher Collins <[email protected]> 1579051869 -0800
+data 8
+2.0.0-1
+from :20
+
+commit refs/tags/mynewt_2_0_1_rc1_tag
+mark :22
+author Christopher Collins <[email protected]> 1579051869 -0800
+committer Christopher Collins <[email protected]> 1579051869 -0800
+data 8
+2.0.0-2
+from :21
+
+commit refs/tags/mynewt_2_0_1_rc1_tag
+mark :23
+author Christopher Collins <[email protected]> 1579051869 -0800
+committer Christopher Collins <[email protected]> 1579051869 -0800
+data 8
+2.0.0-3
+from :22
+
+blob
+mark :24
+data 1196
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+repo.name: mynewt-dummy-repo-02
+repo.versions:
+    "0.0.0": "master"
+    "1.0.0": "mynewt_1_0_0_tag"
+    "1.0.1": "mynewt_1_0_1_tag"
+    "1.0.2": "mynewt_1_0_2_tag"
+    "1.1.0": "mynewt_1_1_0_tag"
+    "2.0.0": "mynewt_2_0_0_tag"
+
+    "0-dev": "0.0.0"
+
+repo.deps:
+    mynewt-dummy-repo-03:
+        type: git
+        url: https://dummy.invalid/mynewt-dummy-repo-03.git
+        vers:
+            master: 0-dev
+
+commit refs/tags/mynewt_2_0_1_rc1_tag
+mark :25
+author Christopher Collins <[email protected]> 1579052315 -0800
+committer Christopher Collins <[email protected]> 1579052315 -0800
+data 31
+Add versions to repository.yml
+from :23
+M 100644 :24 repository.yml
+
+blob
+mark :26
+data 1376
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+repo.name: mynewt-dummy-repo-02
+repo.versions:
+    "0.0.0": "master"
+    "1.0.0": "mynewt_1_0_0_tag"
+    "1.0.1": "mynewt_1_0_1_tag"
+    "1.0.2": "mynewt_1_0_2_tag"
+    "1.1.0": "mynewt_1_1_0_tag"
+    "2.0.0": "mynewt_2_0_0_tag"
+
+    "0-dev": "0.0.0"
+
+repo.deps:
+    mynewt-dummy-repo-03:
+        type: git
+        url: https://dummy.invalid/mynewt-dummy-repo-03.git
+        vers:
+            master: 0-dev
+            mynewt_1_0_0_tag: 1.0.0
+            mynewt_1_0_1_tag: 1.0.1
+            mynewt_1_0_2_tag: 1.0.2
+            mynewt_1_1_0_tag: 1.1.0
+            mynewt_2_0_0_tag: 2.0.0
+
+commit refs/tags/mynewt_2_0_1_rc1_tag
+mark :27
+author Christopher Collins <[email protected]> 1579053311 -0800
+committer Christopher Collins <[email protected]> 1579053311 -0800
+data 27
+Add more repo dependencies
+from :25
+M 100644 :26 repository.yml
+
+commit refs/tags/mynewt_2_0_1_rc2_tag
+mark :28
+author Christopher Collins <[email protected]> 1584743700 -0700
+committer Christopher Collins <[email protected]> 1584743700 -0700
+data 10
+2.0.1-rc2
+from :27
+
+blob
+mark :29
+data 1408
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+repo.name: mynewt-dummy-repo-02
+repo.versions:
+    "0.0.0": "master"
+    "1.0.0": "mynewt_1_0_0_tag"
+    "1.0.1": "mynewt_1_0_1_tag"
+    "1.0.2": "mynewt_1_0_2_tag"
+    "1.1.0": "mynewt_1_1_0_tag"
+    "2.0.0": "mynewt_2_0_0_tag"
+    "2.0.1": "mynewt_2_0_1_tag"
+
+    "0-dev": "0.0.0"
+
+repo.deps:
+    mynewt-dummy-repo-03:
+        type: git
+        url: https://dummy.invalid/mynewt-dummy-repo-03.git
+        vers:
+            master: 0-dev
+            mynewt_1_0_0_tag: 1.0.0
+            mynewt_1_0_1_tag: 1.0.1
+            mynewt_1_0_2_tag: 1.0.2
+            mynewt_1_1_0_tag: 1.1.0
+            mynewt_2_0_0_tag: 2.0.0
+
+commit refs/heads/master
+mark :30
+author Christopher Collins <[email protected]> 1584743865 -0700
+committer Christopher Collins <[email protected]> 1584743865 -0700
+data 35
+repository.yml: Map 2.0.1 to a tag
+from :28
+M 100644 :29 repository.yml
+
+blob
+mark :31
+data 1444
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+repo.name: mynewt-dummy-repo-02
+repo.versions:
+    "0.0.0": "master"
+    "1.0.0": "mynewt_1_0_0_tag"
+    "1.0.1": "mynewt_1_0_1_tag"
+    "1.0.2": "mynewt_1_0_2_tag"
+    "1.1.0": "mynewt_1_1_0_tag"
+    "2.0.0": "mynewt_2_0_0_tag"
+    "2.0.1": "mynewt_2_0_1_tag"
+
+    "0-dev": "0.0.0"
+
+repo.deps:
+    mynewt-dummy-repo-03:
+        type: git
+        url: https://dummy.invalid/mynewt-dummy-repo-03.git
+        vers:
+            master: 0-dev
+            mynewt_1_0_0_tag: 1.0.0
+            mynewt_1_0_1_tag: 1.0.1
+            mynewt_1_0_2_tag: 1.0.2
+            mynewt_1_1_0_tag: 1.1.0
+            mynewt_2_0_0_tag: 2.0.0
+            mynewt_2_0_1_tag: 2.0.1
+
+commit refs/heads/master
+mark :32
+author Christopher Collins <[email protected]> 1584745000 -0700
+committer Christopher Collins <[email protected]> 1584745000 -0700
+data 34
+Make 2.0.1 depend on dummy3-2.0.1
+from :30
+M 100644 :31 repository.yml
+
+tag mynewt_2_0_1_rc3_tag
+from :32
+tagger Christopher Collins <[email protected]> 1584745015 -0700
+data 10
+2.0.1-rc3
+
+tag mynewt_2_0_1_rc2_tag
+from :28
+tagger Christopher Collins <[email protected]> 1584743707 -0700
+data 10
+2.0.1-rc2
+
+tag mynewt_2_0_1_rc1_tag
+from :27
+tagger Christopher Collins <[email protected]> 1584743692 -0700
+data 10
+2.0.1-rc1
+
+tag mynewt_2_0_0_tag
+from :20
+tagger Christopher Collins <[email protected]> 1579051869 -0800
+data 6
+2.0.0
+
+tag mynewt_1_1_0_tag
+from :16
+tagger Christopher Collins <[email protected]> 1579051868 -0800
+data 6
+1.1.0
+
+tag mynewt_1_0_2_tag
+from :12
+tagger Christopher Collins <[email protected]> 1579051868 -0800
+data 6
+1.0.2
+
+tag mynewt_1_0_1_tag
+from :8
+tagger Christopher Collins <[email protected]> 1579051868 -0800
+data 6
+1.0.1
+
+tag mynewt_1_0_0_tag
+from :4
+tagger Christopher Collins <[email protected]> 1579047423 -0800
+data 6
+1.0.0
+
diff --git a/.github/newt_upgrade/dummy-repos/mynewt-dummy-repo-03.fi 
b/.github/newt_upgrade/dummy-repos/mynewt-dummy-repo-03.fi
new file mode 100644
index 00000000..450bf6ed
--- /dev/null
+++ b/.github/newt_upgrade/dummy-repos/mynewt-dummy-repo-03.fi
@@ -0,0 +1,424 @@
+blob
+mark :1
+data 23
+# mynewt-dummy-repo-03
+
+reset refs/tags/mynewt_1_0_0_tag
+commit refs/tags/mynewt_1_0_0_tag
+mark :2
+author Christopher Collins <[email protected]> 1579035525 -0800
+committer Christopher Collins <[email protected]> 1579035525 -0800
+data 13
+first commit
+M 100644 :1 README.md
+
+blob
+mark :3
+data 1036
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+repo.name: mynewt-dummy-repo-03
+repo.versions:
+    "0.0.0": "master"
+
+    "0-dev": "0.0.0"
+
+repo.deps:
+    mynewt-dummy-repo-02:
+        type: git
+        url: https://dummy.invalid/mynewt-dummy-repo-02.git
+        vers:
+            master: 0-dev
+
+commit refs/tags/mynewt_1_0_0_tag
+mark :4
+author Christopher Collins <[email protected]> 1579042811 -0800
+committer Christopher Collins <[email protected]> 1579042811 -0800
+data 19
+Add repository.yml
+from :2
+M 100644 :3 repository.yml
+
+commit refs/tags/mynewt_1_0_1_tag
+mark :5
+author Christopher Collins <[email protected]> 1579051873 -0800
+committer Christopher Collins <[email protected]> 1579051873 -0800
+data 8
+1.0.0-1
+from :4
+
+commit refs/tags/mynewt_1_0_1_tag
+mark :6
+author Christopher Collins <[email protected]> 1579051873 -0800
+committer Christopher Collins <[email protected]> 1579051873 -0800
+data 8
+1.0.0-2
+from :5
+
+commit refs/tags/mynewt_1_0_1_tag
+mark :7
+author Christopher Collins <[email protected]> 1579051873 -0800
+committer Christopher Collins <[email protected]> 1579051873 -0800
+data 8
+1.0.0-3
+from :6
+
+commit refs/tags/mynewt_1_0_1_tag
+mark :8
+author Christopher Collins <[email protected]> 1579051873 -0800
+committer Christopher Collins <[email protected]> 1579051873 -0800
+data 8
+1.0.1-0
+from :7
+
+commit refs/tags/mynewt_1_0_2_tag
+mark :9
+author Christopher Collins <[email protected]> 1579051873 -0800
+committer Christopher Collins <[email protected]> 1579051873 -0800
+data 8
+1.0.1-1
+from :8
+
+commit refs/tags/mynewt_1_0_2_tag
+mark :10
+author Christopher Collins <[email protected]> 1579051873 -0800
+committer Christopher Collins <[email protected]> 1579051873 -0800
+data 8
+1.0.1-2
+from :9
+
+commit refs/tags/mynewt_1_0_2_tag
+mark :11
+author Christopher Collins <[email protected]> 1579051873 -0800
+committer Christopher Collins <[email protected]> 1579051873 -0800
+data 8
+1.0.1-3
+from :10
+
+commit refs/tags/mynewt_1_0_2_tag
+mark :12
+author Christopher Collins <[email protected]> 1579051873 -0800
+committer Christopher Collins <[email protected]> 1579051873 -0800
+data 8
+1.0.2-0
+from :11
+
+commit refs/tags/mynewt_1_1_0_tag
+mark :13
+author Christopher Collins <[email protected]> 1579051873 -0800
+committer Christopher Collins <[email protected]> 1579051873 -0800
+data 8
+1.0.2-1
+from :12
+
+commit refs/tags/mynewt_1_1_0_tag
+mark :14
+author Christopher Collins <[email protected]> 1579051873 -0800
+committer Christopher Collins <[email protected]> 1579051873 -0800
+data 8
+1.0.2-2
+from :13
+
+commit refs/tags/mynewt_1_1_0_tag
+mark :15
+author Christopher Collins <[email protected]> 1579051873 -0800
+committer Christopher Collins <[email protected]> 1579051873 -0800
+data 8
+1.0.2-3
+from :14
+
+commit refs/tags/mynewt_1_1_0_tag
+mark :16
+author Christopher Collins <[email protected]> 1579051873 -0800
+committer Christopher Collins <[email protected]> 1579051873 -0800
+data 8
+1.1.0-0
+from :15
+
+commit refs/tags/mynewt_2_0_0_tag
+mark :17
+author Christopher Collins <[email protected]> 1579051873 -0800
+committer Christopher Collins <[email protected]> 1579051873 -0800
+data 8
+1.1.0-1
+from :16
+
+commit refs/tags/mynewt_2_0_0_tag
+mark :18
+author Christopher Collins <[email protected]> 1579051873 -0800
+committer Christopher Collins <[email protected]> 1579051873 -0800
+data 8
+1.1.0-2
+from :17
+
+commit refs/tags/mynewt_2_0_0_tag
+mark :19
+author Christopher Collins <[email protected]> 1579051873 -0800
+committer Christopher Collins <[email protected]> 1579051873 -0800
+data 8
+1.1.0-3
+from :18
+
+commit refs/tags/mynewt_2_0_0_tag
+mark :20
+author Christopher Collins <[email protected]> 1579051873 -0800
+committer Christopher Collins <[email protected]> 1579051873 -0800
+data 8
+2.0.0-0
+from :19
+
+commit refs/tags/mynewt_2_0_1_rc1_tag
+mark :21
+author Christopher Collins <[email protected]> 1579051873 -0800
+committer Christopher Collins <[email protected]> 1579051873 -0800
+data 8
+2.0.0-1
+from :20
+
+commit refs/tags/mynewt_2_0_1_rc1_tag
+mark :22
+author Christopher Collins <[email protected]> 1579051873 -0800
+committer Christopher Collins <[email protected]> 1579051873 -0800
+data 8
+2.0.0-2
+from :21
+
+commit refs/tags/mynewt_2_0_1_rc1_tag
+mark :23
+author Christopher Collins <[email protected]> 1579051873 -0800
+committer Christopher Collins <[email protected]> 1579051873 -0800
+data 8
+2.0.0-3
+from :22
+
+blob
+mark :24
+data 1196
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+repo.name: mynewt-dummy-repo-03
+repo.versions:
+    "0.0.0": "master"
+    "1.0.0": "mynewt_1_0_0_tag"
+    "1.0.1": "mynewt_1_0_1_tag"
+    "1.0.2": "mynewt_1_0_2_tag"
+    "1.1.0": "mynewt_1_1_0_tag"
+    "2.0.0": "mynewt_2_0_0_tag"
+
+    "0-dev": "0.0.0"
+
+repo.deps:
+    mynewt-dummy-repo-02:
+        type: git
+        url: https://dummy.invalid/mynewt-dummy-repo-02.git
+        vers:
+            master: 0-dev
+
+commit refs/tags/mynewt_2_0_1_rc1_tag
+mark :25
+author Christopher Collins <[email protected]> 1579052319 -0800
+committer Christopher Collins <[email protected]> 1579052319 -0800
+data 31
+Add versions to repository.yml
+from :23
+M 100644 :24 repository.yml
+
+blob
+mark :26
+data 1376
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+repo.name: mynewt-dummy-repo-03
+repo.versions:
+    "0.0.0": "master"
+    "1.0.0": "mynewt_1_0_0_tag"
+    "1.0.1": "mynewt_1_0_1_tag"
+    "1.0.2": "mynewt_1_0_2_tag"
+    "1.1.0": "mynewt_1_1_0_tag"
+    "2.0.0": "mynewt_2_0_0_tag"
+
+    "0-dev": "0.0.0"
+
+repo.deps:
+    mynewt-dummy-repo-02:
+        type: git
+        url: https://dummy.invalid/mynewt-dummy-repo-02.git
+        vers:
+            master: 0-dev
+            mynewt_1_0_0_tag: 1.0.0
+            mynewt_1_0_1_tag: 1.0.1
+            mynewt_1_0_2_tag: 1.0.2
+            mynewt_1_1_0_tag: 1.1.0
+            mynewt_2_0_0_tag: 2.0.0
+
+commit refs/tags/mynewt_2_0_1_rc1_tag
+mark :27
+author Christopher Collins <[email protected]> 1579053319 -0800
+committer Christopher Collins <[email protected]> 1579053319 -0800
+data 27
+Add more repo dependencies
+from :25
+M 100644 :26 repository.yml
+
+commit refs/tags/mynewt_2_0_1_rc2_tag
+mark :28
+author Christopher Collins <[email protected]> 1584743466 -0700
+committer Christopher Collins <[email protected]> 1584743466 -0700
+data 10
+2.0.1-rc2
+from :27
+
+blob
+mark :29
+data 1408
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+repo.name: mynewt-dummy-repo-03
+repo.versions:
+    "0.0.0": "master"
+    "1.0.0": "mynewt_1_0_0_tag"
+    "1.0.1": "mynewt_1_0_1_tag"
+    "1.0.2": "mynewt_1_0_2_tag"
+    "1.1.0": "mynewt_1_1_0_tag"
+    "2.0.0": "mynewt_2_0_0_tag"
+    "2.0.1": "mynewt_2_0_1_tag"
+
+    "0-dev": "0.0.0"
+
+repo.deps:
+    mynewt-dummy-repo-02:
+        type: git
+        url: https://dummy.invalid/mynewt-dummy-repo-02.git
+        vers:
+            master: 0-dev
+            mynewt_1_0_0_tag: 1.0.0
+            mynewt_1_0_1_tag: 1.0.1
+            mynewt_1_0_2_tag: 1.0.2
+            mynewt_1_1_0_tag: 1.1.0
+            mynewt_2_0_0_tag: 2.0.0
+
+commit refs/heads/master
+mark :30
+author Christopher Collins <[email protected]> 1584743897 -0700
+committer Christopher Collins <[email protected]> 1584743897 -0700
+data 35
+repository.yml: Map 2.0.1 to a tag
+from :28
+M 100644 :29 repository.yml
+
+tag mynewt_2_0_1_rc3_tag
+from :30
+tagger Christopher Collins <[email protected]> 1584744868 -0700
+data 10
+2.0.1-rc3
+
+tag mynewt_2_0_1_rc2_tag
+from :28
+tagger Christopher Collins <[email protected]> 1584743485 -0700
+data 10
+2.0.1-rc2
+
+tag mynewt_2_0_1_rc1_tag
+from :27
+tagger Christopher Collins <[email protected]> 1584743456 -0700
+data 10
+2.0.1-rc1
+
+tag mynewt_2_0_0_tag
+from :20
+tagger Christopher Collins <[email protected]> 1579051873 -0800
+data 6
+2.0.0
+
+tag mynewt_1_1_0_tag
+from :16
+tagger Christopher Collins <[email protected]> 1579051873 -0800
+data 6
+1.1.0
+
+tag mynewt_1_0_2_tag
+from :12
+tagger Christopher Collins <[email protected]> 1579051873 -0800
+data 6
+1.0.2
+
+tag mynewt_1_0_1_tag
+from :8
+tagger Christopher Collins <[email protected]> 1579051873 -0800
+data 6
+1.0.1
+
+tag mynewt_1_0_0_tag
+from :4
+tagger Christopher Collins <[email protected]> 1579047427 -0800
+data 6
+1.0.0
+
diff --git a/.github/newt_upgrade/dummy-repos/mynewt-dummy-repo-04.fi 
b/.github/newt_upgrade/dummy-repos/mynewt-dummy-repo-04.fi
new file mode 100644
index 00000000..5f710096
--- /dev/null
+++ b/.github/newt_upgrade/dummy-repos/mynewt-dummy-repo-04.fi
@@ -0,0 +1,275 @@
+blob
+mark :1
+data 23
+# mynewt-dummy-repo-04
+
+reset refs/tags/mynewt_1_0_0_tag
+commit refs/tags/mynewt_1_0_0_tag
+mark :2
+author Christopher Collins <[email protected]> 1579035528 -0800
+committer Christopher Collins <[email protected]> 1579035528 -0800
+data 13
+first commit
+M 100644 :1 README.md
+
+blob
+mark :3
+data 880
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+repo.name: mynewt-dummy-repo-04
+repo.versions:
+    "0.0.0": "master"
+
+    "0-dev": "0.0.0"
+
+commit refs/tags/mynewt_1_0_0_tag
+mark :4
+author Christopher Collins <[email protected]> 1579042815 -0800
+committer Christopher Collins <[email protected]> 1579042815 -0800
+data 19
+Add repository.yml
+from :2
+M 100644 :3 repository.yml
+
+commit refs/tags/mynewt_1_0_1_tag
+mark :5
+author Christopher Collins <[email protected]> 1579051877 -0800
+committer Christopher Collins <[email protected]> 1579051877 -0800
+data 8
+1.0.0-1
+from :4
+
+commit refs/tags/mynewt_1_0_1_tag
+mark :6
+author Christopher Collins <[email protected]> 1579051877 -0800
+committer Christopher Collins <[email protected]> 1579051877 -0800
+data 8
+1.0.0-2
+from :5
+
+commit refs/tags/mynewt_1_0_1_tag
+mark :7
+author Christopher Collins <[email protected]> 1579051877 -0800
+committer Christopher Collins <[email protected]> 1579051877 -0800
+data 8
+1.0.0-3
+from :6
+
+commit refs/tags/mynewt_1_0_1_tag
+mark :8
+author Christopher Collins <[email protected]> 1579051877 -0800
+committer Christopher Collins <[email protected]> 1579051877 -0800
+data 8
+1.0.1-0
+from :7
+
+commit refs/tags/mynewt_1_0_2_tag
+mark :9
+author Christopher Collins <[email protected]> 1579051877 -0800
+committer Christopher Collins <[email protected]> 1579051877 -0800
+data 8
+1.0.1-1
+from :8
+
+commit refs/tags/mynewt_1_0_2_tag
+mark :10
+author Christopher Collins <[email protected]> 1579051877 -0800
+committer Christopher Collins <[email protected]> 1579051877 -0800
+data 8
+1.0.1-2
+from :9
+
+commit refs/tags/mynewt_1_0_2_tag
+mark :11
+author Christopher Collins <[email protected]> 1579051877 -0800
+committer Christopher Collins <[email protected]> 1579051877 -0800
+data 8
+1.0.1-3
+from :10
+
+commit refs/tags/mynewt_1_0_2_tag
+mark :12
+author Christopher Collins <[email protected]> 1579051877 -0800
+committer Christopher Collins <[email protected]> 1579051877 -0800
+data 8
+1.0.2-0
+from :11
+
+commit refs/tags/mynewt_1_1_0_tag
+mark :13
+author Christopher Collins <[email protected]> 1579051877 -0800
+committer Christopher Collins <[email protected]> 1579051877 -0800
+data 8
+1.0.2-1
+from :12
+
+commit refs/tags/mynewt_1_1_0_tag
+mark :14
+author Christopher Collins <[email protected]> 1579051877 -0800
+committer Christopher Collins <[email protected]> 1579051877 -0800
+data 8
+1.0.2-2
+from :13
+
+commit refs/tags/mynewt_1_1_0_tag
+mark :15
+author Christopher Collins <[email protected]> 1579051877 -0800
+committer Christopher Collins <[email protected]> 1579051877 -0800
+data 8
+1.0.2-3
+from :14
+
+commit refs/tags/mynewt_1_1_0_tag
+mark :16
+author Christopher Collins <[email protected]> 1579051877 -0800
+committer Christopher Collins <[email protected]> 1579051877 -0800
+data 8
+1.1.0-0
+from :15
+
+commit refs/tags/mynewt_2_0_0_tag
+mark :17
+author Christopher Collins <[email protected]> 1579051877 -0800
+committer Christopher Collins <[email protected]> 1579051877 -0800
+data 8
+1.1.0-1
+from :16
+
+commit refs/tags/mynewt_2_0_0_tag
+mark :18
+author Christopher Collins <[email protected]> 1579051877 -0800
+committer Christopher Collins <[email protected]> 1579051877 -0800
+data 8
+1.1.0-2
+from :17
+
+commit refs/tags/mynewt_2_0_0_tag
+mark :19
+author Christopher Collins <[email protected]> 1579051877 -0800
+committer Christopher Collins <[email protected]> 1579051877 -0800
+data 8
+1.1.0-3
+from :18
+
+commit refs/tags/mynewt_2_0_0_tag
+mark :20
+author Christopher Collins <[email protected]> 1579051877 -0800
+committer Christopher Collins <[email protected]> 1579051877 -0800
+data 8
+2.0.0-0
+from :19
+
+commit refs/heads/master
+mark :21
+author Christopher Collins <[email protected]> 1579051877 -0800
+committer Christopher Collins <[email protected]> 1579051877 -0800
+data 8
+2.0.0-1
+from :20
+
+commit refs/heads/master
+mark :22
+author Christopher Collins <[email protected]> 1579051877 -0800
+committer Christopher Collins <[email protected]> 1579051877 -0800
+data 8
+2.0.0-2
+from :21
+
+commit refs/heads/master
+mark :23
+author Christopher Collins <[email protected]> 1579051877 -0800
+committer Christopher Collins <[email protected]> 1579051877 -0800
+data 8
+2.0.0-3
+from :22
+
+blob
+mark :24
+data 1040
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+repo.name: mynewt-dummy-repo-04
+repo.versions:
+    "0.0.0": "master"
+    "1.0.0": "mynewt_1_0_0_tag"
+    "1.0.1": "mynewt_1_0_1_tag"
+    "1.0.2": "mynewt_1_0_2_tag"
+    "1.1.0": "mynewt_1_1_0_tag"
+    "2.0.0": "mynewt_2_0_0_tag"
+
+    "0-dev": "0.0.0"
+
+commit refs/heads/master
+mark :25
+author Christopher Collins <[email protected]> 1579052322 -0800
+committer Christopher Collins <[email protected]> 1579052322 -0800
+data 31
+Add versions to repository.yml
+from :23
+M 100644 :24 repository.yml
+
+tag mynewt_2_0_0_tag
+from :20
+tagger Christopher Collins <[email protected]> 1579051877 -0800
+data 6
+2.0.0
+
+tag mynewt_1_1_0_tag
+from :16
+tagger Christopher Collins <[email protected]> 1579051877 -0800
+data 6
+1.1.0
+
+tag mynewt_1_0_2_tag
+from :12
+tagger Christopher Collins <[email protected]> 1579051877 -0800
+data 6
+1.0.2
+
+tag mynewt_1_0_1_tag
+from :8
+tagger Christopher Collins <[email protected]> 1579051877 -0800
+data 6
+1.0.1
+
+tag mynewt_1_0_0_tag
+from :4
+tagger Christopher Collins <[email protected]> 1579047430 -0800
+data 6
+1.0.0
+
diff --git a/.github/newt_upgrade/dummy-repos/mynewt-dummy-repo-05.fi 
b/.github/newt_upgrade/dummy-repos/mynewt-dummy-repo-05.fi
new file mode 100644
index 00000000..123f5dd8
--- /dev/null
+++ b/.github/newt_upgrade/dummy-repos/mynewt-dummy-repo-05.fi
@@ -0,0 +1,275 @@
+blob
+mark :1
+data 23
+# mynewt-dummy-repo-05
+
+reset refs/tags/mynewt_1_0_0_tag
+commit refs/tags/mynewt_1_0_0_tag
+mark :2
+author Christopher Collins <[email protected]> 1579035532 -0800
+committer Christopher Collins <[email protected]> 1579035532 -0800
+data 13
+first commit
+M 100644 :1 README.md
+
+blob
+mark :3
+data 880
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+repo.name: mynewt-dummy-repo-05
+repo.versions:
+    "0.0.0": "master"
+
+    "0-dev": "0.0.0"
+
+commit refs/tags/mynewt_1_0_0_tag
+mark :4
+author Christopher Collins <[email protected]> 1579042818 -0800
+committer Christopher Collins <[email protected]> 1579042818 -0800
+data 19
+Add repository.yml
+from :2
+M 100644 :3 repository.yml
+
+commit refs/tags/mynewt_1_0_1_tag
+mark :5
+author Christopher Collins <[email protected]> 1579051881 -0800
+committer Christopher Collins <[email protected]> 1579051881 -0800
+data 8
+1.0.0-1
+from :4
+
+commit refs/tags/mynewt_1_0_1_tag
+mark :6
+author Christopher Collins <[email protected]> 1579051881 -0800
+committer Christopher Collins <[email protected]> 1579051881 -0800
+data 8
+1.0.0-2
+from :5
+
+commit refs/tags/mynewt_1_0_1_tag
+mark :7
+author Christopher Collins <[email protected]> 1579051881 -0800
+committer Christopher Collins <[email protected]> 1579051881 -0800
+data 8
+1.0.0-3
+from :6
+
+commit refs/tags/mynewt_1_0_1_tag
+mark :8
+author Christopher Collins <[email protected]> 1579051881 -0800
+committer Christopher Collins <[email protected]> 1579051881 -0800
+data 8
+1.0.1-0
+from :7
+
+commit refs/tags/mynewt_1_0_2_tag
+mark :9
+author Christopher Collins <[email protected]> 1579051881 -0800
+committer Christopher Collins <[email protected]> 1579051881 -0800
+data 8
+1.0.1-1
+from :8
+
+commit refs/tags/mynewt_1_0_2_tag
+mark :10
+author Christopher Collins <[email protected]> 1579051881 -0800
+committer Christopher Collins <[email protected]> 1579051881 -0800
+data 8
+1.0.1-2
+from :9
+
+commit refs/tags/mynewt_1_0_2_tag
+mark :11
+author Christopher Collins <[email protected]> 1579051881 -0800
+committer Christopher Collins <[email protected]> 1579051881 -0800
+data 8
+1.0.1-3
+from :10
+
+commit refs/tags/mynewt_1_0_2_tag
+mark :12
+author Christopher Collins <[email protected]> 1579051881 -0800
+committer Christopher Collins <[email protected]> 1579051881 -0800
+data 8
+1.0.2-0
+from :11
+
+commit refs/tags/mynewt_1_1_0_tag
+mark :13
+author Christopher Collins <[email protected]> 1579051881 -0800
+committer Christopher Collins <[email protected]> 1579051881 -0800
+data 8
+1.0.2-1
+from :12
+
+commit refs/tags/mynewt_1_1_0_tag
+mark :14
+author Christopher Collins <[email protected]> 1579051881 -0800
+committer Christopher Collins <[email protected]> 1579051881 -0800
+data 8
+1.0.2-2
+from :13
+
+commit refs/tags/mynewt_1_1_0_tag
+mark :15
+author Christopher Collins <[email protected]> 1579051881 -0800
+committer Christopher Collins <[email protected]> 1579051881 -0800
+data 8
+1.0.2-3
+from :14
+
+commit refs/tags/mynewt_1_1_0_tag
+mark :16
+author Christopher Collins <[email protected]> 1579051881 -0800
+committer Christopher Collins <[email protected]> 1579051881 -0800
+data 8
+1.1.0-0
+from :15
+
+commit refs/tags/mynewt_2_0_0_tag
+mark :17
+author Christopher Collins <[email protected]> 1579051881 -0800
+committer Christopher Collins <[email protected]> 1579051881 -0800
+data 8
+1.1.0-1
+from :16
+
+commit refs/tags/mynewt_2_0_0_tag
+mark :18
+author Christopher Collins <[email protected]> 1579051881 -0800
+committer Christopher Collins <[email protected]> 1579051881 -0800
+data 8
+1.1.0-2
+from :17
+
+commit refs/tags/mynewt_2_0_0_tag
+mark :19
+author Christopher Collins <[email protected]> 1579051881 -0800
+committer Christopher Collins <[email protected]> 1579051881 -0800
+data 8
+1.1.0-3
+from :18
+
+commit refs/tags/mynewt_2_0_0_tag
+mark :20
+author Christopher Collins <[email protected]> 1579051881 -0800
+committer Christopher Collins <[email protected]> 1579051881 -0800
+data 8
+2.0.0-0
+from :19
+
+commit refs/heads/mybranch
+mark :21
+author Christopher Collins <[email protected]> 1579051881 -0800
+committer Christopher Collins <[email protected]> 1579051881 -0800
+data 8
+2.0.0-1
+from :20
+
+commit refs/heads/master
+mark :22
+author Christopher Collins <[email protected]> 1579051881 -0800
+committer Christopher Collins <[email protected]> 1579051881 -0800
+data 8
+2.0.0-2
+from :21
+
+commit refs/heads/master
+mark :23
+author Christopher Collins <[email protected]> 1579051881 -0800
+committer Christopher Collins <[email protected]> 1579051881 -0800
+data 8
+2.0.0-3
+from :22
+
+blob
+mark :24
+data 1040
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+repo.name: mynewt-dummy-repo-05
+repo.versions:
+    "0.0.0": "master"
+    "1.0.0": "mynewt_1_0_0_tag"
+    "1.0.1": "mynewt_1_0_1_tag"
+    "1.0.2": "mynewt_1_0_2_tag"
+    "1.1.0": "mynewt_1_1_0_tag"
+    "2.0.0": "mynewt_2_0_0_tag"
+
+    "0-dev": "0.0.0"
+
+commit refs/heads/master
+mark :25
+author Christopher Collins <[email protected]> 1579052326 -0800
+committer Christopher Collins <[email protected]> 1579052326 -0800
+data 31
+Add versions to repository.yml
+from :23
+M 100644 :24 repository.yml
+
+tag mynewt_2_0_0_tag
+from :20
+tagger Christopher Collins <[email protected]> 1579051881 -0800
+data 6
+2.0.0
+
+tag mynewt_1_1_0_tag
+from :16
+tagger Christopher Collins <[email protected]> 1579051881 -0800
+data 6
+1.1.0
+
+tag mynewt_1_0_2_tag
+from :12
+tagger Christopher Collins <[email protected]> 1579051881 -0800
+data 6
+1.0.2
+
+tag mynewt_1_0_1_tag
+from :8
+tagger Christopher Collins <[email protected]> 1579051881 -0800
+data 6
+1.0.1
+
+tag mynewt_1_0_0_tag
+from :4
+tagger Christopher Collins <[email protected]> 1579047434 -0800
+data 6
+1.0.0
+
diff --git a/.github/newt_upgrade/dummy-repos/setup.sh 
b/.github/newt_upgrade/dummy-repos/setup.sh
new file mode 100755
index 00000000..f79928ad
--- /dev/null
+++ b/.github/newt_upgrade/dummy-repos/setup.sh
@@ -0,0 +1,54 @@
+#!/bin/sh
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#  http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+# Creates the dummy repos used by the newt upgrade tests from their
+# fast-export streams and makes git resolve the placeholder URL used in
+# the test projects to them.  Modifies the global git config.
+
+URL_PLACEHOLDER='https://dummy.invalid/'
+
+if [ $# -ne 1 ]
+then
+    echo "usage: setup.sh <dest-dir>" >&2
+    exit 1
+fi
+
+set -e
+
+SRC_DIR=$(cd "$(dirname "$0")" && pwd)
+mkdir -p "$1"
+DEST_DIR=$(cd "$1" && (pwd -W 2>/dev/null || pwd))
+
+for f in "$SRC_DIR"/*.fi
+do
+    repo="$DEST_DIR/$(basename "$f" .fi).git"
+    echo "Creating $repo"
+    git init -q --bare "$repo"
+    git -C "$repo" fast-import --quiet < "$f"
+    git -C "$repo" symbolic-ref HEAD refs/heads/master
+done
+
+# On Windows the path starts with a drive letter instead of a slash.
+case "$DEST_DIR" in
+    /*) ;;
+    *) DEST_DIR="/$DEST_DIR" ;;
+esac
+
+git config --global url."file://$DEST_DIR/".insteadOf "$URL_PLACEHOLDER"
diff --git a/.github/newt_upgrade/fail/conflict01/project.yml 
b/.github/newt_upgrade/fail/conflict01/project.yml
index e7489690..ff1365fc 100644
--- a/.github/newt_upgrade/fail/conflict01/project.yml
+++ b/.github/newt_upgrade/fail/conflict01/project.yml
@@ -20,12 +20,12 @@
 repository.mynewt-dummy-repo-01:
    type: git
    vers: 0.0.0
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-01.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-01.git'
 
 repository.mynewt-dummy-repo-05:
    type: git
    vers: 0.0.0
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-05.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-05.git'
 
 ### Project overrides of repo-01 dependencies:
 
@@ -33,4 +33,4 @@ repository.mynewt-dummy-repo-05:
 repository.mynewt-dummy-repo-02:
    type: git
    vers: 1.0.0
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-02.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-02.git'
diff --git a/.github/newt_upgrade/fail/conflict02/project.yml 
b/.github/newt_upgrade/fail/conflict02/project.yml
index 4e9866dd..f085f169 100644
--- a/.github/newt_upgrade/fail/conflict02/project.yml
+++ b/.github/newt_upgrade/fail/conflict02/project.yml
@@ -20,12 +20,12 @@
 repository.mynewt-dummy-repo-01:
    type: git
    vers: 1.0.0
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-01.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-01.git'
 
 repository.mynewt-dummy-repo-05:
    type: git
    vers: 2.0.0
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-05.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-05.git'
 
 ### Project overrides of repo-01 dependencies:
 
@@ -33,16 +33,16 @@ repository.mynewt-dummy-repo-05:
 repository.mynewt-dummy-repo-02:
    type: git
    vers: 1.0.0
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-02.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-02.git'
 
 # This override takes precendence over the repo-01 dependency.
 repository.mynewt-dummy-repo-03:
    type: git
-   vers: bb580b0fd3815226ecebb906db239bdf997a1cf0-commit
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-03.git'
+   vers: ff71469039b3d63cb0925e866c6a6dfb7d41a055-commit
+   url: 'https://dummy.invalid/mynewt-dummy-repo-03.git'
 
 # This override conflicts with the repo-01's 0.0.0 dependency.
 repository.mynewt-dummy-repo-04:
    type: git
    vers: 1.0.2
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-04.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-04.git'
diff --git a/.github/newt_upgrade/fail/nonexistent-commit/project.yml 
b/.github/newt_upgrade/fail/nonexistent-commit/project.yml
index 0fccccc6..897237c6 100644
--- a/.github/newt_upgrade/fail/nonexistent-commit/project.yml
+++ b/.github/newt_upgrade/fail/nonexistent-commit/project.yml
@@ -20,12 +20,12 @@
 repository.mynewt-dummy-repo-01:
    type: git
    vers: 1.0.0
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-01.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-01.git'
 
 repository.mynewt-dummy-repo-05:
    type: git
    vers: 0.0.0
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-05.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-05.git'
 
 ### Project overrides of repo-01 dependencies:
 
@@ -33,4 +33,4 @@ repository.mynewt-dummy-repo-05:
 repository.mynewt-dummy-repo-02:
    type: git
    vers: fafa0899ee1a78a3c3b547e368a2a459d708bf27-commit
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-02.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-02.git'
diff --git a/.github/newt_upgrade/fail/nonexistent-version/project.yml 
b/.github/newt_upgrade/fail/nonexistent-version/project.yml
index 3d6da36f..f8eec41a 100644
--- a/.github/newt_upgrade/fail/nonexistent-version/project.yml
+++ b/.github/newt_upgrade/fail/nonexistent-version/project.yml
@@ -20,9 +20,9 @@
 repository.mynewt-dummy-repo-01:
    type: git
    vers: 5.0.0  # Nonexistent version.
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-01.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-01.git'
 
 repository.mynewt-dummy-repo-05:
    type: git
    vers: 0.0.0
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-05.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-05.git'
diff --git a/.github/newt_upgrade/success/basic01/expected.txt 
b/.github/newt_upgrade/success/basic01/expected.txt
index c17a32d3..8e754afe 100644
--- a/.github/newt_upgrade/success/basic01/expected.txt
+++ b/.github/newt_upgrade/success/basic01/expected.txt
@@ -1,5 +1,5 @@
-    * mynewt-dummy-repo-01: 11badf27c834a587f9a4d14c30f861bc10af75c4, 0.0.0
-    * mynewt-dummy-repo-02: 603212f5105432b0db36336931d8dcd85f9038ff, 2.0.1 
(rc)
-    * mynewt-dummy-repo-03: 5df87b6ab70d2d6464f68e733b1d67c1652e0954, 2.0.1 
(rc)
+    * mynewt-dummy-repo-01: 1eee4918e0d207637cd91d9b4d851c4250041b06, 0.0.0
+    * mynewt-dummy-repo-02: 49ecae928798b33604922f912234c8d356efb1d4, 2.0.1 
(rc)
+    * mynewt-dummy-repo-03: 704f878403c920cc0d303452d04c13b98632b829, 2.0.1 
(rc)
     * mynewt-dummy-repo-04: 503782e265da53629ed26af485d01a3b7ac80cbd, 0.0.0
     * mynewt-dummy-repo-05: 59a441a8d183bab2f0f5bb5c3306462c9ddf86cd, 0.0.0
diff --git a/.github/newt_upgrade/success/basic01/project.yml 
b/.github/newt_upgrade/success/basic01/project.yml
index a3d47109..585a3bcd 100644
--- a/.github/newt_upgrade/success/basic01/project.yml
+++ b/.github/newt_upgrade/success/basic01/project.yml
@@ -20,9 +20,9 @@
 repository.mynewt-dummy-repo-01:
    type: git
    vers: 0.0.0
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-01.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-01.git'
 
 repository.mynewt-dummy-repo-05:
    type: git
    vers: 0.0.0
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-05.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-05.git'
diff --git a/.github/newt_upgrade/success/basic02/expected.txt 
b/.github/newt_upgrade/success/basic02/expected.txt
index e0436940..3ae599b5 100644
--- a/.github/newt_upgrade/success/basic02/expected.txt
+++ b/.github/newt_upgrade/success/basic02/expected.txt
@@ -1,5 +1,5 @@
-    * mynewt-dummy-repo-01: 0faa5d19dcfe87abac31cde116e827a078f473a9, 1.0.0
-    * mynewt-dummy-repo-02: af829c7ef96067c0d3ca705237c73bc94e51cc9e, 1.0.0
-    * mynewt-dummy-repo-03: 22344a05cfff9eb7bc38f8acdf609b102c93efdc, 1.0.0
+    * mynewt-dummy-repo-01: 91ba7596c74db21818b411e2a74550bba38d5315, 1.0.0
+    * mynewt-dummy-repo-02: 155bdc4cf4136d70841d299927fe8bd8b317024f, 1.0.0
+    * mynewt-dummy-repo-03: 5606660ece337dcc6f05b81a52bab9ca9aa29cfb, 1.0.0
     * mynewt-dummy-repo-04: b71c97687846f5d6e88c9bb2951e077f18506967, 1.0.0
     * mynewt-dummy-repo-05: 492b7645830e8f103c2de840d273c55112e8f960, 1.0.0
diff --git a/.github/newt_upgrade/success/basic02/project.yml 
b/.github/newt_upgrade/success/basic02/project.yml
index e13091d1..f2a3571e 100644
--- a/.github/newt_upgrade/success/basic02/project.yml
+++ b/.github/newt_upgrade/success/basic02/project.yml
@@ -20,9 +20,9 @@
 repository.mynewt-dummy-repo-01:
    type: git
    vers: 1.0.0
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-01.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-01.git'
 
 repository.mynewt-dummy-repo-05:
    type: git
    vers: 1.0.0
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-05.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-05.git'
diff --git a/.github/newt_upgrade/success/basic03/expected.txt 
b/.github/newt_upgrade/success/basic03/expected.txt
index ffb86d47..8e5a67a4 100644
--- a/.github/newt_upgrade/success/basic03/expected.txt
+++ b/.github/newt_upgrade/success/basic03/expected.txt
@@ -1,5 +1,5 @@
-    * mynewt-dummy-repo-01: 00455b38afa291692f034210b7ba7de0f0133af1, 1.0.2
-    * mynewt-dummy-repo-02: cbd56699b48dadd743703e77b218abab3ac9f7bb, 1.0.2
-    * mynewt-dummy-repo-03: 0c60bec5fe54e621cec13c23da5a3a26c0bcde14, 1.0.2
+    * mynewt-dummy-repo-01: 76fb933ec89a8d52f2c0b8b179371e0ae25c259b, 1.0.2
+    * mynewt-dummy-repo-02: 41e9c388dcf6aa9216929c82ba4414fb054af8da, 1.0.2
+    * mynewt-dummy-repo-03: 919438092902989981ca4d6d42781d706cc413e2, 1.0.2
     * mynewt-dummy-repo-04: e727f88ca34fffba63a52bb8a0089f50d16f6259, 1.0.2
     * mynewt-dummy-repo-05: 762d7da4ac4fc34df941b99fc0c57a030e5b1833, 2.0.0
diff --git a/.github/newt_upgrade/success/basic03/project.yml 
b/.github/newt_upgrade/success/basic03/project.yml
index a97efab7..f98bd848 100644
--- a/.github/newt_upgrade/success/basic03/project.yml
+++ b/.github/newt_upgrade/success/basic03/project.yml
@@ -20,9 +20,9 @@
 repository.mynewt-dummy-repo-01:
    type: git
    vers: 1.0.2
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-01.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-01.git'
 
 repository.mynewt-dummy-repo-05:
    type: git
    vers: 2.0.0
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-05.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-05.git'
diff --git a/.github/newt_upgrade/success/branches01/expected.txt 
b/.github/newt_upgrade/success/branches01/expected.txt
index 99d2a1b8..f00a927c 100644
--- a/.github/newt_upgrade/success/branches01/expected.txt
+++ b/.github/newt_upgrade/success/branches01/expected.txt
@@ -1,5 +1,5 @@
-    * mynewt-dummy-repo-01: 0d52ff5eed266459edda0384d41745acb4297c89
-    * mynewt-dummy-repo-02: 603212f5105432b0db36336931d8dcd85f9038ff, 2.0.1 
(rc)
-    * mynewt-dummy-repo-03: 5df87b6ab70d2d6464f68e733b1d67c1652e0954, 2.0.1 
(rc)
+    * mynewt-dummy-repo-01: fff3b9949b3cfcb3b56acfcdb05a41e78a39efdf
+    * mynewt-dummy-repo-02: 49ecae928798b33604922f912234c8d356efb1d4, 2.0.1 
(rc)
+    * mynewt-dummy-repo-03: 704f878403c920cc0d303452d04c13b98632b829, 2.0.1 
(rc)
     * mynewt-dummy-repo-04: 503782e265da53629ed26af485d01a3b7ac80cbd, 0.0.0
     * mynewt-dummy-repo-05: ea8ffb94ad4ddb39c5179924316f0ebef1e2c90f
diff --git a/.github/newt_upgrade/success/branches01/project.yml 
b/.github/newt_upgrade/success/branches01/project.yml
index 4fd0846c..2b4c428d 100644
--- a/.github/newt_upgrade/success/branches01/project.yml
+++ b/.github/newt_upgrade/success/branches01/project.yml
@@ -26,9 +26,9 @@
 repository.mynewt-dummy-repo-01:
    type: git
    vers: mybranch-commit
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-01.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-01.git'
 
 repository.mynewt-dummy-repo-05:
    type: git
    vers: mybranch-commit
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-05.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-05.git'
diff --git a/.github/newt_upgrade/success/dup-overrides/expected.txt 
b/.github/newt_upgrade/success/dup-overrides/expected.txt
index a4f1af11..cb379155 100644
--- a/.github/newt_upgrade/success/dup-overrides/expected.txt
+++ b/.github/newt_upgrade/success/dup-overrides/expected.txt
@@ -1,5 +1,5 @@
-    * mynewt-dummy-repo-01: 00455b38afa291692f034210b7ba7de0f0133af1, 1.0.2
-    * mynewt-dummy-repo-02: cbd56699b48dadd743703e77b218abab3ac9f7bb, 1.0.2
-    * mynewt-dummy-repo-03: 0c60bec5fe54e621cec13c23da5a3a26c0bcde14, 1.0.2
+    * mynewt-dummy-repo-01: 76fb933ec89a8d52f2c0b8b179371e0ae25c259b, 1.0.2
+    * mynewt-dummy-repo-02: 41e9c388dcf6aa9216929c82ba4414fb054af8da, 1.0.2
+    * mynewt-dummy-repo-03: 919438092902989981ca4d6d42781d706cc413e2, 1.0.2
     * mynewt-dummy-repo-04: e727f88ca34fffba63a52bb8a0089f50d16f6259, 1.0.2
     * mynewt-dummy-repo-05: 492b7645830e8f103c2de840d273c55112e8f960, 1.0.0
diff --git a/.github/newt_upgrade/success/dup-overrides/project.yml 
b/.github/newt_upgrade/success/dup-overrides/project.yml
index 3879e6bd..ccfda706 100644
--- a/.github/newt_upgrade/success/dup-overrides/project.yml
+++ b/.github/newt_upgrade/success/dup-overrides/project.yml
@@ -20,12 +20,12 @@
 repository.mynewt-dummy-repo-01:
    type: git
    vers: 1.0.2
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-01.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-01.git'
 
 repository.mynewt-dummy-repo-05:
    type: git
    vers: 1.0.0
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-05.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-05.git'
 
 ### Project overrides of repo-01 dependencies:
 
@@ -35,14 +35,14 @@ repository.mynewt-dummy-repo-05:
 repository.mynewt-dummy-repo-02:
    type: git
    vers: 1.0.2
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-02.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-02.git'
 
 repository.mynewt-dummy-repo-03:
    type: git
    vers: 1.0.2
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-03.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-03.git'
 
 repository.mynewt-dummy-repo-04:
    type: git
    vers: 1.0.2
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-04.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-04.git'
diff --git a/.github/newt_upgrade/success/inferrc/expected.txt 
b/.github/newt_upgrade/success/inferrc/expected.txt
index d77a2c35..9e2481f1 100644
--- a/.github/newt_upgrade/success/inferrc/expected.txt
+++ b/.github/newt_upgrade/success/inferrc/expected.txt
@@ -1,2 +1,2 @@
-    * mynewt-dummy-repo-02: 603212f5105432b0db36336931d8dcd85f9038ff, 2.0.1 
(rc)
-    * mynewt-dummy-repo-03: 5df87b6ab70d2d6464f68e733b1d67c1652e0954, 2.0.1 
(rc)
+    * mynewt-dummy-repo-02: 49ecae928798b33604922f912234c8d356efb1d4, 2.0.1 
(rc)
+    * mynewt-dummy-repo-03: 704f878403c920cc0d303452d04c13b98632b829, 2.0.1 
(rc)
diff --git a/.github/newt_upgrade/success/inferrc/project.yml 
b/.github/newt_upgrade/success/inferrc/project.yml
index dee3c789..6945571f 100644
--- a/.github/newt_upgrade/success/inferrc/project.yml
+++ b/.github/newt_upgrade/success/inferrc/project.yml
@@ -20,4 +20,4 @@
 repository.mynewt-dummy-repo-02:
    type: git
    vers: 2.0.1
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-02.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-02.git'
diff --git a/.github/newt_upgrade/success/one-override/expected.txt 
b/.github/newt_upgrade/success/one-override/expected.txt
index 686bccfc..2fd2fd9d 100644
--- a/.github/newt_upgrade/success/one-override/expected.txt
+++ b/.github/newt_upgrade/success/one-override/expected.txt
@@ -1,5 +1,5 @@
-    * mynewt-dummy-repo-01: 0faa5d19dcfe87abac31cde116e827a078f473a9, 1.0.0
-    * mynewt-dummy-repo-02: af829c7ef96067c0d3ca705237c73bc94e51cc9e, 1.0.0
-    * mynewt-dummy-repo-03: 22344a05cfff9eb7bc38f8acdf609b102c93efdc, 1.0.0
+    * mynewt-dummy-repo-01: 91ba7596c74db21818b411e2a74550bba38d5315, 1.0.0
+    * mynewt-dummy-repo-02: 155bdc4cf4136d70841d299927fe8bd8b317024f, 1.0.0
+    * mynewt-dummy-repo-03: 5606660ece337dcc6f05b81a52bab9ca9aa29cfb, 1.0.0
     * mynewt-dummy-repo-04: 72d82aa347519b8e8f8fe9d90d6f1f875f98a910
     * mynewt-dummy-repo-05: 492b7645830e8f103c2de840d273c55112e8f960, 1.0.0
diff --git a/.github/newt_upgrade/success/one-override/project.yml 
b/.github/newt_upgrade/success/one-override/project.yml
index 173d0d06..73633bdc 100644
--- a/.github/newt_upgrade/success/one-override/project.yml
+++ b/.github/newt_upgrade/success/one-override/project.yml
@@ -20,16 +20,16 @@
 repository.mynewt-dummy-repo-01:
    type: git
    vers: 1.0.0
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-01.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-01.git'
 
 repository.mynewt-dummy-repo-05:
    type: git
    vers: 1.0.0
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-05.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-05.git'
 
 ### Project overrides of repo-01 dependencies:
 
 repository.mynewt-dummy-repo-04:
    type: git
    vers: 72d82aa347519b8e8f8fe9d90d6f1f875f98a910-commit
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-04.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-04.git'
diff --git a/.github/newt_upgrade/success/three-overrides/expected.txt 
b/.github/newt_upgrade/success/three-overrides/expected.txt
index b7c3d386..35fdd6f9 100644
--- a/.github/newt_upgrade/success/three-overrides/expected.txt
+++ b/.github/newt_upgrade/success/three-overrides/expected.txt
@@ -1,5 +1,5 @@
-    * mynewt-dummy-repo-01: 00455b38afa291692f034210b7ba7de0f0133af1, 1.0.2
-    * mynewt-dummy-repo-02: ffd8b4f1f0dfb1ee823840b5bd8d62ecfc16a884
-    * mynewt-dummy-repo-03: bc92264a442925503121dad4e28bd365863e4b69, 1.1.0
+    * mynewt-dummy-repo-01: 76fb933ec89a8d52f2c0b8b179371e0ae25c259b, 1.0.2
+    * mynewt-dummy-repo-02: 1b6404d9f56a0d0832a2d17f26b4c2eb4af152a7
+    * mynewt-dummy-repo-03: 49c1b35b2e46a2ba8f8cdbc13fa30b7d94102545, 1.1.0
     * mynewt-dummy-repo-04: e727f88ca34fffba63a52bb8a0089f50d16f6259, 1.0.2
     * mynewt-dummy-repo-05: 492b7645830e8f103c2de840d273c55112e8f960, 1.0.0
diff --git a/.github/newt_upgrade/success/three-overrides/project.yml 
b/.github/newt_upgrade/success/three-overrides/project.yml
index 0bb82a08..47c1da04 100644
--- a/.github/newt_upgrade/success/three-overrides/project.yml
+++ b/.github/newt_upgrade/success/three-overrides/project.yml
@@ -20,12 +20,12 @@
 repository.mynewt-dummy-repo-01:
    type: git
    vers: 1.0.2
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-01.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-01.git'
 
 repository.mynewt-dummy-repo-05:
    type: git
    vers: 1.0.0
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-05.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-05.git'
 
 ### Project overrides of repo-01 dependencies:
 
@@ -34,17 +34,17 @@ repository.mynewt-dummy-repo-05:
 
 repository.mynewt-dummy-repo-02:
    type: git
-   vers: ffd8b4f1f0dfb1ee823840b5bd8d62ecfc16a884-commit
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-02.git'
+   vers: 1b6404d9f56a0d0832a2d17f26b4c2eb4af152a7-commit
+   url: 'https://dummy.invalid/mynewt-dummy-repo-02.git'
 
 # This hash corresponds to a version number (1.1.0).
 repository.mynewt-dummy-repo-03:
    type: git
-   vers: bc92264a442925503121dad4e28bd365863e4b69-commit
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-03.git'
+   vers: 49c1b35b2e46a2ba8f8cdbc13fa30b7d94102545-commit
+   url: 'https://dummy.invalid/mynewt-dummy-repo-03.git'
 
 # This hash corresponds to a version number (1.0.2).
 repository.mynewt-dummy-repo-04:
    type: git
    vers: e727f88ca34fffba63a52bb8a0089f50d16f6259-commit
-   url: 'https://github.com/JuulLabs-OSS/mynewt-dummy-repo-04.git'
+   url: 'https://dummy.invalid/mynewt-dummy-repo-04.git'
diff --git a/.github/workflows/test_upgrade.yml 
b/.github/workflows/test_upgrade.yml
index 40c36d57..8ad7056a 100644
--- a/.github/workflows/test_upgrade.yml
+++ b/.github/workflows/test_upgrade.yml
@@ -57,6 +57,9 @@ jobs:
              go build
              echo  ${GITHUB_WORKSPACE}/newt >> $GITHUB_PATH
              git config --global url."https://github.com/".insteadOf 
"[email protected]:"
+      - name: Setup dummy repos
+        shell: bash
+        run: .github/newt_upgrade/dummy-repos/setup.sh 
"$RUNNER_TEMP/dummy-repos"
       - name: Test upgrade success
         shell: bash
         working-directory: .github/newt_upgrade/success/${{ matrix.projects }}
@@ -93,6 +96,9 @@ jobs:
              go build
              echo  ${GITHUB_WORKSPACE}/newt >> $GITHUB_PATH
              git config --global url."https://github.com/".insteadOf 
"[email protected]:"
+      - name: Setup dummy repos
+        shell: bash
+        run: .github/newt_upgrade/dummy-repos/setup.sh 
"$RUNNER_TEMP/dummy-repos"
       - name: Test upgrade fail
         shell: bash
         working-directory: .github/newt_upgrade/fail/${{ matrix.projects }}
@@ -121,6 +127,9 @@ jobs:
           go build
           echo  ${GITHUB_WORKSPACE}/newt >> $GITHUB_PATH
           git config --global url."https://github.com/".insteadOf 
"[email protected]:"
+      - name: Setup dummy repos
+        shell: bash
+        run: .github/newt_upgrade/dummy-repos/setup.sh 
"$RUNNER_TEMP/dummy-repos"
       - name: Test upgrade allowed-ignored
         shell: bash
         working-directory: .github/newt_upgrade/allowed-ignored
diff --git a/.rat-excludes b/.rat-excludes
index e2a0c5e0..ba75d105 100644
--- a/.rat-excludes
+++ b/.rat-excludes
@@ -20,3 +20,6 @@ Gopkg.lock
 Gopkg.toml
 go.mod
 go.sum
+
+# git fast-export streams
+*.fi

Reply via email to