invenio-github 3.0.0__tar.gz → 3.0.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. {invenio_github-3.0.0 → invenio_github-3.0.1}/CHANGES.rst +4 -0
  2. {invenio_github-3.0.0 → invenio_github-3.0.1}/PKG-INFO +5 -2
  3. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/__init__.py +2 -2
  4. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/api.py +57 -29
  5. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/errors.py +11 -1
  6. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github.egg-info/PKG-INFO +5 -2
  7. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github.egg-info/SOURCES.txt +0 -16
  8. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github.egg-info/requires.txt +0 -1
  9. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github.egg-info/top_level.txt +0 -1
  10. {invenio_github-3.0.0 → invenio_github-3.0.1}/setup.cfg +0 -1
  11. invenio_github-3.0.0/.github/workflows/i18n-pull.yml +0 -14
  12. invenio_github-3.0.0/.github/workflows/i18n-push.yml +0 -16
  13. invenio_github-3.0.0/.github/workflows/pypi-publish.yml +0 -22
  14. invenio_github-3.0.0/.github/workflows/tests.yml +0 -31
  15. invenio_github-3.0.0/docs/Makefile +0 -192
  16. invenio_github-3.0.0/docs/api.rst +0 -30
  17. invenio_github-3.0.0/docs/authors.rst +0 -25
  18. invenio_github-3.0.0/docs/changes.rst +0 -25
  19. invenio_github-3.0.0/docs/conf.py +0 -335
  20. invenio_github-3.0.0/docs/contributing.rst +0 -25
  21. invenio_github-3.0.0/docs/index.rst +0 -63
  22. invenio_github-3.0.0/docs/installation.rst +0 -25
  23. invenio_github-3.0.0/docs/license.rst +0 -19
  24. invenio_github-3.0.0/docs/make.bat +0 -263
  25. invenio_github-3.0.0/docs/requirements.txt +0 -1
  26. invenio_github-3.0.0/docs/usage.rst +0 -28
  27. {invenio_github-3.0.0 → invenio_github-3.0.1}/.git-blame-ignore-revs +0 -0
  28. {invenio_github-3.0.0 → invenio_github-3.0.1}/.lgtm +0 -0
  29. {invenio_github-3.0.0 → invenio_github-3.0.1}/.travis.yml +0 -0
  30. {invenio_github-3.0.0 → invenio_github-3.0.1}/AUTHORS.rst +0 -0
  31. {invenio_github-3.0.0 → invenio_github-3.0.1}/CONTRIBUTING.rst +0 -0
  32. {invenio_github-3.0.0 → invenio_github-3.0.1}/INSTALL.rst +0 -0
  33. {invenio_github-3.0.0 → invenio_github-3.0.1}/LICENSE +0 -0
  34. {invenio_github-3.0.0 → invenio_github-3.0.1}/MAINTAINERS +0 -0
  35. {invenio_github-3.0.0 → invenio_github-3.0.1}/MANIFEST.in +0 -0
  36. {invenio_github-3.0.0 → invenio_github-3.0.1}/README.rst +0 -0
  37. {invenio_github-3.0.0 → invenio_github-3.0.1}/RELEASE-NOTES.rst +0 -0
  38. {invenio_github-3.0.0 → invenio_github-3.0.1}/babel.ini +0 -0
  39. {invenio_github-3.0.0 → invenio_github-3.0.1}/constraints-pypi.txt +0 -0
  40. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/alembic/5a5428312b2b_create_github_branch.py +0 -0
  41. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/alembic/b0eaee37b545_create_github_tables.py +0 -0
  42. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/assets/semantic-ui/js/invenio_github/index.js +0 -0
  43. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/config.py +0 -0
  44. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/ext.py +0 -0
  45. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/models.py +0 -0
  46. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/oauth/handlers.py +0 -0
  47. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/oauth/remote_app.py +0 -0
  48. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/proxies.py +0 -0
  49. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/receivers.py +0 -0
  50. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/tasks.py +0 -0
  51. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/templates/semantic-ui/invenio_github/base.html +0 -0
  52. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/templates/semantic-ui/invenio_github/helpers.html +0 -0
  53. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/templates/semantic-ui/invenio_github/settings/base.html +0 -0
  54. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/templates/semantic-ui/invenio_github/settings/helpers.html +0 -0
  55. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/templates/semantic-ui/invenio_github/settings/index.html +0 -0
  56. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/templates/semantic-ui/invenio_github/settings/index_item.html +0 -0
  57. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/templates/semantic-ui/invenio_github/settings/view.html +0 -0
  58. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/translations/cs/LC_MESSAGES/messages.mo +0 -0
  59. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/translations/cs/LC_MESSAGES/messages.po +0 -0
  60. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/translations/da/LC_MESSAGES/messages.mo +0 -0
  61. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/translations/da/LC_MESSAGES/messages.po +0 -0
  62. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/translations/de/LC_MESSAGES/messages.mo +0 -0
  63. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/translations/de/LC_MESSAGES/messages.po +0 -0
  64. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/translations/en/LC_MESSAGES/messages.mo +0 -0
  65. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/translations/en/LC_MESSAGES/messages.po +0 -0
  66. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/translations/es/LC_MESSAGES/messages.mo +0 -0
  67. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/translations/es/LC_MESSAGES/messages.po +0 -0
  68. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/translations/fr/LC_MESSAGES/messages.mo +0 -0
  69. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/translations/fr/LC_MESSAGES/messages.po +0 -0
  70. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/translations/it/LC_MESSAGES/messages.mo +0 -0
  71. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/translations/it/LC_MESSAGES/messages.po +0 -0
  72. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/translations/messages.pot +0 -0
  73. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/utils.py +0 -0
  74. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/views/__init__.py +0 -0
  75. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/views/badge.py +0 -0
  76. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/views/github.py +0 -0
  77. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github/webpack.py +0 -0
  78. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github.egg-info/dependency_links.txt +0 -0
  79. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github.egg-info/entry_points.txt +0 -0
  80. {invenio_github-3.0.0 → invenio_github-3.0.1}/invenio_github.egg-info/not-zip-safe +0 -0
  81. {invenio_github-3.0.0 → invenio_github-3.0.1}/pyproject.toml +0 -0
  82. {invenio_github-3.0.0 → invenio_github-3.0.1}/requirements-devel.txt +0 -0
  83. {invenio_github-3.0.0 → invenio_github-3.0.1}/run-i18n-tests.sh +0 -0
  84. {invenio_github-3.0.0 → invenio_github-3.0.1}/run-tests.sh +0 -0
  85. {invenio_github-3.0.0 → invenio_github-3.0.1}/setup.py +0 -0
@@ -26,6 +26,10 @@
26
26
  Changes
27
27
  =======
28
28
 
29
+ Version v3.0.1 (released 2025-07-30)
30
+
31
+ - api: fix set alternate zipball URL when tag and branch having same name
32
+
29
33
  Version 3.0.0 (release 2025-06-03)
30
34
 
31
35
  - setup: bump major dependencies
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: invenio-github
3
- Version: 3.0.0
3
+ Version: 3.0.1
4
4
  Summary: "Invenio module that adds GitHub integration to the platform."
5
5
  Home-page: https://github.com/inveniosoftware/invenio-github
6
6
  Author: CERN
@@ -39,7 +39,6 @@ Requires-Dist: invenio-db[mysql,postgresql]<3.0.0,>=2.0.0; extra == "tests"
39
39
  Requires-Dist: invenio-files-rest<4.0.0,>=3.0.0; extra == "tests"
40
40
  Requires-Dist: isort>=4.2.2; extra == "tests"
41
41
  Requires-Dist: mock>=2.0.0; extra == "tests"
42
- Requires-Dist: pluggy<1.0,>=0.12; extra == "tests"
43
42
  Requires-Dist: pytest-black-ng>=0.4.0; extra == "tests"
44
43
  Requires-Dist: pytest-invenio<4.0.0,>=3.0.0; extra == "tests"
45
44
  Requires-Dist: pytest-mock>=2.0.0; extra == "tests"
@@ -130,6 +129,10 @@ Invenio module that adds GitHub integration to the platform.
130
129
  Changes
131
130
  =======
132
131
 
132
+ Version v3.0.1 (released 2025-07-30)
133
+
134
+ - api: fix set alternate zipball URL when tag and branch having same name
135
+
133
136
  Version 3.0.0 (release 2025-06-03)
134
137
 
135
138
  - setup: bump major dependencies
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
3
  # This file is part of Invenio.
4
- # Copyright (C) 2023-2024 CERN.
4
+ # Copyright (C) 2023-2025 CERN.
5
5
  # Copyright (C) 2024-2025 Graz University of Technology.
6
6
  #
7
7
  # Invenio is free software; you can redistribute it
@@ -27,6 +27,6 @@
27
27
 
28
28
  from .ext import InvenioGitHub
29
29
 
30
- __version__ = "3.0.0"
30
+ __version__ = "3.0.1"
31
31
 
32
32
  __all__ = ("__version__", "InvenioGitHub")
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
3
  # This file is part of Invenio.
4
- # Copyright (C) 2023 CERN.
4
+ # Copyright (C) 2023-2025 CERN.
5
5
  # Copyright (C) 2024 KTH Royal Institute of Technology.
6
6
  #
7
7
  # Invenio is free software; you can redistribute it
@@ -32,7 +32,6 @@ from copy import deepcopy
32
32
  from urllib.parse import urlparse
33
33
 
34
34
  import github3
35
- import humanize
36
35
  import requests
37
36
  from flask import current_app
38
37
  from invenio_access.permissions import authenticated_user
@@ -53,6 +52,7 @@ from invenio_github.tasks import sync_hooks as sync_hooks_task
53
52
  from invenio_github.utils import iso_utcnow, parse_timestamp, utcnow
54
53
 
55
54
  from .errors import (
55
+ ReleaseZipballFetchError,
56
56
  RemoteAccountDataNotSet,
57
57
  RemoteAccountNotFound,
58
58
  RepositoryAccessError,
@@ -219,7 +219,7 @@ class GitHubAPI(object):
219
219
  Repository.query.filter(
220
220
  Repository.user_id == self.user_id,
221
221
  ~Repository.github_id.in_(github_repos.keys()),
222
- ).update(dict(user_id=None, hook=None), synchronize_session=False)
222
+ ).update({"user_id": None, "hook": None}, synchronize_session=False)
223
223
 
224
224
  # Update repos and last sync
225
225
  self.account.extra_data.update(
@@ -482,6 +482,7 @@ class GitHubRelease(object):
482
482
  def __init__(self, release):
483
483
  """Constructor."""
484
484
  self.release_object = release
485
+ self._resolved_zipball_url = None
485
486
 
486
487
  @cached_property
487
488
  def record(self):
@@ -534,7 +535,7 @@ class GitHubRelease(object):
534
535
 
535
536
  @cached_property
536
537
  def release_zipball_url(self):
537
- """Returns the release zipball url."""
538
+ """Returns the release zipball URL."""
538
539
  return self.release_payload["zipball_url"]
539
540
 
540
541
  @cached_property
@@ -599,32 +600,58 @@ class GitHubRelease(object):
599
600
  return True if not latest_release else False
600
601
 
601
602
  def test_zipball(self):
602
- """Extract files to download from GitHub payload."""
603
- zipball_url = self.release_payload["zipball_url"]
603
+ """Test if the zipball URL is accessible and return the resolved URL."""
604
+ return self.resolve_zipball_url()
604
605
 
605
- # Execute a HEAD request to the zipball url to test the url.
606
- response = self.gh.api.session.head(zipball_url, allow_redirects=True)
606
+ def resolve_zipball_url(self, cache=True):
607
+ """Resolve the zipball URL.
607
608
 
608
- # In case where there is a tag and branch with the same name, we might
609
- # get back a "300 Mutliple Choices" response, which requires fetching
610
- # an "alternate" link.
609
+ This method will try to resolve the zipball URL by making a HEAD request,
610
+ handling the following edge cases:
611
+
612
+ - In the case of a 300 Multiple Choices response, which can happen when a tag
613
+ and branch have the same name, it will try to fetch an "alternate" link.
614
+ - If the access token does not have the required scopes/permissions to access
615
+ public links, it will fallback to a non-authenticated request.
616
+ """
617
+ if self._resolved_zipball_url and cache:
618
+ return self._resolved_zipball_url
619
+
620
+ url = self.release_zipball_url
621
+
622
+ # Execute a HEAD request to the zipball url to test if it is accessible.
623
+ response = self.gh.api.session.head(url, allow_redirects=True)
624
+
625
+ # In case where there is a tag and branch with the same name, we might get back
626
+ # a "300 Multiple Choices" response, which requires fetching an "alternate"
627
+ # link.
611
628
  if response.status_code == 300:
612
- zipball_url = response.links.get("alternate", {}).get("url")
613
- if zipball_url:
614
- response = self.gh.api.session.head(zipball_url, allow_redirects=True)
615
- # Another edge-case, is when the access token we have does not
616
- # have the scopes/permissions to access public links. In that
617
- # rare case we fallback to a non-authenticated request.
618
- if response.status_code == 404:
619
- response = requests.head(zipball_url, allow_redirects=True)
620
- # If this response is successful we want to use the finally
621
- # resolved URL to fetch the ZIP from.
622
- if response.status_code == 200:
623
- zipball_url = response.url
624
-
625
- assert (
626
- response.status_code == 200
627
- ), f"Could not retrieve archive from GitHub: {zipball_url}"
629
+ alternate_url = response.links.get("alternate", {}).get("url")
630
+ if alternate_url:
631
+ url = alternate_url # Use the alternate URL
632
+ response = self.gh.api.session.head(url, allow_redirects=True)
633
+
634
+ # Another edge-case, is when the access token we have does not have the
635
+ # scopes/permissions to access public links. In that rare case we fallback to a
636
+ # non-authenticated request.
637
+ if response.status_code == 404:
638
+ current_app.logger.warning(
639
+ "GitHub zipball URL {url} not found, trying unauthenticated request.",
640
+ extra={"url": response.url},
641
+ )
642
+ response = requests.head(url, allow_redirects=True)
643
+ # If this response is successful we want to use the finally resolved URL to
644
+ # fetch the ZIP from.
645
+ if response.status_code == 200:
646
+ return response.url
647
+
648
+ if response.status_code != 200:
649
+ raise ReleaseZipballFetchError()
650
+
651
+ if cache:
652
+ self._resolved_zipball_url = response.url
653
+
654
+ return response.url
628
655
 
629
656
  # High level API
630
657
 
@@ -663,8 +690,9 @@ class GitHubRelease(object):
663
690
  """Fetch release zipball file using the current github session."""
664
691
  session = self.gh.api.session
665
692
  timeout = current_app.config.get("GITHUB_ZIPBALL_TIMEOUT", 300)
666
- with session.get(self.release_zipball_url, stream=True, timeout=timeout) as s:
667
- yield s.raw
693
+ zipball_url = self.resolve_zipball_url()
694
+ with session.get(zipball_url, stream=True, timeout=timeout) as resp:
695
+ yield resp.raw
668
696
 
669
697
  def publish(self):
670
698
  """Publish a GitHub release."""
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
3
  # This file is part of Invenio.
4
- # Copyright (C) 2023 CERN.
4
+ # Copyright (C) 2023-2025 CERN.
5
5
  # Copyright (C) 2024 KTH Royal Institute of Technology.
6
6
  #
7
7
  # Invenio is free software; you can redistribute it
@@ -153,3 +153,13 @@ class UnexpectedGithubResponse(GitHubError):
153
153
  def __init__(self, message=None):
154
154
  """Constructor."""
155
155
  super().__init__(message or self.message)
156
+
157
+
158
+ class ReleaseZipballFetchError(GitHubError):
159
+ """Error fetching release zipball file."""
160
+
161
+ message = _("Error fetching release zipball file.")
162
+
163
+ def __init__(self, message=None):
164
+ """Constructor."""
165
+ super().__init__(message or self.message)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: invenio-github
3
- Version: 3.0.0
3
+ Version: 3.0.1
4
4
  Summary: "Invenio module that adds GitHub integration to the platform."
5
5
  Home-page: https://github.com/inveniosoftware/invenio-github
6
6
  Author: CERN
@@ -39,7 +39,6 @@ Requires-Dist: invenio-db[mysql,postgresql]<3.0.0,>=2.0.0; extra == "tests"
39
39
  Requires-Dist: invenio-files-rest<4.0.0,>=3.0.0; extra == "tests"
40
40
  Requires-Dist: isort>=4.2.2; extra == "tests"
41
41
  Requires-Dist: mock>=2.0.0; extra == "tests"
42
- Requires-Dist: pluggy<1.0,>=0.12; extra == "tests"
43
42
  Requires-Dist: pytest-black-ng>=0.4.0; extra == "tests"
44
43
  Requires-Dist: pytest-invenio<4.0.0,>=3.0.0; extra == "tests"
45
44
  Requires-Dist: pytest-mock>=2.0.0; extra == "tests"
@@ -130,6 +129,10 @@ Invenio module that adds GitHub integration to the platform.
130
129
  Changes
131
130
  =======
132
131
 
132
+ Version v3.0.1 (released 2025-07-30)
133
+
134
+ - api: fix set alternate zipball URL when tag and branch having same name
135
+
133
136
  Version 3.0.0 (release 2025-06-03)
134
137
 
135
138
  - setup: bump major dependencies
@@ -18,22 +18,6 @@ run-i18n-tests.sh
18
18
  run-tests.sh
19
19
  setup.cfg
20
20
  setup.py
21
- .github/workflows/i18n-pull.yml
22
- .github/workflows/i18n-push.yml
23
- .github/workflows/pypi-publish.yml
24
- .github/workflows/tests.yml
25
- docs/Makefile
26
- docs/api.rst
27
- docs/authors.rst
28
- docs/changes.rst
29
- docs/conf.py
30
- docs/contributing.rst
31
- docs/index.rst
32
- docs/installation.rst
33
- docs/license.rst
34
- docs/make.bat
35
- docs/requirements.txt
36
- docs/usage.rst
37
21
  invenio_github/__init__.py
38
22
  invenio_github/api.py
39
23
  invenio_github/config.py
@@ -35,7 +35,6 @@ invenio-db[mysql,postgresql]<3.0.0,>=2.0.0
35
35
  invenio-files-rest<4.0.0,>=3.0.0
36
36
  isort>=4.2.2
37
37
  mock>=2.0.0
38
- pluggy<1.0,>=0.12
39
38
  pytest-black-ng>=0.4.0
40
39
  pytest-invenio<4.0.0,>=3.0.0
41
40
  pytest-mock>=2.0.0
@@ -47,7 +47,6 @@ tests =
47
47
  invenio-files-rest>=3.0.0,<4.0.0
48
48
  isort>=4.2.2
49
49
  mock>=2.0.0
50
- pluggy>=0.12,<1.0
51
50
  pytest-black-ng>=0.4.0
52
51
  pytest-invenio>=3.0.0,<4.0.0
53
52
  pytest-mock>=2.0.0
@@ -1,14 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # Copyright (C) 2023 Graz University of Technology.
4
- #
5
- # Invenio is free software; you can redistribute it and/or modify
6
- # it under the terms of the MIT License; see LICENSE file for more details.
7
-
8
- name: i18n:pull translations
9
- on: workflow_dispatch # manually trigger
10
-
11
- jobs:
12
- i18n-pull:
13
- uses: inveniosoftware/invenio-i18n/.github/workflows/i18n-pull-base.yml@master
14
- secrets: inherit
@@ -1,16 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # Copyright (C) 2023 Graz University of Technology.
4
- #
5
- # Invenio is free software; you can redistribute it and/or modify
6
- # it under the terms of the MIT License; see LICENSE file for more details.
7
-
8
- name: i18n:push translations
9
- on: workflow_dispatch # manually trigger
10
-
11
- jobs:
12
- i18n-extract:
13
- uses: inveniosoftware/invenio-i18n/.github/workflows/i18n-push-base.yml@master
14
- with:
15
- extract-backend: true
16
- secrets: inherit
@@ -1,22 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # This file is part of Invenio.
4
- # Copyright (C) 2020-21 CERN.
5
- # Copyright (C) 2024 Graz University of Technology.
6
- #
7
- # Invenio is free software; you can redistribute it and/or modify it
8
- # under the terms of the MIT License; see LICENSE file for more details
9
-
10
- name: Publish
11
-
12
- on:
13
- push:
14
- tags:
15
- - v*
16
-
17
- jobs:
18
- Publish:
19
- uses: inveniosoftware/workflows/.github/workflows/pypi-publish.yml@master
20
- secrets: inherit
21
- with:
22
- babel-compile-catalog: true
@@ -1,31 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # This file is part of Invenio.
4
- # Copyright (C) 2023-2024 Graz University of Technology.
5
- # Copyright (C) 2024 KTH Royal Institute of Technology.
6
- #
7
- # Invenio is free software; you can redistribute it and/or modify it
8
- # under the terms of the MIT License; see LICENSE file for more details.
9
-
10
- name: CI
11
-
12
- on:
13
- push:
14
- branches:
15
- - master
16
- pull_request:
17
- branches:
18
- - master
19
- schedule:
20
- # * is a special character in YAML so you have to quote this string
21
- - cron: "0 3 * * 6"
22
- workflow_dispatch:
23
- inputs:
24
- reason:
25
- description: "Reason"
26
- required: false
27
- default: "Manual trigger"
28
-
29
- jobs:
30
- Tests:
31
- uses: inveniosoftware/workflows/.github/workflows/tests-python.yml@master
@@ -1,192 +0,0 @@
1
- # Makefile for Sphinx documentation
2
- #
3
-
4
- # You can set these variables from the command line.
5
- SPHINXOPTS =
6
- SPHINXBUILD = sphinx-build
7
- PAPER =
8
- BUILDDIR = _build
9
-
10
- # User-friendly check for sphinx-build
11
- ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
12
- $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
13
- endif
14
-
15
- # Internal variables.
16
- PAPEROPT_a4 = -D latex_paper_size=a4
17
- PAPEROPT_letter = -D latex_paper_size=letter
18
- ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
19
- # the i18n builder cannot share the environment and doctrees with the others
20
- I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
21
-
22
- .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest coverage gettext
23
-
24
- help:
25
- @echo "Please use \`make <target>' where <target> is one of"
26
- @echo " html to make standalone HTML files"
27
- @echo " dirhtml to make HTML files named index.html in directories"
28
- @echo " singlehtml to make a single large HTML file"
29
- @echo " pickle to make pickle files"
30
- @echo " json to make JSON files"
31
- @echo " htmlhelp to make HTML files and a HTML help project"
32
- @echo " qthelp to make HTML files and a qthelp project"
33
- @echo " applehelp to make an Apple Help Book"
34
- @echo " devhelp to make HTML files and a Devhelp project"
35
- @echo " epub to make an epub"
36
- @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
37
- @echo " latexpdf to make LaTeX files and run them through pdflatex"
38
- @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
39
- @echo " text to make text files"
40
- @echo " man to make manual pages"
41
- @echo " texinfo to make Texinfo files"
42
- @echo " info to make Texinfo files and run them through makeinfo"
43
- @echo " gettext to make PO message catalogs"
44
- @echo " changes to make an overview of all changed/added/deprecated items"
45
- @echo " xml to make Docutils-native XML files"
46
- @echo " pseudoxml to make pseudoxml-XML files for display purposes"
47
- @echo " linkcheck to check all external links for integrity"
48
- @echo " doctest to run all doctests embedded in the documentation (if enabled)"
49
- @echo " coverage to run coverage check of the documentation (if enabled)"
50
-
51
- clean:
52
- rm -rf $(BUILDDIR)/*
53
-
54
- html:
55
- $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
56
- @echo
57
- @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
58
-
59
- dirhtml:
60
- $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
61
- @echo
62
- @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
63
-
64
- singlehtml:
65
- $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
66
- @echo
67
- @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
68
-
69
- pickle:
70
- $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
71
- @echo
72
- @echo "Build finished; now you can process the pickle files."
73
-
74
- json:
75
- $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
76
- @echo
77
- @echo "Build finished; now you can process the JSON files."
78
-
79
- htmlhelp:
80
- $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
81
- @echo
82
- @echo "Build finished; now you can run HTML Help Workshop with the" \
83
- ".hhp project file in $(BUILDDIR)/htmlhelp."
84
-
85
- qthelp:
86
- $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
87
- @echo
88
- @echo "Build finished; now you can run "qcollectiongenerator" with the" \
89
- ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
90
- @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Invenio-GitHub.qhcp"
91
- @echo "To view the help file:"
92
- @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Invenio-GitHub.qhc"
93
-
94
- applehelp:
95
- $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
96
- @echo
97
- @echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
98
- @echo "N.B. You won't be able to view it unless you put it in" \
99
- "~/Library/Documentation/Help or install it in your application" \
100
- "bundle."
101
-
102
- devhelp:
103
- $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
104
- @echo
105
- @echo "Build finished."
106
- @echo "To view the help file:"
107
- @echo "# mkdir -p $$HOME/.local/share/devhelp/Invenio-GitHub"
108
- @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Invenio-GitHub"
109
- @echo "# devhelp"
110
-
111
- epub:
112
- $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
113
- @echo
114
- @echo "Build finished. The epub file is in $(BUILDDIR)/epub."
115
-
116
- latex:
117
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
118
- @echo
119
- @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
120
- @echo "Run \`make' in that directory to run these through (pdf)latex" \
121
- "(use \`make latexpdf' here to do that automatically)."
122
-
123
- latexpdf:
124
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
125
- @echo "Running LaTeX files through pdflatex..."
126
- $(MAKE) -C $(BUILDDIR)/latex all-pdf
127
- @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
128
-
129
- latexpdfja:
130
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
131
- @echo "Running LaTeX files through platex and dvipdfmx..."
132
- $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
133
- @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
134
-
135
- text:
136
- $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
137
- @echo
138
- @echo "Build finished. The text files are in $(BUILDDIR)/text."
139
-
140
- man:
141
- $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
142
- @echo
143
- @echo "Build finished. The manual pages are in $(BUILDDIR)/man."
144
-
145
- texinfo:
146
- $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
147
- @echo
148
- @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
149
- @echo "Run \`make' in that directory to run these through makeinfo" \
150
- "(use \`make info' here to do that automatically)."
151
-
152
- info:
153
- $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
154
- @echo "Running Texinfo files through makeinfo..."
155
- make -C $(BUILDDIR)/texinfo info
156
- @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
157
-
158
- gettext:
159
- $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
160
- @echo
161
- @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
162
-
163
- changes:
164
- $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
165
- @echo
166
- @echo "The overview file is in $(BUILDDIR)/changes."
167
-
168
- linkcheck:
169
- $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
170
- @echo
171
- @echo "Link check complete; look for any errors in the above output " \
172
- "or in $(BUILDDIR)/linkcheck/output.txt."
173
-
174
- doctest:
175
- $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
176
- @echo "Testing of doctests in the sources finished, look at the " \
177
- "results in $(BUILDDIR)/doctest/output.txt."
178
-
179
- coverage:
180
- $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
181
- @echo "Testing of coverage in the sources finished, look at the " \
182
- "results in $(BUILDDIR)/coverage/python.txt."
183
-
184
- xml:
185
- $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
186
- @echo
187
- @echo "Build finished. The XML files are in $(BUILDDIR)/xml."
188
-
189
- pseudoxml:
190
- $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
191
- @echo
192
- @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
@@ -1,30 +0,0 @@
1
- ..
2
- This file is part of Invenio.
3
- Copyright (C) 2016 CERN.
4
-
5
- Invenio is free software; you can redistribute it
6
- and/or modify it under the terms of the GNU General Public License as
7
- published by the Free Software Foundation; either version 2 of the
8
- License, or (at your option) any later version.
9
-
10
- Invenio is distributed in the hope that it will be
11
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
12
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
- General Public License for more details.
14
-
15
- You should have received a copy of the GNU General Public License
16
- along with Invenio; if not, write to the
17
- Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
18
- MA 02111-1307, USA.
19
-
20
- In applying this license, CERN does not
21
- waive the privileges and immunities granted to it by virtue of its status
22
- as an Intergovernmental Organization or submit itself to any jurisdiction.
23
-
24
-
25
- API Docs
26
- ========
27
-
28
- invenio_github
29
- --------------
30
-
@@ -1,25 +0,0 @@
1
- ..
2
- This file is part of Invenio.
3
- Copyright (C) 2016 CERN.
4
-
5
- Invenio is free software; you can redistribute it
6
- and/or modify it under the terms of the GNU General Public License as
7
- published by the Free Software Foundation; either version 2 of the
8
- License, or (at your option) any later version.
9
-
10
- Invenio is distributed in the hope that it will be
11
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
12
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
- General Public License for more details.
14
-
15
- You should have received a copy of the GNU General Public License
16
- along with Invenio; if not, write to the
17
- Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
18
- MA 02111-1307, USA.
19
-
20
- In applying this license, CERN does not
21
- waive the privileges and immunities granted to it by virtue of its status
22
- as an Intergovernmental Organization or submit itself to any jurisdiction.
23
-
24
-
25
- .. include:: ../AUTHORS.rst
@@ -1,25 +0,0 @@
1
- ..
2
- This file is part of Invenio.
3
- Copyright (C) 2016 CERN.
4
-
5
- Invenio is free software; you can redistribute it
6
- and/or modify it under the terms of the GNU General Public License as
7
- published by the Free Software Foundation; either version 2 of the
8
- License, or (at your option) any later version.
9
-
10
- Invenio is distributed in the hope that it will be
11
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
12
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
- General Public License for more details.
14
-
15
- You should have received a copy of the GNU General Public License
16
- along with Invenio; if not, write to the
17
- Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
18
- MA 02111-1307, USA.
19
-
20
- In applying this license, CERN does not
21
- waive the privileges and immunities granted to it by virtue of its status
22
- as an Intergovernmental Organization or submit itself to any jurisdiction.
23
-
24
-
25
- .. include:: ../CHANGES.rst