1
1
Fork 0
mirror of https://github.com/NixOS/nix.git synced 2025-11-30 14:10:59 +01:00
Commit graph

84 commits

Author SHA1 Message Date
Eelco Dolstra
00b746d099 Warn if the computed tree hash differs from the one reported by GitHub
Ideally this would be a fatal error, but tree hashes won't be correct
for repos that use submodules. (But OTOH, the GitHub fetcher doesn't
support submodules anyway...)
2023-02-03 16:23:12 +01:00
Eelco Dolstra
7b1cda9ca2 GitArchiveInputScheme: Restore the lastModified attribute 2023-02-03 16:04:19 +01:00
Eelco Dolstra
219510b6ab GitArchiveInputScheme: Verify the locked tree hash 2023-02-03 15:31:36 +01:00
Eelco Dolstra
ca26ce994b Check tarball cache validity 2023-02-03 12:42:32 +01:00
Eelco Dolstra
5c29abc5bd GitArchiveInputScheme: Revert to downloading tarballs
Tarballs are now unpacked into a content-addressed cache, specifically
a Git repository in ~/.cache/nix/tarball-cache so that we can use
GitAccessor to provide random access.
2023-02-01 00:06:46 +01:00
Eelco Dolstra
b27cd882ac Partially revert "Format GitHub paths as URLs"
This reverts commit 0286edb588 for now
since it doesn't handle directories correctly.
2022-11-25 16:22:57 +01:00
Eelco Dolstra
4072024d79 GitArchiveInputScheme: Bring back the narHash attribute
This is needed to verify that the source tree served by GitHub hasn't
changed compared to the lock file. Computing the narHash for a nixpkgs
source tree only takes ~0.6s and it's cached. So the cost is fairly
negligible compared to the download time.
2022-11-03 14:23:24 +01:00
Eelco Dolstra
8342317d4d Merge remote-tracking branch 'origin/master' into lazy-trees 2022-11-02 16:05:00 +01:00
Eelco Dolstra
0286edb588 Format GitHub paths as URLs
As suggested by @aszlig in https://github.com/NixOS/nix/pull/6530#issuecomment-1273033129.
2022-10-10 15:25:27 +02:00
Jörg Thalheim
d9abce4ad4 libfetchers: avoid api.github.com ratelimit if no github token is set
If we don't have any github token, we won't be able to fetch private
repos, but we are also more likely to run into API limits since
we don't have a token. To mitigate this only ever use the github api
if we actually have a token.
2022-10-01 10:38:09 +02:00
Eelco Dolstra
a115c4f4b2 GitHub fetcher: Restore the lastModified field 2022-08-22 12:33:11 +02:00
Eelco Dolstra
3b45475f75 Remove Input::hasAllInfo() 2022-08-10 16:51:45 +02:00
Eelco Dolstra
90e9f50a66 Remove Input::locked 2022-08-10 16:47:36 +02:00
Eelco Dolstra
71b155b9e6 Move download stuff into tarball.hh 2022-08-01 16:05:58 +02:00
Eelco Dolstra
48012603b3 Move FSInputAccessor into a separate file 2022-08-01 16:00:12 +02:00
Eelco Dolstra
55c63c9b89 Remove InputScheme::fetchToStore()
InputSchemes now only have a getAccessor(). They could be implemented
internally by fetching the input to the store, but in that case they
will just return a FSInputAccessor.
2022-08-01 15:44:40 +02:00
Eelco Dolstra
1790698a74 Rename fetch() -> fetchToStore(), lazyFetch() -> getAccessor() 2022-07-25 16:30:50 +02:00
Eelco Dolstra
e17a619106 Improve display of GitHub input filenames in error messages
E.g.

  … while evaluating the attribute 'buildCommand' of the derivation 'vm-test-run-github-flakes'

  at «github:NixOS/nixpkgs/2fa57ed190fd6c7c746319444f34b5917666e5c1»/pkgs/stdenv/generic/make-derivation.nix:278:7:
2022-07-14 16:53:41 +02:00
Eelco Dolstra
fd51cdcdd7
Merge remote-tracking branch 'origin/master' into lazy-trees 2022-06-17 13:39:03 +02:00
Gabriel Fontes
9f6b4639c2
fix sourcehut brach/tag resolving regression
nixos/nix#6290 introduced a regex pattern to account for tags when
resolving sourcehut refs. nixos/nix#4638 reafactored the code,
accidentally treating the pattern as a regular string, causing all
non-HEAD ref resolving to break.

This fixes the regression and adds more test cases to avoid future
breakage.
2022-06-11 16:52:20 -03:00
Eelco Dolstra
f917970df8
Set locked flag 2022-06-01 13:16:23 +02:00
Eelco Dolstra
c80b942c6e
Provide a default Input::fetch() that uses lazyFetch() 2022-05-18 23:24:05 +02:00
Eelco Dolstra
a71f209330
Add CanonPath wrapper to represent canonicalized paths 2022-05-16 23:27:04 +02:00
Norbert Melzer
831e2743ea fix GitHub URL template 2022-05-12 00:56:39 +02:00
Eelco Dolstra
087584ef4d
Merge remote-tracking branch 'origin/master' into lazy-trees 2022-05-11 13:34:49 +02:00
Eelco Dolstra
eb957ad6d8
Merge pull request #6497 from danielfullmer/ghe-fetcher-url
Use correct URL for GitHub Enterprise
2022-05-10 19:23:22 +02:00
Eelco Dolstra
30ca717558 Merge remote-tracking branch 'origin/master' into lazy-trees 2022-05-09 11:26:39 +02:00
Daniel Fullmer
7a3d5b2ff0 Use correct URL for GitHub Enterprise
For GitHub Enterprise, the API is accessed through a slightly different
URL. See [1], where it says:

> Use http(s)://[hostname]/api/v3 to access the API for GitHub
> Enterprise Server.

Also tested working on a GHE instance.

[1] https://docs.github.com/en/enterprise-server@3.3/rest/guides/getting-started-with-the-rest-api
2022-05-06 13:13:11 -07:00
Théophane Hufschmitt
e68676e6c8 Fix the parsing of the sourcehut refs file
Since a26be9f3b8, the same parser is used
to parse the result of sourcehut’s `HEAD` endpoint (coming from [git
dumb protocol]) and the output of `git ls-remote`. However, they are very
slightly different (the former doesn’t specify the current reference
since it’s implied to be `HEAD`).

Unify both, and make the parser a bit more robust and understandable (by
making it more typed and adding tests for it)

[git dumb protocol]: https://git-scm.com/book/en/v2/Git-Internals-Transfer-Protocols#_the_dumb_protocol
2022-05-04 14:38:59 +02:00
Kjetil Orbekk
9bf296c970 Extract git reference parsing to a shared library
These utility functions can be shared between the git and github fetchers.
2022-04-29 18:46:21 -04:00
Eelco Dolstra
006d862d30 GitArchiveInputScheme: Use zip files to avoid unpacking to disk 2022-03-29 11:01:14 +02:00
Gabriel Fontes
9720797f69
Don't partial match sourcehut refs 2022-03-19 11:04:04 -03:00
Gabriel Fontes
345a8ee0cb
Fix sourcehut tag ref resolving 2022-03-19 10:56:13 -03:00
John Ericson
ea71da395f Move some stuff from Settings to a new FetchSettings.
Starting work on #5638

The exact boundary between `FetchSettings` and `EvalSettings` is not
clear to me, but that's fine. First lets clean out `libstore`, and then
worry about what, if anything, should be the separation between those
two.
2022-03-01 01:39:25 +00:00
Eelco Dolstra
8518cebfce libfetchers: Rename immutable -> locked
This is more consistent with flake terminology.
2022-02-24 18:09:00 +01:00
Théophane Hufschmitt
6524eb4b77
Merge pull request #5342 from Misterio77/add-sourcehut
Add support for sourcehut input scheme
2022-02-24 09:09:21 +01:00
Eelco Dolstra
aa5b83d93c InputScheme::fetch(): Return a StorePath instead of a Tree 2022-02-16 11:14:01 +01:00
Gabriel Fontes
72e8f94081
add sourcehut input scheme 2022-02-14 23:53:01 -03:00
Finn Behrens
79d07d0980 libfetchers: set free gitlab headers 2021-11-14 12:23:46 +01:00
Eelco Dolstra
fda4efff87 Rename unnecessary git@ 2021-09-14 22:53:31 +02:00
Eelco Dolstra
07996c4810 github fetcher: Don't use HEAD branch when cloning
Fixes #4394.
2021-09-14 13:38:45 +02:00
Eelco Dolstra
d72d31d529 github fetcher: Use git+https for cloning
git+ssh only works if you have SSH access.
2021-09-14 13:38:05 +02:00
regnat
2c8240677e allow fetchFromGitHub to take a name argument 2021-07-06 08:43:19 +02:00
Eelco Dolstra
42f0246698
Revert "libfetchers/tarball: Lock on effectiveUrl"
This reverts commit fc6bfb261d.

Fixes #4672.
2021-04-09 13:51:57 +02:00
dramforever
fc6bfb261d libfetchers/tarball: Lock on effectiveUrl
Basically, if a tarball URL is used as a flake input, and the URL leads
to a redirect, the final redirect destination would be recorded as the
locked URL.

This allows tarballs under https://nixos.org/channels to be used as
flake inputs. If we, as before, lock on to the original URL it would
break every time the channel updates.
2021-03-02 21:56:50 +08:00
Eelco Dolstra
1bbc66f865 Merge branch 'slashes-in-github-branches' of https://github.com/Ma27/nix 2021-01-18 12:55:06 +01:00
Matthew Bauer
d4870462f8 Cast variants fully for libc++10
libc++10 seems to be stricter on what it allows in variant conversion.
I'm not sure what the rules are here, but this is the minimal change
needed to get through the compilation errors.
2020-12-23 23:41:58 -06:00
Maximilian Bosch
59f2dd8e8d
libfetchers/github: allow slashes in refs
Refs #4061
2020-10-06 20:08:51 +02:00
Eelco Dolstra
ad143c5b3b Shut up some clang warnings 2020-10-06 14:52:30 +02:00
Eelco Dolstra
85c8be6286 Remove static variable name clashes
This was useful for an experiment with building Nix as a single
compilation unit. It's not very useful otherwise but also doesn't
hurt...
2020-10-06 13:49:20 +02:00