@simplysf/simply-gitlab 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1546,13 +1546,16 @@
1546
1546
  "view:file:gitlab"
1547
1547
  ]
1548
1548
  },
1549
- "gitlab:mr:create": {
1549
+ "gitlab:project:create": {
1550
1550
  "aliases": [],
1551
1551
  "args": {},
1552
- "description": "Both branches must already exist on the project. --draft prefixes the title with \"Draft: \", which is how GitLab itself marks a draft; there is no separate field for it.\n\nAssignees and reviewers are numeric user ids, not usernames — GitLab accepts only ids here. --body or --body-file supplies raw JSON for anything the flags do not cover, such as approval rules. Use --dry-run to see exactly what would be sent.",
1552
+ "description": "Creates the project in --namespace, or in the namespace of the token owner when none is given. Give it --name or --path; GitLab derives whichever one is missing.\n\n--template names one of the built-in templates GitLab ships, such as express or rails. To create from a custom template instead, add --custom-template for one the instance administrator registered, --template-group for one in a group, or use --template-project to name the template project itself by id or path — which GitLab prefers, because a name can be ambiguous. Add --template-group to --template-project when the template belongs to a group rather than the instance. Custom templates need a Premium or Ultimate instance.\n\nA template is applied asynchronously: this command returns as soon as the project record exists, with an import status of \"scheduled\", and the files arrive a few seconds later. Check \"project view\" until its import_status reads \"finished\" before writing to the repository. --dry-run prints the exact request body; a namespace or template given as a path is still looked up, so the printed ids are the ones that would be sent.",
1553
1553
  "examples": [
1554
- "<%= config.bin %> <%= command.id %> --project group/project --source-branch feature --target-branch main --title \"feat: the thing\"",
1555
- "<%= config.bin %> <%= command.id %> --project group/project --source-branch feature --target-branch main --title wip --draft --squash"
1554
+ "<%= config.bin %> <%= command.id %> --name new-service --namespace platform/apps",
1555
+ "<%= config.bin %> <%= command.id %> --name new-service --namespace platform/apps --template express --visibility internal",
1556
+ "<%= config.bin %> <%= command.id %> --name new-service --namespace platform/apps --template service-skeleton --template-group platform/templates",
1557
+ "<%= config.bin %> <%= command.id %> --path new-service --template-project platform/templates/service-skeleton --dry-run",
1558
+ "<%= config.bin %> <%= command.id %> --name new-service --template-project platform/templates/service-skeleton --template-group platform/templates"
1556
1559
  ],
1557
1560
  "flags": {
1558
1561
  "json": {
@@ -1590,92 +1593,96 @@
1590
1593
  "multiple": false,
1591
1594
  "type": "option"
1592
1595
  },
1593
- "project": {
1594
- "char": "p",
1595
- "env": "GITLAB_PROJECT",
1596
- "name": "project",
1597
- "required": true,
1598
- "summary": "Project id, or its full path such as group/subgroup/project.",
1599
- "hasDynamicHelp": false,
1600
- "multiple": false,
1601
- "type": "option"
1602
- },
1603
1596
  "dry-run": {
1604
1597
  "name": "dry-run",
1605
1598
  "summary": "Print the request that would be sent and exit without sending it.",
1606
1599
  "allowNo": false,
1607
1600
  "type": "boolean"
1608
1601
  },
1609
- "source-branch": {
1610
- "name": "source-branch",
1611
- "summary": "Branch holding the changes.",
1602
+ "name": {
1603
+ "name": "name",
1604
+ "summary": "Project name. The path is derived from it when --path is not given.",
1612
1605
  "hasDynamicHelp": false,
1613
1606
  "multiple": false,
1614
1607
  "type": "option"
1615
1608
  },
1616
- "target-branch": {
1617
- "name": "target-branch",
1618
- "summary": "Branch the changes are proposed for.",
1609
+ "path": {
1610
+ "name": "path",
1611
+ "summary": "Repository path, the URL slug. The name is derived from it when --name is not given.",
1619
1612
  "hasDynamicHelp": false,
1620
1613
  "multiple": false,
1621
1614
  "type": "option"
1622
1615
  },
1623
- "title": {
1624
- "name": "title",
1625
- "summary": "Merge request title.",
1616
+ "namespace": {
1617
+ "description": "Defaults to the namespace of the token owner.",
1618
+ "name": "namespace",
1619
+ "summary": "Group or user namespace to create the project in, by id or full path.",
1626
1620
  "hasDynamicHelp": false,
1627
1621
  "multiple": false,
1628
1622
  "type": "option"
1629
1623
  },
1630
1624
  "description": {
1631
1625
  "name": "description",
1632
- "summary": "Merge request description, as Markdown.",
1626
+ "summary": "Project description.",
1633
1627
  "hasDynamicHelp": false,
1634
1628
  "multiple": false,
1635
1629
  "type": "option"
1636
1630
  },
1637
- "draft": {
1638
- "name": "draft",
1639
- "summary": "Open it as a draft.",
1640
- "allowNo": false,
1641
- "type": "boolean"
1631
+ "visibility": {
1632
+ "name": "visibility",
1633
+ "summary": "Who can see the project.",
1634
+ "hasDynamicHelp": false,
1635
+ "multiple": false,
1636
+ "options": [
1637
+ "private",
1638
+ "internal",
1639
+ "public"
1640
+ ],
1641
+ "type": "option"
1642
1642
  },
1643
- "squash": {
1644
- "name": "squash",
1645
- "summary": "Squash the commits when it merges.",
1646
- "allowNo": false,
1647
- "type": "boolean"
1643
+ "default-branch": {
1644
+ "name": "default-branch",
1645
+ "summary": "Name of the default branch.",
1646
+ "hasDynamicHelp": false,
1647
+ "multiple": false,
1648
+ "type": "option"
1648
1649
  },
1649
- "remove-source-branch": {
1650
- "name": "remove-source-branch",
1651
- "summary": "Delete the source branch on merge.",
1650
+ "initialize-with-readme": {
1651
+ "name": "initialize-with-readme",
1652
+ "summary": "Create a first commit holding a README, so the repository is not empty.",
1652
1653
  "allowNo": false,
1653
1654
  "type": "boolean"
1654
1655
  },
1655
- "assignee-id": {
1656
- "name": "assignee-id",
1657
- "summary": "User id to assign. Repeatable.",
1656
+ "topics": {
1657
+ "name": "topics",
1658
+ "summary": "Comma-separated topics to label the project with.",
1658
1659
  "hasDynamicHelp": false,
1659
- "multiple": true,
1660
+ "multiple": false,
1660
1661
  "type": "option"
1661
1662
  },
1662
- "reviewer-id": {
1663
- "name": "reviewer-id",
1664
- "summary": "User id to request review from. Repeatable.",
1663
+ "template": {
1664
+ "name": "template",
1665
+ "summary": "Template to create from: a built-in name, or with --custom-template or --template-group a custom one.",
1665
1666
  "hasDynamicHelp": false,
1666
- "multiple": true,
1667
+ "multiple": false,
1667
1668
  "type": "option"
1668
1669
  },
1669
- "labels": {
1670
- "name": "labels",
1671
- "summary": "Comma-separated labels to apply.",
1670
+ "custom-template": {
1671
+ "name": "custom-template",
1672
+ "summary": "Look --template up among the instance's custom project templates rather than the built-in ones.",
1673
+ "allowNo": false,
1674
+ "type": "boolean"
1675
+ },
1676
+ "template-group": {
1677
+ "name": "template-group",
1678
+ "summary": "Group whose custom project templates --template or --template-project names, by id or full path.",
1672
1679
  "hasDynamicHelp": false,
1673
1680
  "multiple": false,
1674
1681
  "type": "option"
1675
1682
  },
1676
- "milestone-id": {
1677
- "name": "milestone-id",
1678
- "summary": "Milestone id to attach.",
1683
+ "template-project": {
1684
+ "name": "template-project",
1685
+ "summary": "Custom template project to create from, by id or full path. Cannot be combined with --template.",
1679
1686
  "hasDynamicHelp": false,
1680
1687
  "multiple": false,
1681
1688
  "type": "option"
@@ -1700,12 +1707,12 @@
1700
1707
  },
1701
1708
  "hasDynamicHelp": false,
1702
1709
  "hiddenAliases": [],
1703
- "id": "gitlab:mr:create",
1710
+ "id": "gitlab:project:create",
1704
1711
  "pluginAlias": "@simplysf/simply-gitlab",
1705
1712
  "pluginName": "@simplysf/simply-gitlab",
1706
1713
  "pluginType": "core",
1707
1714
  "strict": true,
1708
- "summary": "Open a merge request.",
1715
+ "summary": "Create a project, blank or from a template.",
1709
1716
  "enableJsonFlag": true,
1710
1717
  "isWrite": true,
1711
1718
  "isESM": true,
@@ -1713,27 +1720,27 @@
1713
1720
  "lib",
1714
1721
  "commands",
1715
1722
  "gitlab",
1716
- "mr",
1723
+ "project",
1717
1724
  "create.js"
1718
1725
  ],
1719
1726
  "aliasPermutations": [],
1720
1727
  "permutations": [
1721
- "gitlab:mr:create",
1722
- "mr:gitlab:create",
1723
- "mr:create:gitlab",
1724
- "gitlab:create:mr",
1725
- "create:gitlab:mr",
1726
- "create:mr:gitlab"
1728
+ "gitlab:project:create",
1729
+ "project:gitlab:create",
1730
+ "project:create:gitlab",
1731
+ "gitlab:create:project",
1732
+ "create:gitlab:project",
1733
+ "create:project:gitlab"
1727
1734
  ]
1728
1735
  },
1729
- "gitlab:mr:list": {
1736
+ "gitlab:project:list": {
1730
1737
  "aliases": [],
1731
1738
  "args": {},
1732
- "description": "Defaults to open merge requests, which is what a list is nearly always for; pass --state all to include closed and merged ones. The IID column is the number to pass to the other mr commands — it is per-project, and is not the \"id\" field in the JSON payload.",
1739
+ "description": "Without --search this lists every project the token can reach, newest activity first, which on a large instance is not a useful answer — narrow it with --search or --membership. Use --simple for a much smaller payload when you only need ids and paths.",
1733
1740
  "examples": [
1734
- "<%= config.bin %> <%= command.id %> --project group/project",
1735
- "<%= config.bin %> <%= command.id %> --project group/project --state merged --target-branch main --limit 10",
1736
- "<%= config.bin %> <%= command.id %> --project group/project --author-username someone --json"
1741
+ "<%= config.bin %> <%= command.id %> --membership",
1742
+ "<%= config.bin %> <%= command.id %> --search platform --limit 10",
1743
+ "<%= config.bin %> <%= command.id %> --search platform --simple --json"
1737
1744
  ],
1738
1745
  "flags": {
1739
1746
  "json": {
@@ -1771,90 +1778,48 @@
1771
1778
  "multiple": false,
1772
1779
  "type": "option"
1773
1780
  },
1774
- "project": {
1775
- "char": "p",
1776
- "env": "GITLAB_PROJECT",
1777
- "name": "project",
1778
- "required": true,
1779
- "summary": "Project id, or its full path such as group/subgroup/project.",
1780
- "hasDynamicHelp": false,
1781
- "multiple": false,
1782
- "type": "option"
1783
- },
1784
1781
  "limit": {
1785
1782
  "name": "limit",
1786
- "summary": "Maximum number of merge requests to return across all pages.",
1783
+ "summary": "Maximum number of projects to return across all pages.",
1787
1784
  "default": 20,
1788
1785
  "hasDynamicHelp": false,
1789
1786
  "multiple": false,
1790
1787
  "type": "option"
1791
1788
  },
1792
- "state": {
1793
- "name": "state",
1794
- "summary": "Merge request state to return.",
1795
- "default": "opened",
1796
- "hasDynamicHelp": false,
1797
- "multiple": false,
1798
- "options": [
1799
- "opened",
1800
- "closed",
1801
- "locked",
1802
- "merged",
1803
- "all"
1804
- ],
1805
- "type": "option"
1806
- },
1807
- "source-branch": {
1808
- "name": "source-branch",
1809
- "summary": "Only merge requests from this source branch.",
1810
- "hasDynamicHelp": false,
1811
- "multiple": false,
1812
- "type": "option"
1813
- },
1814
- "target-branch": {
1815
- "name": "target-branch",
1816
- "summary": "Only merge requests into this target branch.",
1817
- "hasDynamicHelp": false,
1818
- "multiple": false,
1819
- "type": "option"
1820
- },
1821
- "author-username": {
1822
- "name": "author-username",
1823
- "summary": "Only merge requests opened by this username.",
1789
+ "search": {
1790
+ "name": "search",
1791
+ "summary": "Match against the project name and path.",
1824
1792
  "hasDynamicHelp": false,
1825
1793
  "multiple": false,
1826
1794
  "type": "option"
1827
1795
  },
1828
- "reviewer-username": {
1829
- "name": "reviewer-username",
1830
- "summary": "Only merge requests this username is reviewing.",
1831
- "hasDynamicHelp": false,
1832
- "multiple": false,
1833
- "type": "option"
1796
+ "membership": {
1797
+ "name": "membership",
1798
+ "summary": "Only projects you are a member of.",
1799
+ "allowNo": false,
1800
+ "type": "boolean"
1834
1801
  },
1835
- "labels": {
1836
- "name": "labels",
1837
- "summary": "Comma-separated labels every result must carry.",
1838
- "hasDynamicHelp": false,
1839
- "multiple": false,
1840
- "type": "option"
1802
+ "owned": {
1803
+ "name": "owned",
1804
+ "summary": "Only projects you own.",
1805
+ "allowNo": false,
1806
+ "type": "boolean"
1841
1807
  },
1842
- "search": {
1843
- "name": "search",
1844
- "summary": "Match against the title and description.",
1845
- "hasDynamicHelp": false,
1846
- "multiple": false,
1847
- "type": "option"
1808
+ "simple": {
1809
+ "name": "simple",
1810
+ "summary": "Return only the core fields, for a much smaller payload.",
1811
+ "allowNo": false,
1812
+ "type": "boolean"
1848
1813
  }
1849
1814
  },
1850
1815
  "hasDynamicHelp": false,
1851
1816
  "hiddenAliases": [],
1852
- "id": "gitlab:mr:list",
1817
+ "id": "gitlab:project:list",
1853
1818
  "pluginAlias": "@simplysf/simply-gitlab",
1854
1819
  "pluginName": "@simplysf/simply-gitlab",
1855
1820
  "pluginType": "core",
1856
1821
  "strict": true,
1857
- "summary": "List merge requests for a project.",
1822
+ "summary": "List projects you can see.",
1858
1823
  "enableJsonFlag": true,
1859
1824
  "isWrite": false,
1860
1825
  "isESM": true,
@@ -1862,28 +1827,26 @@
1862
1827
  "lib",
1863
1828
  "commands",
1864
1829
  "gitlab",
1865
- "mr",
1830
+ "project",
1866
1831
  "list.js"
1867
1832
  ],
1868
1833
  "aliasPermutations": [],
1869
1834
  "permutations": [
1870
- "gitlab:mr:list",
1871
- "mr:gitlab:list",
1872
- "mr:list:gitlab",
1873
- "gitlab:list:mr",
1874
- "list:gitlab:mr",
1875
- "list:mr:gitlab"
1835
+ "gitlab:project:list",
1836
+ "project:gitlab:list",
1837
+ "project:list:gitlab",
1838
+ "gitlab:list:project",
1839
+ "list:gitlab:project",
1840
+ "list:project:gitlab"
1876
1841
  ]
1877
1842
  },
1878
- "gitlab:mr:merge": {
1843
+ "gitlab:project:view": {
1879
1844
  "aliases": [],
1880
1845
  "args": {},
1881
- "description": "Merging cannot be undone by any other command, so this one refuses to send anything without --confirm. Without it, it prints the request it would send and exits 1.\n\nPass --sha with the head you reviewed (the \"Head\" line of mr view): GitLab then refuses if anything was pushed since. --auto-merge merges once checks pass, and on a project with merge trains it joins the train. --skip-merge-train uses GitLab's experimental \"merge immediately without restarting the merge train\", which merges changes the train has not tested against the merge requests queued ahead of it; it requires --sha.\n\nWhen GitLab refuses with a bare 405, the merge request is read back and the reason is named.",
1846
+ "description": "Accepts either the numeric id or the full path. Use --json for the complete, unmodified API payload, which carries far more than the summary below — permissions, statistics, and every feature toggle on the project.",
1882
1847
  "examples": [
1883
- "<%= config.bin %> <%= command.id %> --project group/project --mr 42 --sha <head-sha> --confirm",
1884
- "<%= config.bin %> <%= command.id %> --project group/project --mr 42 --auto-merge --confirm",
1885
- "<%= config.bin %> <%= command.id %> --project group/project --mr 42 --skip-merge-train --sha <head-sha> --confirm",
1886
- "<%= config.bin %> <%= command.id %> --project group/project --mr 42 --squash --dry-run"
1848
+ "<%= config.bin %> <%= command.id %> --project group/project",
1849
+ "<%= config.bin %> <%= command.id %> --project 1234 --json"
1887
1850
  ],
1888
1851
  "flags": {
1889
1852
  "json": {
@@ -1930,115 +1893,43 @@
1930
1893
  "hasDynamicHelp": false,
1931
1894
  "multiple": false,
1932
1895
  "type": "option"
1933
- },
1934
- "dry-run": {
1935
- "name": "dry-run",
1936
- "summary": "Print the request that would be sent and exit without sending it.",
1937
- "allowNo": false,
1938
- "type": "boolean"
1939
- },
1940
- "mr": {
1941
- "name": "mr",
1942
- "required": true,
1943
- "summary": "Merge request iid.",
1944
- "hasDynamicHelp": false,
1945
- "multiple": false,
1946
- "type": "option"
1947
- },
1948
- "sha": {
1949
- "name": "sha",
1950
- "summary": "Full sha of the source branch head you reviewed. Recommended; required with --skip-merge-train.",
1951
- "hasDynamicHelp": false,
1952
- "multiple": false,
1953
- "type": "option"
1954
- },
1955
- "auto-merge": {
1956
- "exclusive": [
1957
- "skip-merge-train"
1958
- ],
1959
- "name": "auto-merge",
1960
- "summary": "Merge when checks pass. On a project with merge trains, this joins the train.",
1961
- "allowNo": false,
1962
- "type": "boolean"
1963
- },
1964
- "skip-merge-train": {
1965
- "exclusive": [
1966
- "auto-merge"
1967
- ],
1968
- "name": "skip-merge-train",
1969
- "summary": "Merge now without restarting the merge train. Experimental in GitLab.",
1970
- "allowNo": false,
1971
- "type": "boolean"
1972
- },
1973
- "squash": {
1974
- "name": "squash",
1975
- "summary": "Squash the commits into one.",
1976
- "allowNo": true,
1977
- "type": "boolean"
1978
- },
1979
- "remove-source-branch": {
1980
- "name": "remove-source-branch",
1981
- "summary": "Delete the source branch after merging.",
1982
- "allowNo": true,
1983
- "type": "boolean"
1984
- },
1985
- "merge-commit-message": {
1986
- "name": "merge-commit-message",
1987
- "summary": "Custom merge commit message.",
1988
- "hasDynamicHelp": false,
1989
- "multiple": false,
1990
- "type": "option"
1991
- },
1992
- "squash-commit-message": {
1993
- "name": "squash-commit-message",
1994
- "summary": "Custom squash commit message.",
1995
- "hasDynamicHelp": false,
1996
- "multiple": false,
1997
- "type": "option"
1998
- },
1999
- "confirm": {
2000
- "name": "confirm",
2001
- "summary": "Send the merge. Without it, nothing is sent.",
2002
- "allowNo": false,
2003
- "type": "boolean"
2004
1896
  }
2005
1897
  },
2006
1898
  "hasDynamicHelp": false,
2007
1899
  "hiddenAliases": [],
2008
- "id": "gitlab:mr:merge",
1900
+ "id": "gitlab:project:view",
2009
1901
  "pluginAlias": "@simplysf/simply-gitlab",
2010
1902
  "pluginName": "@simplysf/simply-gitlab",
2011
1903
  "pluginType": "core",
2012
1904
  "strict": true,
2013
- "summary": "Merge a merge request, or add it to the merge train.",
1905
+ "summary": "Show one project.",
2014
1906
  "enableJsonFlag": true,
2015
- "isWrite": true,
1907
+ "isWrite": false,
2016
1908
  "isESM": true,
2017
1909
  "relativePath": [
2018
1910
  "lib",
2019
1911
  "commands",
2020
1912
  "gitlab",
2021
- "mr",
2022
- "merge.js"
1913
+ "project",
1914
+ "view.js"
2023
1915
  ],
2024
1916
  "aliasPermutations": [],
2025
1917
  "permutations": [
2026
- "gitlab:mr:merge",
2027
- "mr:gitlab:merge",
2028
- "mr:merge:gitlab",
2029
- "gitlab:merge:mr",
2030
- "merge:gitlab:mr",
2031
- "merge:mr:gitlab"
1918
+ "gitlab:project:view",
1919
+ "project:gitlab:view",
1920
+ "project:view:gitlab",
1921
+ "gitlab:view:project",
1922
+ "view:gitlab:project",
1923
+ "view:project:gitlab"
2032
1924
  ]
2033
1925
  },
2034
- "gitlab:mr:update": {
1926
+ "gitlab:mr:create": {
2035
1927
  "aliases": [],
2036
1928
  "args": {},
2037
- "description": "Only the attributes you name are changed, with one exception worth knowing: --labels replaces the whole label set rather than adding to it.\n\nNaming nothing to change is refused rather than sent, because GitLab answers an empty update with a cheerful 200 and an unchanged merge request. --state close and --state reopen do what the buttons of those names do; neither merges anything.",
1929
+ "description": "Both branches must already exist on the project. --draft prefixes the title with \"Draft: \", which is how GitLab itself marks a draft; there is no separate field for it.\n\nAssignees and reviewers are numeric user ids, not usernames — GitLab accepts only ids here. --body or --body-file supplies raw JSON for anything the flags do not cover, such as approval rules. Use --dry-run to see exactly what would be sent.",
2038
1930
  "examples": [
2039
- "<%= config.bin %> <%= command.id %> --project group/project --mr 42 --title \"feat: renamed\"",
2040
- "<%= config.bin %> <%= command.id %> --project group/project --mr 42 --state close",
2041
- "<%= config.bin %> <%= command.id %> --project group/project --mr 42 --labels backend,urgent --dry-run"
1931
+ "<%= config.bin %> <%= command.id %> --project group/project --source-branch feature --target-branch main --title \"feat: the thing\"",
1932
+ "<%= config.bin %> <%= command.id %> --project group/project --source-branch feature --target-branch main --title wip --draft --squash"
2042
1933
  ],
2043
1934
  "flags": {
2044
1935
  "json": {
@@ -2092,75 +1983,69 @@
2092
1983
  "allowNo": false,
2093
1984
  "type": "boolean"
2094
1985
  },
2095
- "mr": {
2096
- "name": "mr",
2097
- "required": true,
2098
- "summary": "Merge request iid.",
1986
+ "source-branch": {
1987
+ "name": "source-branch",
1988
+ "summary": "Branch holding the changes.",
2099
1989
  "hasDynamicHelp": false,
2100
1990
  "multiple": false,
2101
1991
  "type": "option"
2102
1992
  },
2103
- "title": {
2104
- "name": "title",
2105
- "summary": "New title.",
1993
+ "target-branch": {
1994
+ "name": "target-branch",
1995
+ "summary": "Branch the changes are proposed for.",
2106
1996
  "hasDynamicHelp": false,
2107
1997
  "multiple": false,
2108
1998
  "type": "option"
2109
1999
  },
2110
- "description": {
2111
- "name": "description",
2112
- "summary": "New description, as Markdown.",
2000
+ "title": {
2001
+ "name": "title",
2002
+ "summary": "Merge request title.",
2113
2003
  "hasDynamicHelp": false,
2114
2004
  "multiple": false,
2115
2005
  "type": "option"
2116
2006
  },
2117
- "target-branch": {
2118
- "name": "target-branch",
2119
- "summary": "New target branch.",
2007
+ "description": {
2008
+ "name": "description",
2009
+ "summary": "Merge request description, as Markdown.",
2120
2010
  "hasDynamicHelp": false,
2121
2011
  "multiple": false,
2122
2012
  "type": "option"
2123
2013
  },
2124
- "state": {
2125
- "name": "state",
2126
- "summary": "Close or reopen the merge request.",
2127
- "hasDynamicHelp": false,
2128
- "multiple": false,
2129
- "options": [
2130
- "close",
2131
- "reopen"
2132
- ],
2133
- "type": "option"
2014
+ "draft": {
2015
+ "name": "draft",
2016
+ "summary": "Open it as a draft.",
2017
+ "allowNo": false,
2018
+ "type": "boolean"
2134
2019
  },
2135
2020
  "squash": {
2136
2021
  "name": "squash",
2137
2022
  "summary": "Squash the commits when it merges.",
2138
- "allowNo": true,
2023
+ "allowNo": false,
2139
2024
  "type": "boolean"
2140
2025
  },
2141
2026
  "remove-source-branch": {
2142
2027
  "name": "remove-source-branch",
2143
2028
  "summary": "Delete the source branch on merge.",
2144
- "allowNo": true,
2029
+ "allowNo": false,
2145
2030
  "type": "boolean"
2146
2031
  },
2147
2032
  "assignee-id": {
2148
2033
  "name": "assignee-id",
2149
- "summary": "User id to assign, replacing the set. Repeatable.",
2034
+ "summary": "User id to assign. Repeatable.",
2150
2035
  "hasDynamicHelp": false,
2151
2036
  "multiple": true,
2152
2037
  "type": "option"
2153
2038
  },
2154
2039
  "reviewer-id": {
2155
2040
  "name": "reviewer-id",
2156
- "summary": "User id to review, replacing the set. Repeatable.",
2041
+ "summary": "User id to request review from. Repeatable.",
2157
2042
  "hasDynamicHelp": false,
2158
2043
  "multiple": true,
2159
2044
  "type": "option"
2160
2045
  },
2161
2046
  "labels": {
2162
2047
  "name": "labels",
2163
- "summary": "Comma-separated labels, replacing the existing set.",
2048
+ "summary": "Comma-separated labels to apply.",
2164
2049
  "hasDynamicHelp": false,
2165
2050
  "multiple": false,
2166
2051
  "type": "option"
@@ -2192,12 +2077,12 @@
2192
2077
  },
2193
2078
  "hasDynamicHelp": false,
2194
2079
  "hiddenAliases": [],
2195
- "id": "gitlab:mr:update",
2080
+ "id": "gitlab:mr:create",
2196
2081
  "pluginAlias": "@simplysf/simply-gitlab",
2197
2082
  "pluginName": "@simplysf/simply-gitlab",
2198
2083
  "pluginType": "core",
2199
2084
  "strict": true,
2200
- "summary": "Change an existing merge request.",
2085
+ "summary": "Open a merge request.",
2201
2086
  "enableJsonFlag": true,
2202
2087
  "isWrite": true,
2203
2088
  "isESM": true,
@@ -2206,25 +2091,26 @@
2206
2091
  "commands",
2207
2092
  "gitlab",
2208
2093
  "mr",
2209
- "update.js"
2094
+ "create.js"
2210
2095
  ],
2211
2096
  "aliasPermutations": [],
2212
2097
  "permutations": [
2213
- "gitlab:mr:update",
2214
- "mr:gitlab:update",
2215
- "mr:update:gitlab",
2216
- "gitlab:update:mr",
2217
- "update:gitlab:mr",
2218
- "update:mr:gitlab"
2098
+ "gitlab:mr:create",
2099
+ "mr:gitlab:create",
2100
+ "mr:create:gitlab",
2101
+ "gitlab:create:mr",
2102
+ "create:gitlab:mr",
2103
+ "create:mr:gitlab"
2219
2104
  ]
2220
2105
  },
2221
- "gitlab:mr:view": {
2106
+ "gitlab:mr:list": {
2222
2107
  "aliases": [],
2223
2108
  "args": {},
2224
- "description": "Takes the project-scoped iid — the number in the merge request URL — not the instance-wide id. Use --json for the full payload, which carries the pipeline status, approvals, and diff refs the summary below leaves out.",
2109
+ "description": "Defaults to open merge requests, which is what a list is nearly always for; pass --state all to include closed and merged ones. The IID column is the number to pass to the other mr commands — it is per-project, and is not the \"id\" field in the JSON payload.",
2225
2110
  "examples": [
2226
- "<%= config.bin %> <%= command.id %> --project group/project --mr 42",
2227
- "<%= config.bin %> <%= command.id %> --project group/project --mr 42 --json"
2111
+ "<%= config.bin %> <%= command.id %> --project group/project",
2112
+ "<%= config.bin %> <%= command.id %> --project group/project --state merged --target-branch main --limit 10",
2113
+ "<%= config.bin %> <%= command.id %> --project group/project --author-username someone --json"
2228
2114
  ],
2229
2115
  "flags": {
2230
2116
  "json": {
@@ -2272,10 +2158,67 @@
2272
2158
  "multiple": false,
2273
2159
  "type": "option"
2274
2160
  },
2275
- "mr": {
2276
- "name": "mr",
2277
- "required": true,
2278
- "summary": "Merge request iid.",
2161
+ "limit": {
2162
+ "name": "limit",
2163
+ "summary": "Maximum number of merge requests to return across all pages.",
2164
+ "default": 20,
2165
+ "hasDynamicHelp": false,
2166
+ "multiple": false,
2167
+ "type": "option"
2168
+ },
2169
+ "state": {
2170
+ "name": "state",
2171
+ "summary": "Merge request state to return.",
2172
+ "default": "opened",
2173
+ "hasDynamicHelp": false,
2174
+ "multiple": false,
2175
+ "options": [
2176
+ "opened",
2177
+ "closed",
2178
+ "locked",
2179
+ "merged",
2180
+ "all"
2181
+ ],
2182
+ "type": "option"
2183
+ },
2184
+ "source-branch": {
2185
+ "name": "source-branch",
2186
+ "summary": "Only merge requests from this source branch.",
2187
+ "hasDynamicHelp": false,
2188
+ "multiple": false,
2189
+ "type": "option"
2190
+ },
2191
+ "target-branch": {
2192
+ "name": "target-branch",
2193
+ "summary": "Only merge requests into this target branch.",
2194
+ "hasDynamicHelp": false,
2195
+ "multiple": false,
2196
+ "type": "option"
2197
+ },
2198
+ "author-username": {
2199
+ "name": "author-username",
2200
+ "summary": "Only merge requests opened by this username.",
2201
+ "hasDynamicHelp": false,
2202
+ "multiple": false,
2203
+ "type": "option"
2204
+ },
2205
+ "reviewer-username": {
2206
+ "name": "reviewer-username",
2207
+ "summary": "Only merge requests this username is reviewing.",
2208
+ "hasDynamicHelp": false,
2209
+ "multiple": false,
2210
+ "type": "option"
2211
+ },
2212
+ "labels": {
2213
+ "name": "labels",
2214
+ "summary": "Comma-separated labels every result must carry.",
2215
+ "hasDynamicHelp": false,
2216
+ "multiple": false,
2217
+ "type": "option"
2218
+ },
2219
+ "search": {
2220
+ "name": "search",
2221
+ "summary": "Match against the title and description.",
2279
2222
  "hasDynamicHelp": false,
2280
2223
  "multiple": false,
2281
2224
  "type": "option"
@@ -2283,12 +2226,12 @@
2283
2226
  },
2284
2227
  "hasDynamicHelp": false,
2285
2228
  "hiddenAliases": [],
2286
- "id": "gitlab:mr:view",
2229
+ "id": "gitlab:mr:list",
2287
2230
  "pluginAlias": "@simplysf/simply-gitlab",
2288
2231
  "pluginName": "@simplysf/simply-gitlab",
2289
2232
  "pluginType": "core",
2290
2233
  "strict": true,
2291
- "summary": "Show one merge request.",
2234
+ "summary": "List merge requests for a project.",
2292
2235
  "enableJsonFlag": true,
2293
2236
  "isWrite": false,
2294
2237
  "isESM": true,
@@ -2297,28 +2240,27 @@
2297
2240
  "commands",
2298
2241
  "gitlab",
2299
2242
  "mr",
2300
- "view.js"
2243
+ "list.js"
2301
2244
  ],
2302
2245
  "aliasPermutations": [],
2303
2246
  "permutations": [
2304
- "gitlab:mr:view",
2305
- "mr:gitlab:view",
2306
- "mr:view:gitlab",
2307
- "gitlab:view:mr",
2308
- "view:gitlab:mr",
2309
- "view:mr:gitlab"
2247
+ "gitlab:mr:list",
2248
+ "mr:gitlab:list",
2249
+ "mr:list:gitlab",
2250
+ "gitlab:list:mr",
2251
+ "list:gitlab:mr",
2252
+ "list:mr:gitlab"
2310
2253
  ]
2311
2254
  },
2312
- "gitlab:project:create": {
2255
+ "gitlab:mr:merge": {
2313
2256
  "aliases": [],
2314
2257
  "args": {},
2315
- "description": "Creates the project in --namespace, or in the namespace of the token owner when none is given. Give it --name or --path; GitLab derives whichever one is missing.\n\n--template names one of the built-in templates GitLab ships, such as express or rails. To create from a custom template instead, add --custom-template for one the instance administrator registered, --template-group for one in a group, or use --template-project to name the template project itself by id or path — which GitLab prefers, because a name can be ambiguous. Add --template-group to --template-project when the template belongs to a group rather than the instance. Custom templates need a Premium or Ultimate instance.\n\nA template is applied asynchronously: this command returns as soon as the project record exists, with an import status of \"scheduled\", and the files arrive a few seconds later. Check \"project view\" until its import_status reads \"finished\" before writing to the repository. --dry-run prints the exact request body; a namespace or template given as a path is still looked up, so the printed ids are the ones that would be sent.",
2258
+ "description": "Merging cannot be undone by any other command, so this one refuses to send anything without --confirm. Without it, it prints the request it would send and exits 1.\n\nPass --sha with the head you reviewed (the \"Head\" line of mr view): GitLab then refuses if anything was pushed since. --auto-merge merges once checks pass, and on a project with merge trains it joins the train. --skip-merge-train uses GitLab's experimental \"merge immediately without restarting the merge train\", which merges changes the train has not tested against the merge requests queued ahead of it; it requires --sha.\n\nWhen GitLab refuses with a bare 405, the merge request is read back and the reason is named.",
2316
2259
  "examples": [
2317
- "<%= config.bin %> <%= command.id %> --name new-service --namespace platform/apps",
2318
- "<%= config.bin %> <%= command.id %> --name new-service --namespace platform/apps --template express --visibility internal",
2319
- "<%= config.bin %> <%= command.id %> --name new-service --namespace platform/apps --template service-skeleton --template-group platform/templates",
2320
- "<%= config.bin %> <%= command.id %> --path new-service --template-project platform/templates/service-skeleton --dry-run",
2321
- "<%= config.bin %> <%= command.id %> --name new-service --template-project platform/templates/service-skeleton --template-group platform/templates"
2260
+ "<%= config.bin %> <%= command.id %> --project group/project --mr 42 --sha <head-sha> --confirm",
2261
+ "<%= config.bin %> <%= command.id %> --project group/project --mr 42 --auto-merge --confirm",
2262
+ "<%= config.bin %> <%= command.id %> --project group/project --mr 42 --skip-merge-train --sha <head-sha> --confirm",
2263
+ "<%= config.bin %> <%= command.id %> --project group/project --mr 42 --squash --dry-run"
2322
2264
  ],
2323
2265
  "flags": {
2324
2266
  "json": {
@@ -2356,126 +2298,96 @@
2356
2298
  "multiple": false,
2357
2299
  "type": "option"
2358
2300
  },
2301
+ "project": {
2302
+ "char": "p",
2303
+ "env": "GITLAB_PROJECT",
2304
+ "name": "project",
2305
+ "required": true,
2306
+ "summary": "Project id, or its full path such as group/subgroup/project.",
2307
+ "hasDynamicHelp": false,
2308
+ "multiple": false,
2309
+ "type": "option"
2310
+ },
2359
2311
  "dry-run": {
2360
2312
  "name": "dry-run",
2361
2313
  "summary": "Print the request that would be sent and exit without sending it.",
2362
2314
  "allowNo": false,
2363
2315
  "type": "boolean"
2364
2316
  },
2365
- "name": {
2366
- "name": "name",
2367
- "summary": "Project name. The path is derived from it when --path is not given.",
2368
- "hasDynamicHelp": false,
2369
- "multiple": false,
2370
- "type": "option"
2371
- },
2372
- "path": {
2373
- "name": "path",
2374
- "summary": "Repository path, the URL slug. The name is derived from it when --name is not given.",
2375
- "hasDynamicHelp": false,
2376
- "multiple": false,
2377
- "type": "option"
2378
- },
2379
- "namespace": {
2380
- "description": "Defaults to the namespace of the token owner.",
2381
- "name": "namespace",
2382
- "summary": "Group or user namespace to create the project in, by id or full path.",
2317
+ "mr": {
2318
+ "name": "mr",
2319
+ "required": true,
2320
+ "summary": "Merge request iid.",
2383
2321
  "hasDynamicHelp": false,
2384
2322
  "multiple": false,
2385
2323
  "type": "option"
2386
2324
  },
2387
- "description": {
2388
- "name": "description",
2389
- "summary": "Project description.",
2325
+ "sha": {
2326
+ "name": "sha",
2327
+ "summary": "Full sha of the source branch head you reviewed. Recommended; required with --skip-merge-train.",
2390
2328
  "hasDynamicHelp": false,
2391
2329
  "multiple": false,
2392
2330
  "type": "option"
2393
2331
  },
2394
- "visibility": {
2395
- "name": "visibility",
2396
- "summary": "Who can see the project.",
2397
- "hasDynamicHelp": false,
2398
- "multiple": false,
2399
- "options": [
2400
- "private",
2401
- "internal",
2402
- "public"
2332
+ "auto-merge": {
2333
+ "exclusive": [
2334
+ "skip-merge-train"
2403
2335
  ],
2404
- "type": "option"
2405
- },
2406
- "default-branch": {
2407
- "name": "default-branch",
2408
- "summary": "Name of the default branch.",
2409
- "hasDynamicHelp": false,
2410
- "multiple": false,
2411
- "type": "option"
2412
- },
2413
- "initialize-with-readme": {
2414
- "name": "initialize-with-readme",
2415
- "summary": "Create a first commit holding a README, so the repository is not empty.",
2336
+ "name": "auto-merge",
2337
+ "summary": "Merge when checks pass. On a project with merge trains, this joins the train.",
2416
2338
  "allowNo": false,
2417
2339
  "type": "boolean"
2418
2340
  },
2419
- "topics": {
2420
- "name": "topics",
2421
- "summary": "Comma-separated topics to label the project with.",
2422
- "hasDynamicHelp": false,
2423
- "multiple": false,
2424
- "type": "option"
2425
- },
2426
- "template": {
2427
- "name": "template",
2428
- "summary": "Template to create from: a built-in name, or with --custom-template or --template-group a custom one.",
2429
- "hasDynamicHelp": false,
2430
- "multiple": false,
2431
- "type": "option"
2432
- },
2433
- "custom-template": {
2434
- "name": "custom-template",
2435
- "summary": "Look --template up among the instance's custom project templates rather than the built-in ones.",
2341
+ "skip-merge-train": {
2342
+ "exclusive": [
2343
+ "auto-merge"
2344
+ ],
2345
+ "name": "skip-merge-train",
2346
+ "summary": "Merge now without restarting the merge train. Experimental in GitLab.",
2436
2347
  "allowNo": false,
2437
2348
  "type": "boolean"
2438
2349
  },
2439
- "template-group": {
2440
- "name": "template-group",
2441
- "summary": "Group whose custom project templates --template or --template-project names, by id or full path.",
2442
- "hasDynamicHelp": false,
2443
- "multiple": false,
2444
- "type": "option"
2350
+ "squash": {
2351
+ "name": "squash",
2352
+ "summary": "Squash the commits into one.",
2353
+ "allowNo": true,
2354
+ "type": "boolean"
2445
2355
  },
2446
- "template-project": {
2447
- "name": "template-project",
2448
- "summary": "Custom template project to create from, by id or full path. Cannot be combined with --template.",
2449
- "hasDynamicHelp": false,
2450
- "multiple": false,
2451
- "type": "option"
2356
+ "remove-source-branch": {
2357
+ "name": "remove-source-branch",
2358
+ "summary": "Delete the source branch after merging.",
2359
+ "allowNo": true,
2360
+ "type": "boolean"
2452
2361
  },
2453
- "body": {
2454
- "exclusive": [
2455
- "body-file"
2456
- ],
2457
- "name": "body",
2458
- "summary": "Raw JSON request body.",
2362
+ "merge-commit-message": {
2363
+ "name": "merge-commit-message",
2364
+ "summary": "Custom merge commit message.",
2459
2365
  "hasDynamicHelp": false,
2460
2366
  "multiple": false,
2461
2367
  "type": "option"
2462
2368
  },
2463
- "body-file": {
2464
- "name": "body-file",
2465
- "summary": "Path to a file holding the raw JSON request body.",
2369
+ "squash-commit-message": {
2370
+ "name": "squash-commit-message",
2371
+ "summary": "Custom squash commit message.",
2466
2372
  "hasDynamicHelp": false,
2467
2373
  "multiple": false,
2468
2374
  "type": "option"
2375
+ },
2376
+ "confirm": {
2377
+ "name": "confirm",
2378
+ "summary": "Send the merge. Without it, nothing is sent.",
2379
+ "allowNo": false,
2380
+ "type": "boolean"
2469
2381
  }
2470
2382
  },
2471
2383
  "hasDynamicHelp": false,
2472
2384
  "hiddenAliases": [],
2473
- "id": "gitlab:project:create",
2385
+ "id": "gitlab:mr:merge",
2474
2386
  "pluginAlias": "@simplysf/simply-gitlab",
2475
2387
  "pluginName": "@simplysf/simply-gitlab",
2476
2388
  "pluginType": "core",
2477
2389
  "strict": true,
2478
- "summary": "Create a project, blank or from a template.",
2390
+ "summary": "Merge a merge request, or add it to the merge train.",
2479
2391
  "enableJsonFlag": true,
2480
2392
  "isWrite": true,
2481
2393
  "isESM": true,
@@ -2483,27 +2395,27 @@
2483
2395
  "lib",
2484
2396
  "commands",
2485
2397
  "gitlab",
2486
- "project",
2487
- "create.js"
2398
+ "mr",
2399
+ "merge.js"
2488
2400
  ],
2489
2401
  "aliasPermutations": [],
2490
2402
  "permutations": [
2491
- "gitlab:project:create",
2492
- "project:gitlab:create",
2493
- "project:create:gitlab",
2494
- "gitlab:create:project",
2495
- "create:gitlab:project",
2496
- "create:project:gitlab"
2403
+ "gitlab:mr:merge",
2404
+ "mr:gitlab:merge",
2405
+ "mr:merge:gitlab",
2406
+ "gitlab:merge:mr",
2407
+ "merge:gitlab:mr",
2408
+ "merge:mr:gitlab"
2497
2409
  ]
2498
2410
  },
2499
- "gitlab:project:list": {
2411
+ "gitlab:mr:update": {
2500
2412
  "aliases": [],
2501
2413
  "args": {},
2502
- "description": "Without --search this lists every project the token can reach, newest activity first, which on a large instance is not a useful answer — narrow it with --search or --membership. Use --simple for a much smaller payload when you only need ids and paths.",
2414
+ "description": "Only the attributes you name are changed, with one exception worth knowing: --labels replaces the whole label set rather than adding to it.\n\nNaming nothing to change is refused rather than sent, because GitLab answers an empty update with a cheerful 200 and an unchanged merge request. --state close and --state reopen do what the buttons of those names do; neither merges anything.",
2503
2415
  "examples": [
2504
- "<%= config.bin %> <%= command.id %> --membership",
2505
- "<%= config.bin %> <%= command.id %> --search platform --limit 10",
2506
- "<%= config.bin %> <%= command.id %> --search platform --simple --json"
2416
+ "<%= config.bin %> <%= command.id %> --project group/project --mr 42 --title \"feat: renamed\"",
2417
+ "<%= config.bin %> <%= command.id %> --project group/project --mr 42 --state close",
2418
+ "<%= config.bin %> <%= command.id %> --project group/project --mr 42 --labels backend,urgent --dry-run"
2507
2419
  ],
2508
2420
  "flags": {
2509
2421
  "json": {
@@ -2541,75 +2453,155 @@
2541
2453
  "multiple": false,
2542
2454
  "type": "option"
2543
2455
  },
2544
- "limit": {
2545
- "name": "limit",
2546
- "summary": "Maximum number of projects to return across all pages.",
2547
- "default": 20,
2456
+ "project": {
2457
+ "char": "p",
2458
+ "env": "GITLAB_PROJECT",
2459
+ "name": "project",
2460
+ "required": true,
2461
+ "summary": "Project id, or its full path such as group/subgroup/project.",
2548
2462
  "hasDynamicHelp": false,
2549
2463
  "multiple": false,
2550
2464
  "type": "option"
2551
2465
  },
2552
- "search": {
2553
- "name": "search",
2554
- "summary": "Match against the project name and path.",
2466
+ "dry-run": {
2467
+ "name": "dry-run",
2468
+ "summary": "Print the request that would be sent and exit without sending it.",
2469
+ "allowNo": false,
2470
+ "type": "boolean"
2471
+ },
2472
+ "mr": {
2473
+ "name": "mr",
2474
+ "required": true,
2475
+ "summary": "Merge request iid.",
2555
2476
  "hasDynamicHelp": false,
2556
2477
  "multiple": false,
2557
2478
  "type": "option"
2558
2479
  },
2559
- "membership": {
2560
- "name": "membership",
2561
- "summary": "Only projects you are a member of.",
2562
- "allowNo": false,
2563
- "type": "boolean"
2480
+ "title": {
2481
+ "name": "title",
2482
+ "summary": "New title.",
2483
+ "hasDynamicHelp": false,
2484
+ "multiple": false,
2485
+ "type": "option"
2564
2486
  },
2565
- "owned": {
2566
- "name": "owned",
2567
- "summary": "Only projects you own.",
2568
- "allowNo": false,
2487
+ "description": {
2488
+ "name": "description",
2489
+ "summary": "New description, as Markdown.",
2490
+ "hasDynamicHelp": false,
2491
+ "multiple": false,
2492
+ "type": "option"
2493
+ },
2494
+ "target-branch": {
2495
+ "name": "target-branch",
2496
+ "summary": "New target branch.",
2497
+ "hasDynamicHelp": false,
2498
+ "multiple": false,
2499
+ "type": "option"
2500
+ },
2501
+ "state": {
2502
+ "name": "state",
2503
+ "summary": "Close or reopen the merge request.",
2504
+ "hasDynamicHelp": false,
2505
+ "multiple": false,
2506
+ "options": [
2507
+ "close",
2508
+ "reopen"
2509
+ ],
2510
+ "type": "option"
2511
+ },
2512
+ "squash": {
2513
+ "name": "squash",
2514
+ "summary": "Squash the commits when it merges.",
2515
+ "allowNo": true,
2569
2516
  "type": "boolean"
2570
2517
  },
2571
- "simple": {
2572
- "name": "simple",
2573
- "summary": "Return only the core fields, for a much smaller payload.",
2574
- "allowNo": false,
2518
+ "remove-source-branch": {
2519
+ "name": "remove-source-branch",
2520
+ "summary": "Delete the source branch on merge.",
2521
+ "allowNo": true,
2575
2522
  "type": "boolean"
2523
+ },
2524
+ "assignee-id": {
2525
+ "name": "assignee-id",
2526
+ "summary": "User id to assign, replacing the set. Repeatable.",
2527
+ "hasDynamicHelp": false,
2528
+ "multiple": true,
2529
+ "type": "option"
2530
+ },
2531
+ "reviewer-id": {
2532
+ "name": "reviewer-id",
2533
+ "summary": "User id to review, replacing the set. Repeatable.",
2534
+ "hasDynamicHelp": false,
2535
+ "multiple": true,
2536
+ "type": "option"
2537
+ },
2538
+ "labels": {
2539
+ "name": "labels",
2540
+ "summary": "Comma-separated labels, replacing the existing set.",
2541
+ "hasDynamicHelp": false,
2542
+ "multiple": false,
2543
+ "type": "option"
2544
+ },
2545
+ "milestone-id": {
2546
+ "name": "milestone-id",
2547
+ "summary": "Milestone id to attach.",
2548
+ "hasDynamicHelp": false,
2549
+ "multiple": false,
2550
+ "type": "option"
2551
+ },
2552
+ "body": {
2553
+ "exclusive": [
2554
+ "body-file"
2555
+ ],
2556
+ "name": "body",
2557
+ "summary": "Raw JSON request body.",
2558
+ "hasDynamicHelp": false,
2559
+ "multiple": false,
2560
+ "type": "option"
2561
+ },
2562
+ "body-file": {
2563
+ "name": "body-file",
2564
+ "summary": "Path to a file holding the raw JSON request body.",
2565
+ "hasDynamicHelp": false,
2566
+ "multiple": false,
2567
+ "type": "option"
2576
2568
  }
2577
2569
  },
2578
2570
  "hasDynamicHelp": false,
2579
2571
  "hiddenAliases": [],
2580
- "id": "gitlab:project:list",
2572
+ "id": "gitlab:mr:update",
2581
2573
  "pluginAlias": "@simplysf/simply-gitlab",
2582
2574
  "pluginName": "@simplysf/simply-gitlab",
2583
2575
  "pluginType": "core",
2584
2576
  "strict": true,
2585
- "summary": "List projects you can see.",
2577
+ "summary": "Change an existing merge request.",
2586
2578
  "enableJsonFlag": true,
2587
- "isWrite": false,
2579
+ "isWrite": true,
2588
2580
  "isESM": true,
2589
2581
  "relativePath": [
2590
2582
  "lib",
2591
2583
  "commands",
2592
2584
  "gitlab",
2593
- "project",
2594
- "list.js"
2585
+ "mr",
2586
+ "update.js"
2595
2587
  ],
2596
2588
  "aliasPermutations": [],
2597
2589
  "permutations": [
2598
- "gitlab:project:list",
2599
- "project:gitlab:list",
2600
- "project:list:gitlab",
2601
- "gitlab:list:project",
2602
- "list:gitlab:project",
2603
- "list:project:gitlab"
2590
+ "gitlab:mr:update",
2591
+ "mr:gitlab:update",
2592
+ "mr:update:gitlab",
2593
+ "gitlab:update:mr",
2594
+ "update:gitlab:mr",
2595
+ "update:mr:gitlab"
2604
2596
  ]
2605
2597
  },
2606
- "gitlab:project:view": {
2598
+ "gitlab:mr:view": {
2607
2599
  "aliases": [],
2608
2600
  "args": {},
2609
- "description": "Accepts either the numeric id or the full path. Use --json for the complete, unmodified API payload, which carries far more than the summary below — permissions, statistics, and every feature toggle on the project.",
2601
+ "description": "Takes the project-scoped iid — the number in the merge request URL — not the instance-wide id. Use --json for the full payload, which carries the pipeline status, approvals, and diff refs the summary below leaves out.",
2610
2602
  "examples": [
2611
- "<%= config.bin %> <%= command.id %> --project group/project",
2612
- "<%= config.bin %> <%= command.id %> --project 1234 --json"
2603
+ "<%= config.bin %> <%= command.id %> --project group/project --mr 42",
2604
+ "<%= config.bin %> <%= command.id %> --project group/project --mr 42 --json"
2613
2605
  ],
2614
2606
  "flags": {
2615
2607
  "json": {
@@ -2656,16 +2648,24 @@
2656
2648
  "hasDynamicHelp": false,
2657
2649
  "multiple": false,
2658
2650
  "type": "option"
2651
+ },
2652
+ "mr": {
2653
+ "name": "mr",
2654
+ "required": true,
2655
+ "summary": "Merge request iid.",
2656
+ "hasDynamicHelp": false,
2657
+ "multiple": false,
2658
+ "type": "option"
2659
2659
  }
2660
2660
  },
2661
2661
  "hasDynamicHelp": false,
2662
2662
  "hiddenAliases": [],
2663
- "id": "gitlab:project:view",
2663
+ "id": "gitlab:mr:view",
2664
2664
  "pluginAlias": "@simplysf/simply-gitlab",
2665
2665
  "pluginName": "@simplysf/simply-gitlab",
2666
2666
  "pluginType": "core",
2667
2667
  "strict": true,
2668
- "summary": "Show one project.",
2668
+ "summary": "Show one merge request.",
2669
2669
  "enableJsonFlag": true,
2670
2670
  "isWrite": false,
2671
2671
  "isESM": true,
@@ -2673,17 +2673,17 @@
2673
2673
  "lib",
2674
2674
  "commands",
2675
2675
  "gitlab",
2676
- "project",
2676
+ "mr",
2677
2677
  "view.js"
2678
2678
  ],
2679
2679
  "aliasPermutations": [],
2680
2680
  "permutations": [
2681
- "gitlab:project:view",
2682
- "project:gitlab:view",
2683
- "project:view:gitlab",
2684
- "gitlab:view:project",
2685
- "view:gitlab:project",
2686
- "view:project:gitlab"
2681
+ "gitlab:mr:view",
2682
+ "mr:gitlab:view",
2683
+ "mr:view:gitlab",
2684
+ "gitlab:view:mr",
2685
+ "view:gitlab:mr",
2686
+ "view:mr:gitlab"
2687
2687
  ]
2688
2688
  },
2689
2689
  "gitlab:release:list": {
@@ -3546,5 +3546,5 @@
3546
3546
  ]
3547
3547
  }
3548
3548
  },
3549
- "version": "0.9.0"
3549
+ "version": "0.10.0"
3550
3550
  }