mirror of
https://github.com/Mastermindzh/tidal-hifi.git
synced 2025-09-10 13:54:41 +02:00
Compare commits
12 Commits
Author | SHA1 | Date | |
---|---|---|---|
bdab6c3a17 | |||
813beec863 | |||
591d42b31a | |||
beacedd64b | |||
|
e13af7a2d5 | ||
73cba7f761 | |||
71208bbf81 | |||
ef37478788 | |||
c411c2cf85 | |||
|
b6185c3e12 | ||
|
c90902e9a9 | ||
e72b607f29 |
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
@@ -32,7 +32,7 @@ jobs:
|
||||
- uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: mac-builds
|
||||
path: dist/
|
||||
path: ./dist/
|
||||
|
||||
build_on_win:
|
||||
runs-on: windows-latest
|
||||
|
14
CHANGELOG.md
Normal file
14
CHANGELOG.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## 1.1.0
|
||||
|
||||
- updated to electron 8.0.0
|
||||
- Added a beta-version of the mpris service
|
||||
|
||||
- Bugfixes:
|
||||
- icon on gnome not showing in launcher
|
||||
- app not remembering size on startup
|
19
README.md
19
README.md
@@ -13,6 +13,7 @@ The web version of [listen.tidal.com](listen.tidal.com) running in electron with
|
||||
|
||||
- [Installation](#installation)
|
||||
- [Using releases](#using-releases)
|
||||
- [Snap install](#snap-install)
|
||||
- [Using source](#using-source)
|
||||
- [features](#features)
|
||||
- [Integrations](#integrations)
|
||||
@@ -28,6 +29,22 @@ The web version of [listen.tidal.com](listen.tidal.com) running in electron with
|
||||
|
||||
Various packaged versions of the software are available on the [releases](https://github.com/Mastermindzh/tidal-hifi/releases) tab.
|
||||
|
||||
#### Snap install
|
||||
|
||||
To install with `snap` you need to download the pre-packaged snap-package from this repository, found under releases:
|
||||
|
||||
1. Download:
|
||||
|
||||
```sh
|
||||
wget <URI> #for instance: https://github.com/Mastermindzh/tidal-hifi/releases/download/1.0/tidal-hifi_1.0.0_amd64.snap
|
||||
```
|
||||
|
||||
2. Install:
|
||||
|
||||
```sh
|
||||
snap install --dangerous <path> #for instance: tidal-hifi_1.0.0_amd64.snap
|
||||
```
|
||||
|
||||
### Arch Linux
|
||||
|
||||
Arch Linux users can use the AUR to install tidal-hifi:
|
||||
@@ -52,13 +69,13 @@ To install and work with the code on this project follow these steps:
|
||||
- Shortcuts ([source](https://defkey.com/tidal-desktop-shortcuts))
|
||||
- API for status and playback
|
||||
- [Settings feature](./docs/settings.png) to disable certain functionality. (`ctrl+/`)
|
||||
- Tray(/mini) player (coming soon)
|
||||
|
||||
## Integrations
|
||||
|
||||
- [i3 blocks config](https://github.com/Mastermindzh/dotfiles/commit/9714b2fa1d670108ce811d5511fd3b7a43180647) - My dotfiles where I use this app to fetch currently playing music (direct commit)
|
||||
|
||||
### Known bugs
|
||||
|
||||
- [Last.fm login doesn't work](https://github.com/Mastermindzh/tidal-hifi/issues/4).
|
||||
|
||||
## Why
|
||||
|
BIN
assets/TIDAL.icns
Executable file
BIN
assets/TIDAL.icns
Executable file
Binary file not shown.
6
build/electron-builder.rpm.yml
Normal file
6
build/electron-builder.rpm.yml
Normal file
@@ -0,0 +1,6 @@
|
||||
extends: ./build/electron-builder.yml
|
||||
linux:
|
||||
category: Audio
|
||||
icon: ./assets/TIDAL.icns
|
||||
target:
|
||||
- rpm
|
@@ -11,8 +11,23 @@ linux:
|
||||
# - pacman
|
||||
- tar.gz
|
||||
- deb
|
||||
- rpm
|
||||
- AppImage
|
||||
- snap
|
||||
- freebsd
|
||||
executableName: tidal-hifi
|
||||
desktop:
|
||||
Encoding: UTF-8
|
||||
Name: tidal-hifi
|
||||
GenericName: tidal-hifi
|
||||
Comment: The web version of listen.tidal.com running in electron with hifi support thanks to widevine.
|
||||
Icon: assets/icon.png
|
||||
StartupNotify: true
|
||||
Terminal: false
|
||||
Type: Application
|
||||
Categories: Network;Application;Audio;Video
|
||||
StartupWMClass: tidal-hifi
|
||||
X-PulseAudio-Properties: media.role=music
|
||||
mac:
|
||||
category: public.app-category.entertainment
|
||||
win:
|
||||
|
@@ -1,6 +1,6 @@
|
||||
pkgbase = tidal-hifi-git
|
||||
pkgdesc = The web version of listen.tidal.com running in electron with hifi support thanks to widevine.
|
||||
pkgver = 0.5
|
||||
pkgver = 1.1.1
|
||||
pkgrel = 1
|
||||
url = https://github.com/Mastermindzh/tidal-hifi
|
||||
arch = x86_64
|
||||
@@ -11,9 +11,10 @@ pkgbase = tidal-hifi-git
|
||||
depends = nss
|
||||
depends = gtk3
|
||||
provides = tidal-hifi
|
||||
source = https://github.com/Mastermindzh/tidal-hifi/archive/0.5.zip
|
||||
source = https://github.com/Mastermindzh/tidal-hifi/archive/1.1.1.zip
|
||||
source = tidal-hifi.desktop
|
||||
sha512sums = a25a9189a10aa35a62ad41299792909b0ac6547544802ef9d1f58d6d0bff75b4d364975c81d5a4d73eabf64bdb772c3823c3b3cd58540d40acaedf6594033f61
|
||||
sha512sums = fa5fa918ea890baa5f500db3153a6eff3d63966528ffa3349acda3ea02fbecb1ea78a1ba1d23ef7402de2228fc0a483252e0b7e72c73cfb25ed401bedaf856f5
|
||||
sha512sums = a538b8b18c31c21017b2591e7fc2afa40ac4d33ffdbd59d7a14fd3c53aa6be11ee749d679ee4626a543c2b7f9dd154cef97e8ed3257cf8d46f389a0db765330d
|
||||
sha512sums = 35f38ac308b871c1822d7f6f760f2fb54c3748cf769822cb0f0dfb90f0f5754ba9316da5e903a0d2e9839de3a43ec76f238f3f2e44021956fa1da19142081349
|
||||
|
||||
pkgname = tidal-hifi-git
|
||||
|
||||
|
@@ -1,8 +1,8 @@
|
||||
# Maintainer: Rick van Lieshout <info@rickvanlieshout.com>
|
||||
|
||||
_pkgname=tidal-hifi
|
||||
pkgname="$_pkgname"
|
||||
pkgver=0.5
|
||||
pkgname="$_pkgname-git"
|
||||
pkgver=1.1.1
|
||||
pkgrel=1
|
||||
pkgdesc="The web version of listen.tidal.com running in electron with hifi support thanks to widevine."
|
||||
arch=("x86_64")
|
||||
@@ -15,8 +15,8 @@ provides=("$_pkgname")
|
||||
|
||||
source=("https://github.com/Mastermindzh/tidal-hifi/archive/$pkgver.zip"
|
||||
"${_pkgname}.desktop")
|
||||
sha512sums=('a25a9189a10aa35a62ad41299792909b0ac6547544802ef9d1f58d6d0bff75b4d364975c81d5a4d73eabf64bdb772c3823c3b3cd58540d40acaedf6594033f61'
|
||||
'fa5fa918ea890baa5f500db3153a6eff3d63966528ffa3349acda3ea02fbecb1ea78a1ba1d23ef7402de2228fc0a483252e0b7e72c73cfb25ed401bedaf856f5')
|
||||
sha512sums=('a538b8b18c31c21017b2591e7fc2afa40ac4d33ffdbd59d7a14fd3c53aa6be11ee749d679ee4626a543c2b7f9dd154cef97e8ed3257cf8d46f389a0db765330d'
|
||||
'35f38ac308b871c1822d7f6f760f2fb54c3748cf769822cb0f0dfb90f0f5754ba9316da5e903a0d2e9839de3a43ec76f238f3f2e44021956fa1da19142081349')
|
||||
|
||||
cdToPkg(){
|
||||
cd "tidal-hifi-$pkgver"
|
||||
@@ -33,7 +33,7 @@ build() {
|
||||
cdToPkg
|
||||
|
||||
# We are not using the systems Electron as we need castlab's Electron.
|
||||
npx electron-builder --linux dir
|
||||
npm run build-arch
|
||||
}
|
||||
|
||||
package() {
|
||||
|
@@ -10,3 +10,4 @@ Terminal=false
|
||||
Type=Application
|
||||
Categories=Network;Application;Audio;Video
|
||||
StartupWMClass=tidal-hifi
|
||||
X-PulseAudio-Properties=media.role=music
|
||||
|
1134
package-lock.json
generated
1134
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
27
package.json
27
package.json
@@ -1,16 +1,17 @@
|
||||
{
|
||||
"name": "tidal-hifi",
|
||||
"version": "1.0.0",
|
||||
"version": "1.1.1",
|
||||
"description": "Tidal on Electron with widevine(hifi) support",
|
||||
"main": "src/main.js",
|
||||
"scripts": {
|
||||
"start": "electron .",
|
||||
"build": "electron-builder -c ./build/electron-builder.yml",
|
||||
"build-deb": "electron-builder -c ./build/electron-builder.deb.yml",
|
||||
"build-snap": "electron-builder -c ./build/electron-builder.snap.yml",
|
||||
"build-arch": "electron-builder -c ./build/electron-builder.pacman.yml",
|
||||
"build-wl": "electron-builder -c ./build/electron-builder.yml -wl",
|
||||
"build-mac": "electron-builder -c ./build/electron-builder.yml -m"
|
||||
"build": "electron-builder --publish=never -c ./build/electron-builder.yml",
|
||||
"build-deb": "electron-builder --publish=never -c ./build/electron-builder.deb.yml",
|
||||
"build-rpm": "electron-builder --publish=never -c ./build/electron-builder.rpm.yml",
|
||||
"build-snap": "electron-builder --publish=never -c ./build/electron-builder.snap.yml",
|
||||
"build-arch": "electron-builder --publish=never -c ./build/electron-builder.pacman.yml",
|
||||
"build-wl": "electron-builder --publish=never -c ./build/electron-builder.yml -wl",
|
||||
"build-mac": "electron-builder --publish=never -c ./build/electron-builder.yml -m"
|
||||
},
|
||||
"keywords": [
|
||||
"electron",
|
||||
@@ -19,20 +20,22 @@
|
||||
"linux"
|
||||
],
|
||||
"author": "Rick van Lieshout <info@rickvanlieshout.com> (http://rickvanlieshout.com)",
|
||||
"homepage": "https://github.com/Mastermindzh/tidal-hifi",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"electron-store": "^5.1.0",
|
||||
"electron-store": "^5.1.1",
|
||||
"express": "^4.17.1",
|
||||
"hotkeys-js": "^3.7.1",
|
||||
"hotkeys-js": "^3.7.6",
|
||||
"node-notifier": "^6.0.0",
|
||||
"request": "^2.88.0"
|
||||
"request": "^2.88.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@mastermindzh/prettier-config": "^1.0.0",
|
||||
"electron": "https://github.com/castlabs/electron-releases#v6.1.0-wvvmp",
|
||||
"electron": "git+https://github.com/castlabs/electron-releases.git#v8.5.2-wvvmp",
|
||||
"electron-builder": "^21.2.0",
|
||||
"electron-reload": "^1.5.0",
|
||||
"prettier": "^1.18.2"
|
||||
"prettier": "^2.0.4",
|
||||
"dot-prop": ">=4.2.1"
|
||||
},
|
||||
"prettier": "@mastermindzh/prettier-config"
|
||||
}
|
||||
|
@@ -17,6 +17,7 @@ const settings = {
|
||||
root: "apiSettings",
|
||||
port: "apiSettings.port",
|
||||
},
|
||||
mpris: "mpris",
|
||||
windowBounds: {
|
||||
root: "windowBounds",
|
||||
width: "windowBounds.width",
|
||||
|
@@ -34,8 +34,8 @@ function createWindow(options = {}) {
|
||||
mainWindow = new BrowserWindow({
|
||||
x: options.x,
|
||||
y: options.y,
|
||||
width: 1024,
|
||||
height: 800,
|
||||
width: store && store.get(settings.windowBounds.width),
|
||||
height: store && store.get(settings.windowBounds.height),
|
||||
icon,
|
||||
tray: true,
|
||||
backgroundColor: options.backgroundColor,
|
||||
@@ -43,7 +43,7 @@ function createWindow(options = {}) {
|
||||
affinity: "window",
|
||||
preload: path.join(__dirname, "preload.js"),
|
||||
plugins: true,
|
||||
devTools: !app.isPackaged,
|
||||
devTools: true, // I like tinkering, others might too
|
||||
},
|
||||
});
|
||||
|
||||
|
@@ -17,6 +17,7 @@ function refreshSettings() {
|
||||
api.checked = store.get(settings.api);
|
||||
port.value = store.get(settings.apiSettings.port);
|
||||
menuBar.checked = store.get(settings.menuBar);
|
||||
mpris.checked = store.get(settings.mpris);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -66,7 +67,7 @@ window.addEventListener("DOMContentLoaded", () => {
|
||||
refreshSettings();
|
||||
});
|
||||
|
||||
ipcRenderer.on("goToTab", (event, tab) => {
|
||||
ipcRenderer.on("goToTab", (_, tab) => {
|
||||
document.getElementById(tab).click();
|
||||
});
|
||||
|
||||
@@ -75,6 +76,7 @@ window.addEventListener("DOMContentLoaded", () => {
|
||||
api = get("apiCheckbox");
|
||||
port = get("port");
|
||||
menuBar = get("menuBar");
|
||||
mpris = get("mprisCheckbox");
|
||||
|
||||
refreshSettings();
|
||||
|
||||
@@ -83,4 +85,5 @@ window.addEventListener("DOMContentLoaded", () => {
|
||||
addInputListener(api, settings.api);
|
||||
addInputListener(port, settings.apiSettings.port);
|
||||
addInputListener(menuBar, settings.menuBar);
|
||||
addInputListener(mpris, settings.mpris);
|
||||
});
|
||||
|
@@ -26,14 +26,19 @@
|
||||
<div class="body">
|
||||
<div class="tabset">
|
||||
<!-- Tab 1 -->
|
||||
<input type="radio" name="tabset" id="tab1" checked />
|
||||
<label for="tab1">General</label>
|
||||
<input type="radio" name="tabset" id="general" checked />
|
||||
<label for="general">General</label>
|
||||
<!-- Tab 2 -->
|
||||
<input type="radio" name="tabset" id="tab2" />
|
||||
<label for="tab2">Api</label>
|
||||
<!-- Tab 3 -->
|
||||
<input type="radio" name="tabset" id="tab3" />
|
||||
<label for="tab3">About</label>
|
||||
<input type="radio" name="tabset" id="api" />
|
||||
<label for="api">Api</label>
|
||||
|
||||
<!-- Integrations tab -->
|
||||
<input type="radio" name="tabset" id="integrations" />
|
||||
<label for="integrations">Integrations</label>
|
||||
|
||||
<!-- about tab -->
|
||||
<input type="radio" name="tabset" id="about" />
|
||||
<label for="about">About</label>
|
||||
|
||||
<div class="tab-panels">
|
||||
<section id="general" class="tab-panel">
|
||||
@@ -101,7 +106,29 @@
|
||||
</div>
|
||||
<button onClick="restart()">Restart Tidal-hifi</button>
|
||||
</section>
|
||||
<section id="general" class="tab-panel">
|
||||
<section id="integrations" class="tab-panel">
|
||||
<div class="section">
|
||||
<h3>integrations</h3>
|
||||
<p style="margin-bottom: 15px;">
|
||||
Tidal-hifi is extensible trough the use of integrations. You can enable or disable integrations here
|
||||
<br />
|
||||
* not all integrations require restarting but some do, your best bet is to restart :)
|
||||
</p>
|
||||
<!-- disabled until the 403 with mpris-service/dbus is fixed -->
|
||||
<!-- <div class="option">
|
||||
<h4>mpris-player</h4>
|
||||
<p>
|
||||
Whether to enable the mpris media player controls for Linux systems
|
||||
</p>
|
||||
<label class="switch">
|
||||
<input id="mprisCheckbox" type="checkbox">
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
</div> -->
|
||||
<button onClick="restart()">Restart Tidal-hifi</button>
|
||||
</div>
|
||||
</section>
|
||||
<section id="about" class="tab-panel">
|
||||
<div class="section">
|
||||
<img style="width: 100px; height: auto; display: block; margin: 0 auto; margin-bottom: 20px; margin-top: 20px;" src = "./icon.png">
|
||||
<p style="max-width: 350px; display:block; margin: 0 auto; text-align: center;">
|
||||
@@ -170,6 +197,7 @@
|
||||
|
||||
.exitWindow {
|
||||
border: none;
|
||||
outline: none;
|
||||
text-decoration: none;
|
||||
font-size: 1.4rem;
|
||||
float: right;
|
||||
@@ -178,6 +206,11 @@
|
||||
line-height: 50px;
|
||||
}
|
||||
|
||||
.exitWindow:focus {
|
||||
border: none;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.exitWindow svg {
|
||||
height: 50px;
|
||||
color: white;
|
||||
@@ -263,7 +296,9 @@
|
||||
|
||||
.tabset > input:first-child:checked ~ .tab-panels > .tab-panel:first-child,
|
||||
.tabset > input:nth-child(3):checked ~ .tab-panels > .tab-panel:nth-child(2),
|
||||
.tabset > input:nth-child(5):checked ~ .tab-panels > .tab-panel:nth-child(3) {
|
||||
.tabset > input:nth-child(5):checked ~ .tab-panels > .tab-panel:nth-child(3),
|
||||
.tabset > input:nth-child(7):checked ~ .tab-panels > .tab-panel:nth-child(4)
|
||||
{
|
||||
display: block;
|
||||
}
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
const { setTitle, getTitle } = require("./scripts/window-functions");
|
||||
const { dialog } = require("electron").remote;
|
||||
const { dialog, process } = require("electron").remote;
|
||||
const { store, settings } = require("./scripts/settings");
|
||||
const { ipcRenderer } = require("electron");
|
||||
const { app } = require("electron").remote;
|
||||
@@ -10,6 +10,7 @@ const globalEvents = require("./constants/globalEvents");
|
||||
const notifier = require("node-notifier");
|
||||
const notificationPath = `${app.getPath("userData")}/notification.jpg`;
|
||||
let currentSong = "";
|
||||
// let player;
|
||||
|
||||
const elements = {
|
||||
play: '*[data-test="play"]',
|
||||
@@ -216,13 +217,22 @@ function addIPCEventListeners() {
|
||||
* Update the current status of tidal (e.g playing or paused)
|
||||
*/
|
||||
function updateStatus() {
|
||||
const play = elements.get("play");
|
||||
let status = statuses.paused;
|
||||
// if play button is NOT visible tidal is playing
|
||||
if (!play) {
|
||||
let pause = elements.get("pause");
|
||||
let status;
|
||||
|
||||
// if pause button is visible tidal is playing
|
||||
if (pause) {
|
||||
status = statuses.playing;
|
||||
} else {
|
||||
status = statuses.paused;
|
||||
}
|
||||
|
||||
if (status) {
|
||||
ipcRenderer.send(globalEvents.updateStatus, status);
|
||||
// if (player) {
|
||||
// player.playbackStatus = status == statuses.paused ? "Paused" : "Playing";
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -264,6 +274,17 @@ setInterval(function() {
|
||||
() => {
|
||||
ipcRenderer.send(globalEvents.updateInfo, options);
|
||||
store.get(settings.notifications) && notifier.notify(options);
|
||||
|
||||
// if (player) {
|
||||
// player.metadata = {
|
||||
// ...player.metadata,
|
||||
// ...{
|
||||
// "xesam:title": title,
|
||||
// "xesam:artist": [artists],
|
||||
// "mpris:artUrl": image,
|
||||
// },
|
||||
// };
|
||||
// }
|
||||
},
|
||||
() => {}
|
||||
);
|
||||
@@ -271,5 +292,57 @@ setInterval(function() {
|
||||
}
|
||||
}, 200);
|
||||
|
||||
// if (process.platform === "linux" && store.get(settings.mpris)) {
|
||||
// try {
|
||||
// const Player = require("mpris-service");
|
||||
// player = Player({
|
||||
// name: "tidal-hifi",
|
||||
// identity: "tidal-hifi",
|
||||
// supportedUriSchemes: ["file"],
|
||||
// supportedMimeTypes: [
|
||||
// "audio/mpeg",
|
||||
// "audio/flac",
|
||||
// "audio/x-flac",
|
||||
// "application/ogg",
|
||||
// "audio/wav",
|
||||
// ],
|
||||
// supportedInterfaces: ["player"],
|
||||
// desktopEntry: "tidal-hifi",
|
||||
// });
|
||||
|
||||
// // Events
|
||||
// var events = {
|
||||
// next: "next",
|
||||
// previous: "previous",
|
||||
// pause: "pause",
|
||||
// playpause: "playpause",
|
||||
// stop: "stop",
|
||||
// play: "play",
|
||||
// loopStatus: "repeat",
|
||||
// shuffle: "shuffle",
|
||||
// seek: "seek",
|
||||
// };
|
||||
// Object.keys(events).forEach(function (eventName) {
|
||||
// player.on(eventName, function () {
|
||||
// const eventValue = events[eventName];
|
||||
// switch (events[eventValue]) {
|
||||
// case events.playpause:
|
||||
// playPause();
|
||||
// break;
|
||||
|
||||
// default:
|
||||
// elements.click(eventValue);
|
||||
// }
|
||||
// });
|
||||
// });
|
||||
|
||||
// player.on("quit", function () {
|
||||
// app.quit();
|
||||
// });
|
||||
// } catch (exception) {
|
||||
// console.log("player api not working");
|
||||
// }
|
||||
// }
|
||||
|
||||
addHotKeys();
|
||||
addIPCEventListeners();
|
||||
|
@@ -89,7 +89,7 @@ const mainMenu = [
|
||||
{
|
||||
label: "About",
|
||||
click() {
|
||||
showSettingsWindow("tab3");
|
||||
showSettingsWindow("about");
|
||||
},
|
||||
},
|
||||
];
|
||||
|
@@ -14,7 +14,7 @@ const store = new Store({
|
||||
apiSettings: {
|
||||
port: 47836,
|
||||
},
|
||||
|
||||
mpris: false,
|
||||
windowBounds: { width: 800, height: 600 },
|
||||
},
|
||||
});
|
||||
@@ -52,7 +52,7 @@ settingsModule.createSettingsWindow = function() {
|
||||
settingsModule.settingsWindow = settingsWindow;
|
||||
};
|
||||
|
||||
settingsModule.showSettingsWindow = function(tab = "tab1") {
|
||||
settingsModule.showSettingsWindow = function (tab = "general") {
|
||||
settingsWindow.webContents.send("goToTab", tab);
|
||||
|
||||
// refresh data just before showing the window
|
||||
|
18
stale.yml
Normal file
18
stale.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
# Number of days of inactivity before an issue becomes stale
|
||||
daysUntilStale: 30
|
||||
# Number of days of inactivity before a stale issue is closed
|
||||
daysUntilClose: 2
|
||||
# Issues with these labels will never be considered stale
|
||||
exemptLabels:
|
||||
- good first issue
|
||||
- waiting for support
|
||||
- security
|
||||
# Label to use when marking an issue as stale
|
||||
staleLabel: stale
|
||||
# Comment to post when marking an issue as stale. Set to `false` to disable
|
||||
markComment: >
|
||||
This issue has been automatically marked as stale because it has not had
|
||||
recent activity. It will be closed if no further activity occurs. Thank you
|
||||
for your contributions.
|
||||
# Comment to post when closing a stale issue. Set to `false` to disable
|
||||
closeComment: false
|
Reference in New Issue
Block a user