<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/libgit2.git, branch ethomson/v0.28.5</title>
<subtitle>github.com: libgit2/libgit2.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/'/>
<entry>
<title>changelog: include FETCH_HEAD creds removal</title>
<updated>2020-03-31T10:13:31+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2020-03-31T10:13:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=bb52d9fa598ce74f82c4294e0aa98b4bdbfdbc7e'/>
<id>bb52d9fa598ce74f82c4294e0aa98b4bdbfdbc7e</id>
<content type='text'>
Document that we no longer erroneously include credentials in the
FETCH_HEAD file.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Document that we no longer erroneously include credentials in the
FETCH_HEAD file.
</pre>
</div>
</content>
</entry>
<entry>
<title>fetchhead: strip credentials from remote URL</title>
<updated>2020-03-30T10:10:00+00:00</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2020-01-31T07:49:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=25cd374ddd2c0865ced0a8c7d87422a762a974dd'/>
<id>25cd374ddd2c0865ced0a8c7d87422a762a974dd</id>
<content type='text'>
If fetching from an anonymous remote via its URL, then the URL gets
written into the FETCH_HEAD reference. This is mainly done to give
valuable context to some commands, like for example git-merge(1), which
will put the URL into the generated MERGE_MSG. As a result, what gets
written into FETCH_HEAD may become public in some cases. This is
especially important considering that URLs may contain credentials, e.g.
when cloning 'https://foo:bar@example.com/repo' we persist the complete
URL into FETCH_HEAD and put it without any kind of sanitization into the
MERGE_MSG. This is obviously bad, as your login data has now just leaked
as soon as you do git-push(1).

When writing the URL into FETCH_HEAD, upstream git does strip
credentials first. Let's do the same by trying to parse the remote URL
as a "real" URL, removing any credentials and then re-formatting the
URL. In case this fails, e.g. when it's a file path or not a valid URL,
we just fall back to using the URL as-is without any sanitization. Add
tests to verify our behaviour.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If fetching from an anonymous remote via its URL, then the URL gets
written into the FETCH_HEAD reference. This is mainly done to give
valuable context to some commands, like for example git-merge(1), which
will put the URL into the generated MERGE_MSG. As a result, what gets
written into FETCH_HEAD may become public in some cases. This is
especially important considering that URLs may contain credentials, e.g.
when cloning 'https://foo:bar@example.com/repo' we persist the complete
URL into FETCH_HEAD and put it without any kind of sanitization into the
MERGE_MSG. This is obviously bad, as your login data has now just leaked
as soon as you do git-push(1).

When writing the URL into FETCH_HEAD, upstream git does strip
credentials first. Let's do the same by trying to parse the remote URL
as a "real" URL, removing any credentials and then re-formatting the
URL. In case this fails, e.g. when it's a file path or not a valid URL,
we just fall back to using the URL as-is without any sanitization. Add
tests to verify our behaviour.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #5467 from pks-t/pks/v0.28.5</title>
<updated>2020-03-30T10:09:27+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2020-03-30T10:09:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=1e5b139509073e9209c34466de10d51baa821df5'/>
<id>1e5b139509073e9209c34466de10d51baa821df5</id>
<content type='text'>
Release v0.28.5</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Release v0.28.5</pre>
</div>
</content>
</entry>
<entry>
<title>version: bump the version to v0.28.5</title>
<updated>2020-03-26T21:12:59+00:00</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2020-03-26T21:03:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=635dc2ffe51029f429d1ff2a6c1ecd40cb83438f'/>
<id>635dc2ffe51029f429d1ff2a6c1ecd40cb83438f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>docs: update changelog for v0.28.5</title>
<updated>2020-03-26T21:12:59+00:00</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2020-03-26T21:03:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=b207d6fe214f3c7cbd58029adc9980873c126335'/>
<id>b207d6fe214f3c7cbd58029adc9980873c126335</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>scripts: adjust expected SOVERSION for v0.28 branch</title>
<updated>2020-03-26T21:12:59+00:00</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2020-03-26T20:43:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=9f4cb6172197d40934afad1318efdb4b8903993b'/>
<id>9f4cb6172197d40934afad1318efdb4b8903993b</id>
<content type='text'>
The v0.28 branch still uses an old SOVERSION style which includes the
minor version, only. Adjust the release script to reflect that.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The v0.28 branch still uses an old SOVERSION style which includes the
minor version, only. Adjust the release script to reflect that.
</pre>
</div>
</content>
</entry>
<entry>
<title>scripts: add script to create releases</title>
<updated>2020-03-26T21:12:59+00:00</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2020-01-30T10:40:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=2ac4b4a3f2fe787eb2512347370bb0c23155088c'/>
<id>2ac4b4a3f2fe787eb2512347370bb0c23155088c</id>
<content type='text'>
The current release process is not documented in any way. As a result,
it's not obvious how releases should be done at all, like e.g. which
locations need adjusting.

To fix this, let's introduce a new script that shall from now on be used
to do all releases. As input it gets the tree that shall be released,
the repository in which to do the release, credentials to
authenticate against GitHub and the new version. E.g. executing the
following will create a new release v0.32:

    $ ./script/release.py 0.32.0 --user pks-t --password ****

While the password may currently be your usual GitLab password, it's
recommended to use a personal access token intead.

The script will then perform the following steps:

    1. Verify that "include/git2/version.h" matches the new version.

    2. Verify that "docs/changelog.md" has a section for that new
       version.

    3. Extract the changelog entries for the current release from
       "docs/changelog.md".

    4. Generate two archives in "tar.gz" and "zip" format via "git
       archive" from the tree passed by the user. If no tree was passed,
       we will use "HEAD".

    5. Create the GitHub release using the extracted changelog entries
       as well as tag and name information derived from the version
       passed by the used.

    6. Upload both code archives to that release.

This should cover all steps required for a new release and thus ensures
that nothing is missing that shouldn't be.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The current release process is not documented in any way. As a result,
it's not obvious how releases should be done at all, like e.g. which
locations need adjusting.

To fix this, let's introduce a new script that shall from now on be used
to do all releases. As input it gets the tree that shall be released,
the repository in which to do the release, credentials to
authenticate against GitHub and the new version. E.g. executing the
following will create a new release v0.32:

    $ ./script/release.py 0.32.0 --user pks-t --password ****

While the password may currently be your usual GitLab password, it's
recommended to use a personal access token intead.

The script will then perform the following steps:

    1. Verify that "include/git2/version.h" matches the new version.

    2. Verify that "docs/changelog.md" has a section for that new
       version.

    3. Extract the changelog entries for the current release from
       "docs/changelog.md".

    4. Generate two archives in "tar.gz" and "zip" format via "git
       archive" from the tree passed by the user. If no tree was passed,
       we will use "HEAD".

    5. Create the GitHub release using the extracted changelog entries
       as well as tag and name information derived from the version
       passed by the used.

    6. Upload both code archives to that release.

This should cover all steps required for a new release and thus ensures
that nothing is missing that shouldn't be.
</pre>
</div>
</content>
</entry>
<entry>
<title>azure: only override PATH when building</title>
<updated>2020-03-26T21:12:59+00:00</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2019-06-27T13:01:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=b85983a21bfcafdbe48d91dc08366f25dd51000a'/>
<id>b85983a21bfcafdbe48d91dc08366f25dd51000a</id>
<content type='text'>
We currently unconditionally override the PATH variable with a custom
path with the main intent of making available our own custom MinGW
installation. This worked quite well so far, but is heavily dependent on
the machine we're running this on. And naturally, it fails on the new
Windows machines we need to upgrade to, as tools like CMake are not
contained in the path we currently set up.

Fix this by remodeling the way we set up the PATH environment. Instead
of overriding it completely, we now override it only when executing
the CMake build.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We currently unconditionally override the PATH variable with a custom
path with the main intent of making available our own custom MinGW
installation. This worked quite well so far, but is heavily dependent on
the machine we're running this on. And naturally, it fails on the new
Windows machines we need to upgrade to, as tools like CMake are not
contained in the path we currently set up.

Fix this by remodeling the way we set up the PATH environment. Instead
of overriding it completely, we now override it only when executing
the CMake build.
</pre>
</div>
</content>
</entry>
<entry>
<title>azure: upgrade to newer Windows VM images</title>
<updated>2020-03-26T21:12:59+00:00</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2020-03-26T15:38:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=d909524ecec0c8660e8db595d71685e6c131a640'/>
<id>d909524ecec0c8660e8db595d71685e6c131a640</id>
<content type='text'>
This is a subset of commit 95f329b49 (azure: upgrade to newer hosted VM
images, 2020-03-10), upgrading all of our Windows jobs to use
'vs2017-win2016' machines and macOS to 'macos-10.14'. This is intended
to keep our continuous integration builds from failing in the future, as
these images will get deprecated on March 31st. As this is in
preparation of a stable release, we do not want to upgrade any of the
other machines like is done in the mentioned commit but keep the impact
minimal.

fixup! azure: upgrade to newer Windows VM images
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a subset of commit 95f329b49 (azure: upgrade to newer hosted VM
images, 2020-03-10), upgrading all of our Windows jobs to use
'vs2017-win2016' machines and macOS to 'macos-10.14'. This is intended
to keep our continuous integration builds from failing in the future, as
these images will get deprecated on March 31st. As this is in
preparation of a stable release, we do not want to upgrade any of the
other machines like is done in the mentioned commit but keep the impact
minimal.

fixup! azure: upgrade to newer Windows VM images
</pre>
</div>
</content>
</entry>
<entry>
<title>refdb_fs: initialize backend version</title>
<updated>2020-03-26T21:12:59+00:00</updated>
<author>
<name>Patrick Steinhardt</name>
<email>ps@pks.im</email>
</author>
<published>2020-03-13T22:01:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/libgit2.git/commit/?id=4dc9323922a1238f8ce4ed391f5efd764794bea3'/>
<id>4dc9323922a1238f8ce4ed391f5efd764794bea3</id>
<content type='text'>
While the `git_refdb_backend()` struct has a version, we do not
initialize it correctly when calling `git_refdb_backend_fs()`. Fix this
by adding the call to `git_refdb_init_backend()`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
While the `git_refdb_backend()` struct has a version, we do not
initialize it correctly when calling `git_refdb_backend_fs()`. Fix this
by adding the call to `git_refdb_init_backend()`.
</pre>
</div>
</content>
</entry>
</feed>
