nbgitpuller-jl-interface 1.0.0__tar.gz → 1.0.2__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.
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/.copier-answers.yml +3 -2
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/.prettierignore +2 -0
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/CHANGELOG.md +38 -2
- nbgitpuller_jl_interface-1.0.0/README.md → nbgitpuller_jl_interface-1.0.2/CONTRIBUTING.md +25 -67
- nbgitpuller_jl_interface-1.0.2/Dockerfile +21 -0
- nbgitpuller_jl_interface-1.0.2/PKG-INFO +87 -0
- nbgitpuller_jl_interface-1.0.2/README.md +49 -0
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/RELEASE.md +8 -0
- nbgitpuller_jl_interface-1.0.2/conftest.py +14 -0
- nbgitpuller_jl_interface-1.0.2/eslint.config.mjs +70 -0
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/nbgitpuller_jl_interface/_version.py +1 -1
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/nbgitpuller_jl_interface/labextension/package.json +18 -79
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/nbgitpuller_jl_interface/labextension/schemas/nbgitpuller-jl-interface/package.json.orig +17 -78
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/nbgitpuller_jl_interface/labextension/schemas/nbgitpuller-jl-interface/plugin.json +12 -6
- nbgitpuller_jl_interface-1.0.2/nbgitpuller_jl_interface/labextension/static/232.152654ff7be03ddf.js +91 -0
- nbgitpuller_jl_interface-1.0.2/nbgitpuller_jl_interface/labextension/static/256.b0b5a00e8ceed310.js +22 -0
- nbgitpuller_jl_interface-1.0.2/nbgitpuller_jl_interface/labextension/static/547.4bc2bff14a6e0100.js +1 -0
- nbgitpuller_jl_interface-1.0.2/nbgitpuller_jl_interface/labextension/static/590.805d9315d8b2adc2.js +1 -0
- nbgitpuller_jl_interface-1.0.2/nbgitpuller_jl_interface/labextension/static/remoteEntry.f7d8d10c2901273d.js +1 -0
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/nbgitpuller_jl_interface/labextension/static/style.js +1 -1
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/nbgitpuller_jl_interface/labextension/static/third-party-licenses.json +8 -2
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/package.json +17 -78
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/pyproject.toml +6 -5
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/schema/plugin.json +12 -6
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/src/__tests__/nbgitpuller_jb_interface.spec.ts +59 -14
- nbgitpuller_jl_interface-1.0.2/src/declarations.d.ts +2 -0
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/src/index.ts +40 -10
- nbgitpuller_jl_interface-1.0.2/src/utils.ts +426 -0
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/style/base.css +18 -12
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/ui-tests/package.json +1 -1
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/yarn.lock +2197 -2868
- nbgitpuller_jl_interface-1.0.0/.vscode/settings.json +0 -4
- nbgitpuller_jl_interface-1.0.0/PKG-INFO +0 -221
- nbgitpuller_jl_interface-1.0.0/conftest.py +0 -8
- nbgitpuller_jl_interface-1.0.0/nbgitpuller_jl_interface/labextension/static/293.488357a8d6ce24253311.js +0 -1
- nbgitpuller_jl_interface-1.0.0/nbgitpuller_jl_interface/labextension/static/728.1316db9caad2256ea253.js +0 -1
- nbgitpuller_jl_interface-1.0.0/nbgitpuller_jl_interface/labextension/static/remoteEntry.4caf41ad4e8e084aba3e.js +0 -1
- nbgitpuller_jl_interface-1.0.0/setup.py +0 -1
- nbgitpuller_jl_interface-1.0.0/src/utils.ts +0 -280
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/.gitignore +0 -0
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/.yarnrc.yml +0 -0
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/LICENSE +0 -0
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/babel.config.js +0 -0
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/install.json +0 -0
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/jest.config.js +0 -0
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/jupyter-config/server-config/nbgitpuller_jl_interface.json +0 -0
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/nbgitpuller_jl_interface/__init__.py +0 -0
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/nbgitpuller_jl_interface/routes.py +0 -0
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/nbgitpuller_jl_interface/tests/__init__.py +0 -0
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/nbgitpuller_jl_interface/tests/test_routes.py +0 -0
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/nbgitpuller_jl_interface/tests/test_utils.py +0 -0
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/nbgitpuller_jl_interface/utils.py +0 -0
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/src/request.ts +0 -0
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/style/index.css +0 -0
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/style/index.js +0 -0
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/style/tmp_logo.svg +0 -0
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/tsconfig.json +0 -0
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/tsconfig.test.json +0 -0
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/ui-tests/README.md +0 -0
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/ui-tests/jupyter_server_test_config.py +0 -0
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/ui-tests/playwright.config.js +0 -0
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/ui-tests/tests/nbgitpuller_jl_interface.spec.ts +0 -0
- {nbgitpuller_jl_interface-1.0.0 → nbgitpuller_jl_interface-1.0.2}/ui-tests/yarn.lock +0 -0
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
# Changes here will be overwritten by Copier; NEVER EDIT MANUALLY
|
|
2
|
-
_commit: v4.5
|
|
2
|
+
_commit: v4.6.5
|
|
3
3
|
_src_path: https://github.com/jupyterlab/extension-template
|
|
4
|
+
advanced: false
|
|
4
5
|
author_email: admin@opensciencelab.asf.alaska.edu
|
|
5
6
|
author_name: OpenScienceLab
|
|
6
7
|
has_ai_rules: false
|
|
7
|
-
has_binder:
|
|
8
|
+
has_binder: false
|
|
8
9
|
has_settings: true
|
|
9
10
|
kind: frontend-and-server
|
|
10
11
|
labextension_name: nbgitpuller-jl-interface
|
|
@@ -2,6 +2,44 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- <START NEW CHANGELOG ENTRY> -->
|
|
4
4
|
|
|
5
|
+
## 1.0.2
|
|
6
|
+
|
|
7
|
+
([Full Changelog](https://github.com/ASFOpenSARlab/nbgitpuller-jl-interface/compare/v1.0.1...0b95da314d9b73591f42491947d7b05564f5d620))
|
|
8
|
+
|
|
9
|
+
### Enhancements made
|
|
10
|
+
|
|
11
|
+
- [OSL-4634] Widget Settings Button [#15](https://github.com/ASFOpenSARlab/nbgitpuller-jl-interface/pull/15) ([@segallagher](https://github.com/segallagher), [@emlundell](https://github.com/emlundell))
|
|
12
|
+
- update copier template [#14](https://github.com/ASFOpenSARlab/nbgitpuller-jl-interface/pull/14) ([@segallagher](https://github.com/segallagher), [@dgpalmieri](https://github.com/dgpalmieri))
|
|
13
|
+
|
|
14
|
+
### Contributors to this release
|
|
15
|
+
|
|
16
|
+
The following people contributed discussions, new ideas, code and documentation contributions, and review.
|
|
17
|
+
See [our definition of contributors](https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports).
|
|
18
|
+
|
|
19
|
+
([GitHub contributors page for this release](https://github.com/ASFOpenSARlab/nbgitpuller-jl-interface/graphs/contributors?from=2026-09-01&to=2026-09-21&type=c))
|
|
20
|
+
|
|
21
|
+
@dgpalmieri ([activity](https://github.com/search?q=repo%3AASFOpenSARlab%2Fnbgitpuller-jl-interface+involves%3Adgpalmieri+updated%3A2026-09-01..2026-09-21&type=Issues)) | @emlundell ([activity](https://github.com/search?q=repo%3AASFOpenSARlab%2Fnbgitpuller-jl-interface+involves%3Aemlundell+updated%3A2026-09-01..2026-09-21&type=Issues)) | @segallagher ([activity](https://github.com/search?q=repo%3AASFOpenSARlab%2Fnbgitpuller-jl-interface+involves%3Asegallagher+updated%3A2026-09-01..2026-09-21&type=Issues))
|
|
22
|
+
|
|
23
|
+
<!-- <END NEW CHANGELOG ENTRY> -->
|
|
24
|
+
|
|
25
|
+
## 1.0.1
|
|
26
|
+
|
|
27
|
+
([Full Changelog](https://github.com/ASFOpenSARlab/nbgitpuller-jl-interface/compare/v1.0.0...42fd83a453d510913a2261235f02e4625ec2c8df))
|
|
28
|
+
|
|
29
|
+
### Enhancements made
|
|
30
|
+
|
|
31
|
+
- [OSL-4631, OSL-4762] replace tooltip with tippy tooltip [#11](https://github.com/ASFOpenSARlab/nbgitpuller-jl-interface/pull/11) ([@segallagher](https://github.com/segallagher), [@bbuechler](https://github.com/bbuechler))
|
|
32
|
+
- feat: add autoupdate settings option [#10](https://github.com/ASFOpenSARlab/nbgitpuller-jl-interface/pull/10) ([@dgpalmieri](https://github.com/dgpalmieri), [@emlundell](https://github.com/emlundell))
|
|
33
|
+
|
|
34
|
+
### Contributors to this release
|
|
35
|
+
|
|
36
|
+
The following people contributed discussions, new ideas, code and documentation contributions, and review.
|
|
37
|
+
See [our definition of contributors](https://github-activity.readthedocs.io/en/latest/use/#how-does-this-tool-define-contributions-in-the-reports).
|
|
38
|
+
|
|
39
|
+
([GitHub contributors page for this release](https://github.com/ASFOpenSARlab/nbgitpuller-jl-interface/graphs/contributors?from=2026-04-22&to=2026-09-01&type=c))
|
|
40
|
+
|
|
41
|
+
@bbuechler ([activity](https://github.com/search?q=repo%3AASFOpenSARlab%2Fnbgitpuller-jl-interface+involves%3Abbuechler+updated%3A2026-04-22..2026-09-01&type=Issues)) | @dgpalmieri ([activity](https://github.com/search?q=repo%3AASFOpenSARlab%2Fnbgitpuller-jl-interface+involves%3Adgpalmieri+updated%3A2026-04-22..2026-09-01&type=Issues)) | @emlundell ([activity](https://github.com/search?q=repo%3AASFOpenSARlab%2Fnbgitpuller-jl-interface+involves%3Aemlundell+updated%3A2026-04-22..2026-09-01&type=Issues)) | @segallagher ([activity](https://github.com/search?q=repo%3AASFOpenSARlab%2Fnbgitpuller-jl-interface+involves%3Asegallagher+updated%3A2026-04-22..2026-09-01&type=Issues))
|
|
42
|
+
|
|
5
43
|
## 1.0.0
|
|
6
44
|
|
|
7
45
|
([Full Changelog](https://github.com/ASFOpenSARlab/nbgitpuller-jl-interface/compare/v0.4.0...759fb6102164f8863a7b43141b34c915d43fe5bd))
|
|
@@ -25,8 +63,6 @@ See [our definition of contributors](https://github-activity.readthedocs.io/en/l
|
|
|
25
63
|
|
|
26
64
|
@Alex-Lewandowski ([activity](https://github.com/search?q=repo%3AASFOpenSARlab%2Fnbgitpuller-jl-interface+involves%3AAlex-Lewandowski+updated%3A2026-04-15..2026-04-22&type=Issues)) | @dgpalmieri ([activity](https://github.com/search?q=repo%3AASFOpenSARlab%2Fnbgitpuller-jl-interface+involves%3Adgpalmieri+updated%3A2026-04-15..2026-04-22&type=Issues)) | @emlundell ([activity](https://github.com/search?q=repo%3AASFOpenSARlab%2Fnbgitpuller-jl-interface+involves%3Aemlundell+updated%3A2026-04-15..2026-04-22&type=Issues)) | @segallagher ([activity](https://github.com/search?q=repo%3AASFOpenSARlab%2Fnbgitpuller-jl-interface+involves%3Asegallagher+updated%3A2026-04-15..2026-04-22&type=Issues))
|
|
27
65
|
|
|
28
|
-
<!-- <END NEW CHANGELOG ENTRY> -->
|
|
29
|
-
|
|
30
66
|
## 0.4.0
|
|
31
67
|
|
|
32
68
|
([Full Changelog](https://github.com/ASFOpenSARlab/nbgitpuller-jl-interface/compare/v0.3.0...c0858bae9a3c63097a47872caeb0332071433e10))
|
|
@@ -1,63 +1,10 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Contributing
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
[](https://mybinder.org/v2/gh/ASFOpenSARlab/nbgitpuller-jl-interface/main?urlpath=lab)
|
|
3
|
+
## Development install
|
|
5
4
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
for the server extension and a NPM package named `nbgitpuller-jl-interface`
|
|
10
|
-
for the frontend extension.
|
|
11
|
-
|
|
12
|
-
## Requirements
|
|
13
|
-
|
|
14
|
-
- JupyterLab >= 4.0.0
|
|
15
|
-
|
|
16
|
-
## Install
|
|
17
|
-
|
|
18
|
-
To install the extension, execute:
|
|
19
|
-
|
|
20
|
-
```bash
|
|
21
|
-
pip install nbgitpuller_jl_interface
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## Uninstall
|
|
25
|
-
|
|
26
|
-
To remove the extension, execute:
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
pip uninstall nbgitpuller_jl_interface
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## Troubleshoot
|
|
33
|
-
|
|
34
|
-
If you are seeing the frontend extension, but it is not working, check
|
|
35
|
-
that the server extension is enabled:
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
jupyter server extension list
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
If the server extension is installed and enabled, but you are not seeing
|
|
42
|
-
the frontend extension, check the frontend extension is installed:
|
|
43
|
-
|
|
44
|
-
```bash
|
|
45
|
-
jupyter labextension list
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
If `git` is asking for credentials on the command line when deployed locally
|
|
49
|
-
(you may have mistyped your url!), add the following lines to `~/.gitconfig`:
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
[credential "https://github.com"]
|
|
53
|
-
helper = !/usr/bin/gh auth git-credential
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
## Contributing
|
|
57
|
-
|
|
58
|
-
### Development install
|
|
59
|
-
|
|
60
|
-
Note: You will need NodeJS to build the extension package.
|
|
5
|
+
Note: You will need Node.js to build the extension package.
|
|
6
|
+
You may install it from [nodejs.org](https://nodejs.org/en/download). We
|
|
7
|
+
recommend using the latest LTS version of Node.js.
|
|
61
8
|
|
|
62
9
|
The `jlpm` command is JupyterLab's pinned version of
|
|
63
10
|
[yarn](https://yarnpkg.com/) that is installed with JupyterLab. You may use
|
|
@@ -73,7 +20,7 @@ source .venv/bin/activate
|
|
|
73
20
|
pip install --editable ".[dev,test]"
|
|
74
21
|
|
|
75
22
|
# Link your development version of the extension with JupyterLab
|
|
76
|
-
jupyter
|
|
23
|
+
jupyter-builder develop . --overwrite
|
|
77
24
|
# Server extension must be manually installed in develop mode
|
|
78
25
|
jupyter server extension enable nbgitpuller_jl_interface
|
|
79
26
|
|
|
@@ -100,7 +47,7 @@ By default, the `jlpm build` command generates the source maps for this extensio
|
|
|
100
47
|
jupyter lab build --minimize=False
|
|
101
48
|
```
|
|
102
49
|
|
|
103
|
-
|
|
50
|
+
## Development uninstall
|
|
104
51
|
|
|
105
52
|
```bash
|
|
106
53
|
# Server extension must be manually disabled in develop mode
|
|
@@ -108,13 +55,24 @@ jupyter server extension disable nbgitpuller_jl_interface
|
|
|
108
55
|
pip uninstall nbgitpuller_jl_interface
|
|
109
56
|
```
|
|
110
57
|
|
|
111
|
-
In development mode, you will also need to remove the symlink created by `jupyter
|
|
58
|
+
In development mode, you will also need to remove the symlink created by `jupyter-builder develop`
|
|
112
59
|
command. To find its location, you can run `jupyter labextension list` to figure out where the `labextensions`
|
|
113
60
|
folder is located. Then you can remove the symlink named `nbgitpuller-jl-interface` within that folder.
|
|
114
61
|
|
|
115
|
-
|
|
62
|
+
## Endpoint authentication
|
|
63
|
+
|
|
64
|
+
Every verb method of every handler must carry a `@tornado.web.authenticated`
|
|
65
|
+
decorator, or, if the endpoint is meant to be public, an explicit
|
|
66
|
+
`@allow_unauthenticated`/`@ws_authenticated` decorator from
|
|
67
|
+
`jupyter_server.auth.decorator`. The `build` workflow enforces this by running:
|
|
68
|
+
|
|
69
|
+
```sh
|
|
70
|
+
python .github/scripts/check_auth.py
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Testing the extension
|
|
116
74
|
|
|
117
|
-
|
|
75
|
+
### Server tests
|
|
118
76
|
|
|
119
77
|
This extension is using [Pytest](https://docs.pytest.org/) for Python code testing.
|
|
120
78
|
|
|
@@ -123,7 +81,7 @@ Install test dependencies (needed only once):
|
|
|
123
81
|
```sh
|
|
124
82
|
pip install -e ".[test]"
|
|
125
83
|
# Each time you install the Python package, you need to restore the front-end extension link
|
|
126
|
-
jupyter
|
|
84
|
+
jupyter-builder develop . --overwrite
|
|
127
85
|
```
|
|
128
86
|
|
|
129
87
|
To execute them, run:
|
|
@@ -143,13 +101,13 @@ jlpm
|
|
|
143
101
|
jlpm test
|
|
144
102
|
```
|
|
145
103
|
|
|
146
|
-
|
|
104
|
+
### Integration tests
|
|
147
105
|
|
|
148
106
|
This extension uses [Playwright](https://playwright.dev/docs/intro) for the integration tests (aka user level tests).
|
|
149
107
|
More precisely, the JupyterLab helper [Galata](https://github.com/jupyterlab/jupyterlab/tree/master/galata) is used to handle testing the extension in JupyterLab.
|
|
150
108
|
|
|
151
|
-
More information
|
|
109
|
+
More information is provided within the [ui-tests](./ui-tests/README.md) README.
|
|
152
110
|
|
|
153
|
-
|
|
111
|
+
## Packaging the extension
|
|
154
112
|
|
|
155
113
|
See [RELEASE](RELEASE.md)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
FROM python:3.14-slim
|
|
2
|
+
|
|
3
|
+
WORKDIR /app
|
|
4
|
+
|
|
5
|
+
# Install Node.js and npm for TypeScript
|
|
6
|
+
RUN apt-get update \
|
|
7
|
+
&& apt-get install -y --no-install-recommends \
|
|
8
|
+
nodejs \
|
|
9
|
+
npm \
|
|
10
|
+
&& npm install -g typescript \
|
|
11
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
12
|
+
|
|
13
|
+
COPY . .
|
|
14
|
+
|
|
15
|
+
RUN pip install --editable ".[dev,test]"
|
|
16
|
+
|
|
17
|
+
RUN jlpm install
|
|
18
|
+
|
|
19
|
+
EXPOSE 8888
|
|
20
|
+
|
|
21
|
+
CMD ["jupyter", "lab", "--ip=0.0.0.0", "--port=8888", "--no-browser", "--allow-root"]
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: nbgitpuller_jl_interface
|
|
3
|
+
Version: 1.0.2
|
|
4
|
+
Summary: A human interface with nbgitpuller in JupyterBook
|
|
5
|
+
Project-URL: Homepage, https://github.com/ASFOpenSARlab/nbgitpuller-jl-interface
|
|
6
|
+
Project-URL: Bug Tracker, https://github.com/ASFOpenSARlab/nbgitpuller-jl-interface/issues
|
|
7
|
+
Project-URL: Repository, https://github.com/ASFOpenSARlab/nbgitpuller-jl-interface.git
|
|
8
|
+
Author-email: OpenScienceLab <admin@opensciencelab.asf.alaska.edu>
|
|
9
|
+
License-Expression: BSD-3-Clause
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Keywords: jupyter,jupyterlab,jupyterlab-extension
|
|
12
|
+
Classifier: Framework :: Jupyter
|
|
13
|
+
Classifier: Framework :: Jupyter :: JupyterLab
|
|
14
|
+
Classifier: Framework :: Jupyter :: JupyterLab :: 4
|
|
15
|
+
Classifier: Framework :: Jupyter :: JupyterLab :: Extensions
|
|
16
|
+
Classifier: Framework :: Jupyter :: JupyterLab :: Extensions :: Prebuilt
|
|
17
|
+
Classifier: Programming Language :: Python
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
24
|
+
Requires-Python: >=3.10
|
|
25
|
+
Requires-Dist: jupyter-server<3,>=2.13.0
|
|
26
|
+
Requires-Dist: nbgitpuller>=1.2.2
|
|
27
|
+
Provides-Extra: dev
|
|
28
|
+
Requires-Dist: jupyter-builder>=1.2.0; extra == 'dev'
|
|
29
|
+
Requires-Dist: jupyterlab>=4; extra == 'dev'
|
|
30
|
+
Provides-Extra: test
|
|
31
|
+
Requires-Dist: coverage; extra == 'test'
|
|
32
|
+
Requires-Dist: pytest; extra == 'test'
|
|
33
|
+
Requires-Dist: pytest-asyncio; extra == 'test'
|
|
34
|
+
Requires-Dist: pytest-cov; extra == 'test'
|
|
35
|
+
Requires-Dist: pytest-jupyter[server]>=0.6.0; extra == 'test'
|
|
36
|
+
Requires-Dist: pytest-mock; extra == 'test'
|
|
37
|
+
Description-Content-Type: text/markdown
|
|
38
|
+
|
|
39
|
+
# nbgitpuller_jl_interface
|
|
40
|
+
|
|
41
|
+
[](https://github.com/ASFOpenSARlab/nbgitpuller-jl-interface/actions/workflows/build.yml)
|
|
42
|
+
|
|
43
|
+
A human interface with nbgitpuller in JupyterBook
|
|
44
|
+
|
|
45
|
+
This extension is composed of a Python package named `nbgitpuller_jl_interface`
|
|
46
|
+
for the server extension and a NPM package named `nbgitpuller-jl-interface`
|
|
47
|
+
for the frontend extension.
|
|
48
|
+
|
|
49
|
+
## Requirements
|
|
50
|
+
|
|
51
|
+
- JupyterLab >= 4.0.0
|
|
52
|
+
|
|
53
|
+
## Install
|
|
54
|
+
|
|
55
|
+
To install the extension, execute:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
pip install nbgitpuller_jl_interface
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Uninstall
|
|
62
|
+
|
|
63
|
+
To remove the extension, execute:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
pip uninstall nbgitpuller_jl_interface
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Troubleshoot
|
|
70
|
+
|
|
71
|
+
If you are seeing the frontend extension, but it is not working, check
|
|
72
|
+
that the server extension is enabled:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
jupyter server extension list
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
If the server extension is installed and enabled, but you are not seeing
|
|
79
|
+
the frontend extension, check the frontend extension is installed:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
jupyter labextension list
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Contributing
|
|
86
|
+
|
|
87
|
+
If you would like to contribute to this extension, please refer to the [Contributing Guide](CONTRIBUTING.md).
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# nbgitpuller_jl_interface
|
|
2
|
+
|
|
3
|
+
[](https://github.com/ASFOpenSARlab/nbgitpuller-jl-interface/actions/workflows/build.yml)
|
|
4
|
+
|
|
5
|
+
A human interface with nbgitpuller in JupyterBook
|
|
6
|
+
|
|
7
|
+
This extension is composed of a Python package named `nbgitpuller_jl_interface`
|
|
8
|
+
for the server extension and a NPM package named `nbgitpuller-jl-interface`
|
|
9
|
+
for the frontend extension.
|
|
10
|
+
|
|
11
|
+
## Requirements
|
|
12
|
+
|
|
13
|
+
- JupyterLab >= 4.0.0
|
|
14
|
+
|
|
15
|
+
## Install
|
|
16
|
+
|
|
17
|
+
To install the extension, execute:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
pip install nbgitpuller_jl_interface
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Uninstall
|
|
24
|
+
|
|
25
|
+
To remove the extension, execute:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
pip uninstall nbgitpuller_jl_interface
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Troubleshoot
|
|
32
|
+
|
|
33
|
+
If you are seeing the frontend extension, but it is not working, check
|
|
34
|
+
that the server extension is enabled:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
jupyter server extension list
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
If the server extension is installed and enabled, but you are not seeing
|
|
41
|
+
the frontend extension, check the frontend extension is installed:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
jupyter labextension list
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Contributing
|
|
48
|
+
|
|
49
|
+
If you would like to contribute to this extension, please refer to the [Contributing Guide](CONTRIBUTING.md).
|
|
@@ -62,6 +62,14 @@ The extension repository should already be compatible with the Jupyter Releaser.
|
|
|
62
62
|
the GitHub repository and the package managers need to be properly set up. Please
|
|
63
63
|
follow the instructions of the Jupyter Releaser [checklist](https://jupyter-releaser.readthedocs.io/en/latest/how_to_guides/convert_repo_from_repo.html).
|
|
64
64
|
|
|
65
|
+
For the release workflows in this repository, make sure GitHub is configured with:
|
|
66
|
+
|
|
67
|
+
- a `release` environment
|
|
68
|
+
- an `APP_PRIVATE_KEY` secret
|
|
69
|
+
- an `APP_ID` repository variable
|
|
70
|
+
|
|
71
|
+
When using [npm trusted publishing](https://docs.npmjs.com/trusted-publishers), `NPM_TOKEN` is not required (and trusted publishing is recommended). Configure `NPM_TOKEN` only if you are publishing without trusted publishers.
|
|
72
|
+
|
|
65
73
|
Here is a summary of the steps to cut a new release:
|
|
66
74
|
|
|
67
75
|
- Go to the Actions panel
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import pytest
|
|
2
|
+
|
|
3
|
+
pytest_plugins = ("pytest_jupyter.jupyter_server", )
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@pytest.fixture
|
|
7
|
+
def jp_server_config(jp_server_config):
|
|
8
|
+
return {
|
|
9
|
+
"ServerApp": {
|
|
10
|
+
"jpserver_extensions": {"nbgitpuller_jl_interface": True},
|
|
11
|
+
# Test against a server which requires authentication on all endpoints
|
|
12
|
+
"allow_unauthenticated_access": False,
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import js from '@eslint/js';
|
|
2
|
+
import { defineConfig } from 'eslint/config';
|
|
3
|
+
import tseslint from 'typescript-eslint';
|
|
4
|
+
import prettierRecommended from 'eslint-plugin-prettier/recommended';
|
|
5
|
+
import globals from 'globals';
|
|
6
|
+
import jupyterPlugin from '@jupyter/eslint-plugin';
|
|
7
|
+
|
|
8
|
+
export default defineConfig([
|
|
9
|
+
{
|
|
10
|
+
ignores: [
|
|
11
|
+
'node_modules',
|
|
12
|
+
'dist',
|
|
13
|
+
'coverage',
|
|
14
|
+
'**/*.js',
|
|
15
|
+
'**/*.d.ts',
|
|
16
|
+
'.venv',
|
|
17
|
+
'tests',
|
|
18
|
+
'**/__tests__',
|
|
19
|
+
'ui-tests'
|
|
20
|
+
]
|
|
21
|
+
},
|
|
22
|
+
js.configs.recommended,
|
|
23
|
+
tseslint.configs.recommended,
|
|
24
|
+
{
|
|
25
|
+
plugins: {
|
|
26
|
+
jupyter: jupyterPlugin
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
jupyterPlugin.configs.recommended,
|
|
30
|
+
{
|
|
31
|
+
files: ['**/*.ts', '**/*.tsx'],
|
|
32
|
+
languageOptions: {
|
|
33
|
+
globals: {
|
|
34
|
+
...globals.browser,
|
|
35
|
+
...globals.es2015,
|
|
36
|
+
...globals.node
|
|
37
|
+
},
|
|
38
|
+
parserOptions: {
|
|
39
|
+
project: 'tsconfig.json',
|
|
40
|
+
sourceType: 'module'
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
rules: {
|
|
44
|
+
'@typescript-eslint/naming-convention': [
|
|
45
|
+
'error',
|
|
46
|
+
{
|
|
47
|
+
selector: 'interface',
|
|
48
|
+
format: ['PascalCase'],
|
|
49
|
+
custom: {
|
|
50
|
+
regex: '^I[A-Z]',
|
|
51
|
+
match: true
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
],
|
|
55
|
+
'@typescript-eslint/no-unused-vars': ['warn', { args: 'none' }],
|
|
56
|
+
'@typescript-eslint/no-explicit-any': 'off',
|
|
57
|
+
'@typescript-eslint/no-namespace': 'off',
|
|
58
|
+
'@typescript-eslint/no-use-before-define': 'off',
|
|
59
|
+
'@typescript-eslint/quotes': [
|
|
60
|
+
'error',
|
|
61
|
+
'single',
|
|
62
|
+
{ avoidEscape: true, allowTemplateLiterals: false }
|
|
63
|
+
],
|
|
64
|
+
curly: ['error', 'all'],
|
|
65
|
+
eqeqeq: 'error',
|
|
66
|
+
'prefer-arrow-callback': 'error'
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
prettierRecommended
|
|
70
|
+
]);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nbgitpuller-jl-interface",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "A human interface with nbgitpuller in JupyterBook",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"jupyter",
|
|
@@ -32,8 +32,8 @@
|
|
|
32
32
|
"scripts": {
|
|
33
33
|
"build": "jlpm build:lib && jlpm build:labextension:dev",
|
|
34
34
|
"build:prod": "jlpm clean && jlpm build:lib:prod && jlpm build:labextension",
|
|
35
|
-
"build:labextension": "jupyter
|
|
36
|
-
"build:labextension:dev": "jupyter
|
|
35
|
+
"build:labextension": "jupyter-builder build .",
|
|
36
|
+
"build:labextension:dev": "jupyter-builder build --development True .",
|
|
37
37
|
"build:lib": "tsc --sourceMap",
|
|
38
38
|
"build:lib:prod": "tsc",
|
|
39
39
|
"clean": "jlpm clean:lib",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"clean:labextension": "rimraf nbgitpuller_jl_interface/labextension nbgitpuller_jl_interface/_version.py",
|
|
43
43
|
"clean:all": "jlpm clean:lib && jlpm clean:labextension && jlpm clean:lintcache",
|
|
44
44
|
"eslint": "jlpm eslint:check --fix",
|
|
45
|
-
"eslint:check": "eslint . --cache
|
|
45
|
+
"eslint:check": "eslint . --cache",
|
|
46
46
|
"install:extension": "jlpm build",
|
|
47
47
|
"lint": "jlpm stylelint && jlpm prettier && jlpm eslint",
|
|
48
48
|
"lint:check": "jlpm stylelint:check && jlpm prettier:check && jlpm eslint:check",
|
|
@@ -54,45 +54,47 @@
|
|
|
54
54
|
"test": "jest --coverage",
|
|
55
55
|
"watch": "run-p watch:src watch:labextension",
|
|
56
56
|
"watch:src": "tsc -w --sourceMap",
|
|
57
|
-
"watch:labextension": "jupyter
|
|
57
|
+
"watch:labextension": "jupyter-builder watch ."
|
|
58
58
|
},
|
|
59
59
|
"dependencies": {
|
|
60
60
|
"@jupyterlab/application": "^4.5.6",
|
|
61
61
|
"@jupyterlab/apputils": "^4.6.6",
|
|
62
62
|
"@jupyterlab/coreutils": "^6.0.0",
|
|
63
63
|
"@jupyterlab/services": "^7.0.0",
|
|
64
|
-
"@jupyterlab/settingregistry": "^4.5.6"
|
|
64
|
+
"@jupyterlab/settingregistry": "^4.5.6",
|
|
65
|
+
"tippy.js": "^6.3.7"
|
|
65
66
|
},
|
|
66
67
|
"devDependencies": {
|
|
67
|
-
"@
|
|
68
|
+
"@eslint/js": "^9.0.0",
|
|
69
|
+
"@jupyter/builder": "^1.2.0",
|
|
70
|
+
"@jupyter/eslint-plugin": "^1.1.0",
|
|
68
71
|
"@jupyterlab/testutils": "^4.0.0",
|
|
69
72
|
"@types/jest": "^29.2.0",
|
|
70
73
|
"@types/json-schema": "^7.0.11",
|
|
71
74
|
"@types/react": "^18.0.26",
|
|
72
75
|
"@types/react-addons-linked-state-mixin": "^0.14.22",
|
|
73
|
-
"@
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"eslint": "^8.36.0",
|
|
77
|
-
"eslint-config-prettier": "^8.8.0",
|
|
76
|
+
"@types/tippy.js": "^6.3.0",
|
|
77
|
+
"eslint": "^9.0.0",
|
|
78
|
+
"eslint-config-prettier": "^9.0.0",
|
|
78
79
|
"eslint-plugin-prettier": "^5.0.0",
|
|
80
|
+
"globals": "^15.0.0",
|
|
79
81
|
"jest": "^29.2.0",
|
|
80
82
|
"mkdirp": "^1.0.3",
|
|
81
83
|
"npm-run-all2": "^7.0.1",
|
|
82
84
|
"prettier": "^3.0.0",
|
|
83
85
|
"rimraf": "^5.0.1",
|
|
84
|
-
"source-map-loader": "^1.0.2",
|
|
85
|
-
"style-loader": "^3.3.1",
|
|
86
86
|
"stylelint": "^15.10.1",
|
|
87
87
|
"stylelint-config-recommended": "^13.0.0",
|
|
88
88
|
"stylelint-config-standard": "^34.0.0",
|
|
89
89
|
"stylelint-csstree-validator": "^3.0.0",
|
|
90
90
|
"stylelint-prettier": "^4.0.0",
|
|
91
91
|
"typescript": "~5.5.4",
|
|
92
|
+
"typescript-eslint": "^8.0.0",
|
|
92
93
|
"yjs": "^13.5.0"
|
|
93
94
|
},
|
|
94
95
|
"resolutions": {
|
|
95
|
-
"lib0": "0.2.111"
|
|
96
|
+
"lib0": "0.2.111",
|
|
97
|
+
"webpack": "5.106.0"
|
|
96
98
|
},
|
|
97
99
|
"sideEffects": [
|
|
98
100
|
"style/*.css",
|
|
@@ -117,74 +119,11 @@
|
|
|
117
119
|
"outputDir": "nbgitpuller_jl_interface/labextension",
|
|
118
120
|
"schemaDir": "schema",
|
|
119
121
|
"_build": {
|
|
120
|
-
"load": "static/remoteEntry.
|
|
122
|
+
"load": "static/remoteEntry.f7d8d10c2901273d.js",
|
|
121
123
|
"extension": "./extension",
|
|
122
124
|
"style": "./style"
|
|
123
125
|
}
|
|
124
126
|
},
|
|
125
|
-
"eslintIgnore": [
|
|
126
|
-
"node_modules",
|
|
127
|
-
"dist",
|
|
128
|
-
"coverage",
|
|
129
|
-
"**/*.d.ts",
|
|
130
|
-
"tests",
|
|
131
|
-
"**/__tests__",
|
|
132
|
-
"ui-tests"
|
|
133
|
-
],
|
|
134
|
-
"eslintConfig": {
|
|
135
|
-
"extends": [
|
|
136
|
-
"eslint:recommended",
|
|
137
|
-
"plugin:@typescript-eslint/eslint-recommended",
|
|
138
|
-
"plugin:@typescript-eslint/recommended",
|
|
139
|
-
"plugin:prettier/recommended"
|
|
140
|
-
],
|
|
141
|
-
"parser": "@typescript-eslint/parser",
|
|
142
|
-
"parserOptions": {
|
|
143
|
-
"project": "tsconfig.json",
|
|
144
|
-
"sourceType": "module"
|
|
145
|
-
},
|
|
146
|
-
"plugins": [
|
|
147
|
-
"@typescript-eslint"
|
|
148
|
-
],
|
|
149
|
-
"rules": {
|
|
150
|
-
"@typescript-eslint/naming-convention": [
|
|
151
|
-
"error",
|
|
152
|
-
{
|
|
153
|
-
"selector": "interface",
|
|
154
|
-
"format": [
|
|
155
|
-
"PascalCase"
|
|
156
|
-
],
|
|
157
|
-
"custom": {
|
|
158
|
-
"regex": "^I[A-Z]",
|
|
159
|
-
"match": true
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
],
|
|
163
|
-
"@typescript-eslint/no-unused-vars": [
|
|
164
|
-
"warn",
|
|
165
|
-
{
|
|
166
|
-
"args": "none"
|
|
167
|
-
}
|
|
168
|
-
],
|
|
169
|
-
"@typescript-eslint/no-explicit-any": "off",
|
|
170
|
-
"@typescript-eslint/no-namespace": "off",
|
|
171
|
-
"@typescript-eslint/no-use-before-define": "off",
|
|
172
|
-
"@typescript-eslint/quotes": [
|
|
173
|
-
"error",
|
|
174
|
-
"single",
|
|
175
|
-
{
|
|
176
|
-
"avoidEscape": true,
|
|
177
|
-
"allowTemplateLiterals": false
|
|
178
|
-
}
|
|
179
|
-
],
|
|
180
|
-
"curly": [
|
|
181
|
-
"error",
|
|
182
|
-
"all"
|
|
183
|
-
],
|
|
184
|
-
"eqeqeq": "error",
|
|
185
|
-
"prefer-arrow-callback": "error"
|
|
186
|
-
}
|
|
187
|
-
},
|
|
188
127
|
"prettier": {
|
|
189
128
|
"singleQuote": true,
|
|
190
129
|
"trailingComma": "none",
|