Support the proposed repository and issue_tracker URLs. (dart-lang/pubspec_parse#30)

diff --git a/pkgs/pubspec_parse/CHANGELOG.md b/pkgs/pubspec_parse/CHANGELOG.md
index add9737..066edeb 100644
--- a/pkgs/pubspec_parse/CHANGELOG.md
+++ b/pkgs/pubspec_parse/CHANGELOG.md
@@ -1,6 +1,7 @@
 ## 0.1.3
 
 - Add support for `publish_to` field.
+- Support the proposed `repository` and `issue_tracker` URLs.
 
 ## 0.1.2+3
 
diff --git a/pkgs/pubspec_parse/lib/src/pubspec.dart b/pkgs/pubspec_parse/lib/src/pubspec.dart
index 27ebc64..8324e07 100644
--- a/pkgs/pubspec_parse/lib/src/pubspec.dart
+++ b/pkgs/pubspec_parse/lib/src/pubspec.dart
@@ -21,6 +21,8 @@
   final Version version;
 
   final String description;
+
+  /// This should be a URL pointing to the website for the package.
   final String homepage;
 
   /// Specifies where to publish this package.
@@ -32,6 +34,14 @@
   /// [More information](https://www.dartlang.org/tools/pub/pubspec#publish_to).
   final String publishTo;
 
+  /// Optional field to specify the source code repository of the package.
+  /// Useful when a package has both a home page and a repository.
+  final Uri repository;
+
+  /// Optional field to a web page where developers can report new issues or
+  /// view existing ones.
+  final Uri issueTracker;
+
   /// If there is exactly 1 value in [authors], returns it.
   ///
   /// If there are 0 or more than 1, returns `null`.
@@ -69,6 +79,8 @@
     List<String> authors,
     Map<String, VersionConstraint> environment,
     this.homepage,
+    this.repository,
+    this.issueTracker,
     this.documentation,
     this.description,
     Map<String, Dependency> dependencies,
diff --git a/pkgs/pubspec_parse/lib/src/pubspec.g.dart b/pkgs/pubspec_parse/lib/src/pubspec.g.dart
index bf878c2..866438f 100644
--- a/pkgs/pubspec_parse/lib/src/pubspec.g.dart
+++ b/pkgs/pubspec_parse/lib/src/pubspec.g.dart
@@ -18,6 +18,10 @@
         environment: $checkedConvert(json, 'environment',
             (v) => v == null ? null : _environmentMap(v as Map)),
         homepage: $checkedConvert(json, 'homepage', (v) => v as String),
+        repository: $checkedConvert(json, 'repository',
+            (v) => v == null ? null : Uri.parse(v as String)),
+        issueTracker: $checkedConvert(json, 'issue_tracker',
+            (v) => v == null ? null : Uri.parse(v as String)),
         documentation:
             $checkedConvert(json, 'documentation', (v) => v as String),
         description: $checkedConvert(json, 'description', (v) => v as String),
@@ -30,6 +34,7 @@
     return val;
   }, fieldKeyMap: const {
     'publishTo': 'publish_to',
+    'issueTracker': 'issue_tracker',
     'devDependencies': 'dev_dependencies',
     'dependencyOverrides': 'dependency_overrides'
   });