gabrielcsapo / gabrielcsapo/node-git-server

If the tag contains `00`, it will break there

Đang mở
#113 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
TypeScript
Star
262
Fork
81
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

I tried to push the following tag: `v72.94001.10`
However, the tag passed to the `tag` event was the following value:

```js
const { Git } = require('node-git-server');

const repos = new Git('path/to/tmp', {
autoCreate: true,
});

repos.on('tag', (tag) => {
// tag.version === 'v72.94' // What!?
});

repos.listen(49152, { type: 'http' }, () => {
// ...
});
repos.server.on('error', err => { throw err });
```

Apparently, tag names are cut off when `00` is encountered.
I have looked into the reason for this and found the following regular expression to be the cause.

https://github.com/gabrielcsapo/node-git-server/blob/2ab22a4d3f1a9c77314236c401e176f994f2f758/src/service.ts#L13

[This pattern is defined so that tag names after spaces, null characters, or `00` are not retrieved](https://regexper.com/#%28%5B0-9a-fA-F%5D%2B%29%20%28%5B0-9a-fA-F%5D%2B%29%20refs%5C%2F%28heads%7Ctags%29%5C%2F%28.*%3F%29%28%20%7C00%7C%5Cu0000%29%7C%5E%280000%29%24).
_Why?_ Tag names (and branch names) can contain `00`. What is the reason for excluding anything after `00`?

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Hướng nghiên cứu

Tái hiện vấn đề với tag v72.94001.10 trong báo cáo, sau đó kiểm tra biểu thức chính quy tại dòng 13 của src/service.ts và phần phân tích các sự kiện tag xung quanh. Xác nhận rằng tên tag và branch chứa 00 được giữ nguyên, trong khi hành vi phân tích ref hiện có vẫn không thay đổi.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
git, node.js, typescript
Lĩnh vực
backend
Loại issue
Lỗi
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
45/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.