gabrielcsapo / gabrielcsapo/node-git-server
If the tag contains `00`, it will break there
- Dominant language
- TypeScript
- Stars
- 262
- Forks
- 81
- PR merge metrics
- No merged PRs in 30d
Description
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`?
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.