Repository: sindresorhus/awesome-lint (js)

Issue:
`awesome/github` reports incorrectly for URL shorthands
Hello fine folks! 👋

## Problem

I get a message saying `Repository should be on GitHub` ([from here](https://github.com/sindresorhus/awesome-lint/blob/0aafda85989e32f6e2996ffd5947429cb893331b/rules/github.js#L11-L22)) because awesome-lint incorrectly reports my remote URL as not being on GitHub.

The reason for that is that `git config --get remote.origin.url` yields `gh:remarkjs/awesome-remark`.

This is indeed not a valid GitHub URL, but Git supports URL shorthands. I have the following in my Git config (`~/.gitconfig`):

```
[url "git@github.com:"]

	insteadOf = "gh:"
	pushInsteadOf = "github:"
	pushInsteadOf = "git://github.com/"
```

The reason I do this is that it makes it easy to clone from GH: `git clone gh:remarkjs/awesome-remark`.
I don’t know how many people use Git URL shorthands. But this pattern is from [`mathiasbynens/dotfiles`](https://github.com/mathiasbynens/dotfiles) so I’m guessing it’s pretty common.

## Solution

`git remote -v` does resolve URLs, as it gives:

```
origin	git@github.com:remarkjs/awesome-remark (fetch)
origin	git@github.com:remarkjs/awesome-remark (push)
```

[Here’s an example of a remark plugin that parses that result to get a URL](https://github.com/remarkjs/remark-validate-links/blob/fac370a57834fb0cccb7cce4b517eb2b584f718c/lib/find/find-repo.js#L21).

Pull request:
Git remote URL can be shorthand
Resolve/Get Git url with the comand: `git remote get-url --push origin`
Fixes #86

Patch:
diff --git a/rules/github.js b/rules/github.js
index a500458..bd5dc3b 100644
--- a/rules/github.js
+++ b/rules/github.js
@@ -9,9 +9,10 @@ module.exports = rule('remark-lint:awesome/github', async (ast, file) => {
 
 	try {
 		const remoteUrl = await execa.stdout('git', [
-			'config',
-			'--get',
-			'remote.origin.url'
+			'remote',
+			'get-url',
+			'--push',
+			'origin'
 		], {
 			cwd: dirname
 		});


Test patch:
diff --git a/test/rules/github.js b/test/rules/github.js
index e480b88..fcc2dc1 100644
--- a/test/rules/github.js
+++ b/test/rules/github.js
@@ -40,7 +40,7 @@ test.serial('github - repo without description and license', async t => {
 	const gotStub = sandbox.stub(github.got, 'get');
 
 	execaStub
-		.withArgs('git', ['config', '--get', 'remote.origin.url'])
+		.withArgs('git', ['remote', 'get-url', '--push', 'origin'])
 		.returns('git@github.com:sindresorhus/awesome-lint-test.git');
 
 	gotStub
@@ -70,7 +70,7 @@ test.serial('github - missing topic awesome-list', async t => {
 	const gotStub = sandbox.stub(github.got, 'get');
 
 	execaStub
-		.withArgs('git', ['config', '--get', 'remote.origin.url'])
+		.withArgs('git', ['remote', 'get-url', '--push', 'origin'])
 		.returns('git@github.com:sindresorhus/awesome-lint-test.git');
 
 	gotStub
@@ -99,7 +99,7 @@ test.serial('github - missing topic awesome', async t => {
 	const gotStub = sandbox.stub(github.got, 'get');
 
 	execaStub
-		.withArgs('git', ['config', '--get', 'remote.origin.url'])
+		.withArgs('git', ['remote', 'get-url', '--push', 'origin'])
 		.returns('git@github.com:sindresorhus/awesome-lint-test.git');
 
 	gotStub
@@ -127,7 +127,7 @@ test.serial('github - remote origin is an GitLab repo', async t => {
 	const execaStub = sandbox.stub(github.execa, 'stdout');
 
 	execaStub
-		.withArgs('git', ['config', '--get', 'remote.origin.url'])
+		.withArgs('git', ['remote', 'get-url', '--push', 'origin'])
 		.returns('https://gitlab.com/sindresorhus/awesome-lint-test.git');
 
 	const messages = await lint({config, filename: 'test/fixtures/github/0.md'});
@@ -144,7 +144,7 @@ test.serial('github - invalid token', async t => {
 	const gotStub = sandbox.stub(github.got, 'get');
 
 	execaStub
-		.withArgs('git', ['config', '--get', 'remote.origin.url'])
+		.withArgs('git', ['remote', 'get-url', '--push', 'origin'])
 		.returns('git@github.com:sindresorhus/awesome-lint-test.git');
 
 	gotStub
@@ -169,7 +169,7 @@ test.serial('github - API rate limit exceeded with token', async t => {
 	process.env.github_token = 'abcd';
 
 	execaStub
-		.withArgs('git', ['config', '--get', 'remote.origin.url'])
+		.withArgs('git', ['remote', 'get-url', '--push', 'origin'])
 		.returns('git@github.com:sindresorhus/awesome-lint-test.git');
 
 	gotStub
@@ -197,7 +197,7 @@ test.serial('github - API rate limit exceeded without token', async t => {
 	const gotStub = sandbox.stub(github.got, 'get');
 
 	execaStub
-		.withArgs('git', ['config', '--get', 'remote.origin.url'])
+		.withArgs('git', ['remote', 'get-url', '--push', 'origin'])
 		.returns('git@github.com:sindresorhus/awesome-lint-test.git');
 
 	gotStub
@@ -223,7 +223,7 @@ test.serial('github - API offline', async t => {
 	const gotStub = sandbox.stub(github.got, 'get');
 
 	execaStub
-		.withArgs('git', ['config', '--get', 'remote.origin.url'])
+		.withArgs('git', ['remote', 'get-url', '--push', 'origin'])
 		.returns('git@github.com:sindresorhus/awesome-lint-test.git');
 
 	gotStub