Skip to content

Commit 59ef714

Browse files
committed
【修改信息】 1. 组织仓库列表数量支持私有仓库 2. 修复我的页面和个人主页仓库数量不一致问题 3. 支持release跳转commit info
1 parent 5053795 commit 59ef714

File tree

9 files changed

+78
-21
lines changed

9 files changed

+78
-21
lines changed

ZLGitHubClient/Podfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ pod 'ZLGitRemoteService', :git => 'https://github.com/ExistOrLive/ZLGitRemoteSer
2222
#pod "ZLGitRemoteService", :path => '../../ZLGitRemoteService'
2323

2424
pod 'ZLBaseExtension', :git => "https://github.com/ExistOrLive/ZLBaseExtension.git", :tag => "1.3.0"
25-
# 'ZLBaseExtension', :path => "../../ZLBaseExtension"
25+
#pod 'ZLBaseExtension', :path => "../../ZLBaseExtension"
2626

2727
pod 'ZLUIUtilities', :git => "https://github.com/ExistOrLive/ZLUIUtilities.git", :tag => "1.3.0"
2828
#pod 'ZLUIUtilities', :path => "../../ZLUIUtilities"

ZLGitHubClient/Podfile.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,7 @@ CHECKOUT OPTIONS:
351351
:git: https://github.com/ExistOrLive/ZLGithubOAuth.git
352352
:tag: 1.3.1
353353
ZLGitRemoteService:
354-
:commit: bf6ff8e5da6a8108360c0002811085751471b6a7
354+
:commit: cf08d6a3970b6b580797d4548d91759b696028ae
355355
:git: https://github.com/ExistOrLive/ZLGitRemoteService.git
356356
ZLUIUtilities:
357357
:git: https://github.com/ExistOrLive/ZLUIUtilities.git
@@ -415,6 +415,6 @@ SPEC CHECKSUMS:
415415
ZLUtilities: cc526fb2d1a47ca55345cc2dc03ed05f11068bf7
416416
ZMMVVM: 92ef04990cd7d0ae5bb3ea9ddf778023bc5c5d9e
417417

418-
PODFILE CHECKSUM: dda5175f944ccf5f49f93404610453a7daafb2ee
418+
PODFILE CHECKSUM: 02f7d71cdf50a85dbc6c1cd9f993df797bc9885a
419419

420420
COCOAPODS: 1.16.2

ZLGitHubClient/ZLGitHubClient/Class/Router/ZLUIRouter.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,14 @@ extension ZLUIRouter {
162162
return self.getVC(key: .RepoInfoController, params: params)
163163
}
164164

165+
static func getCommitInfoViewController(login: String,
166+
repoName: String,
167+
ref: String) -> UIViewController? {
168+
let params = ["login": login,
169+
"repoName": repoName,
170+
"ref": ref]
171+
return self.getVC(key: .CommitInfoController, params: params)
172+
}
165173
}
166174

167175
// MARK: 解析URL

ZLGitHubClient/ZLGitHubClient/Class/UI/ZLReuseView/ZLReleaseTableViewCell/view/ZLReleaseInfoHeaderCell.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ protocol ZLReleaseInfoHeaderCellDataSourceAndDelegate: AnyObject {
4545
func onRepoOwnerAvatarAction()
4646

4747
func onRepoFullNameAction()
48+
49+
func onCommitAction()
4850
}
4951

5052

@@ -199,6 +201,8 @@ class ZLReleaseInfoHeaderCell: UITableViewCell {
199201
let view = UIView()
200202
view.addSubview(commitIcon)
201203
view.addSubview(commitLabel)
204+
let tap = UITapGestureRecognizer(target: self, action: #selector(onCommitInfoClicked))
205+
view.addGestureRecognizer(tap)
202206
commitIcon.snp.makeConstraints { make in
203207
make.left.top.bottom.equalToSuperview()
204208
make.size.equalTo(15)
@@ -257,6 +261,10 @@ extension ZLReleaseInfoHeaderCell {
257261
@objc func onAuthorAvatarButtonClicked(_ button: UIButton) {
258262
delegate?.onAuthorAvatarAction()
259263
}
264+
265+
@objc func onCommitInfoClicked() {
266+
delegate?.onCommitAction()
267+
}
260268
}
261269

262270
extension ZLReleaseInfoHeaderCell: ZMBaseViewUpdatableWithViewData {

ZLGitHubClient/ZLGitHubClient/Class/UI/ZLReuseView/ZLReleaseTableViewCell/viewModel/ZLReleaseInfoHeaderCellData.swift

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@ extension ZLReleaseInfoHeaderCellData: ZLReleaseInfoHeaderCellDataSourceAndDeleg
4141
data?.repository.nameWithOwner ?? ""
4242
}
4343

44+
var repoName: String {
45+
data?.repository.name ?? ""
46+
}
47+
4448
var commitSha: String {
4549
String(data?.tagCommit?.oid.prefix(7) ?? "")
4650
}
@@ -59,6 +63,13 @@ extension ZLReleaseInfoHeaderCellData: ZLReleaseInfoHeaderCellDataSourceAndDeleg
5963
}
6064
}
6165

66+
func onCommitAction() {
67+
if let commitInfoVC = ZLUIRouter.getCommitInfoViewController(login: repoOwnerLogin, repoName: repoName, ref: data?.tagCommit?.oid ?? "") {
68+
commitInfoVC.hidesBottomBarWhenPushed = true
69+
zm_viewController?.navigationController?.pushViewController(commitInfoVC, animated: true)
70+
}
71+
}
72+
6273

6374
var authorLogin: String {
6475
data?.author?.login ?? ""

ZLGitHubClient/ZLGitHubClient/Class/UI/profile/ZLUserAdditionInfoController/ZLUserAdditionInfoController.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import ZMMVVM
1616
var type: ZLUserAdditionInfoType = .repositories // ! 附加信息类型 仓库/代码片段等
1717
var login: String = "" // login
1818
var currentPage: Int = 0 // 当前页号
19+
var isOrg: Bool = false
1920
static let per_page: UInt = 20 // 每页多少记录
2021

2122
@objc init() {
@@ -86,6 +87,7 @@ extension ZLUserAdditionInfoController {
8687
}
8788

8889
ZLUserServiceShared()?.getAdditionInfo(forUser: login,
90+
isOrg: isOrg,
8991
infoType: type,
9092
page: UInt(page),
9193
per_page: Self.per_page,

ZLGitHubClient/ZLGitHubClient/Class/UI/repo/StarRepoViewController/controller/ZLStarRepoViewController.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ extension ZLStarRepoViewController {
6161
let login = ZLViewerServiceShared()?.currentUserLoginName ?? ""
6262

6363
ZLUserServiceShared()?.getAdditionInfo(forUser: login,
64+
isOrg: false,
6465
infoType: .starredRepos,
6566
page: UInt(isLoadNew ? 1 : pageNum) ,
6667
per_page: 20,

ZLGitHubClient/ZLGitHubClient/Class/UI/user/ZLUserOrOrgInfoController/Presenter/ZLUserInfoStateModel.swift

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ protocol ZLUserInfoStateModelDelegate: AnyObject {
1717

1818
func onPinnedRepoLoad(result: Bool, msg: String)
1919

20+
func onOrgRepoInfoLoad()
21+
2022
func onFollowStatusChanged()
2123

2224
func onBlockStatusChanged()
@@ -86,14 +88,14 @@ extension ZLUserInfoStateModel {
8688
// MARK: - Request
8789
extension ZLUserInfoStateModel {
8890

89-
func getUserInfo() {
91+
func getUserOrOrgInfo() {
9092

9193
guard !login.isEmpty else {
9294
self.delegate?.onUserInfoLoad(result: false, msg: "login name is nil")
9395
return
9496
}
9597

96-
let userOrOrgInfo = ZLUserServiceShared()?.getUserInfo(withLoginName: login,
98+
let userOrOrgInfo = ZLUserServiceShared()?.getUserOrOrgInfo(withLoginName: login,
9799
serialNumber: NSString.generateSerialNumber())
98100
{ [weak self] model in
99101

@@ -108,9 +110,11 @@ extension ZLUserInfoStateModel {
108110
self.getBlockStatus()
109111
self.delegate?.onUserInfoLoad(result: true, msg: "")
110112
} else if let model = model.data as? ZLGithubOrgModel {
113+
model.repositories = self.orgModel?.repositories ?? 0
111114
self.infoModel = model
112115
self.isOrg = true
113116
self.getOrgPinnedRepos()
117+
self.getOrgReposInfo()
114118
self.delegate?.onUserInfoLoad(result: true, msg: "")
115119
} else {
116120
self.delegate?.onUserInfoLoad(result: false, msg: "Get User Info Failed ")
@@ -189,6 +193,23 @@ extension ZLUserInfoStateModel {
189193
}
190194
}
191195

196+
/// 更新组织的仓库数量
197+
/** https://docs.github.com/en/organizations/managing-programmatic-access-to-your-organization/limiting-oauth-app-and-github-app-access-requests
198+
* 如果组织的所有者没有授权,oauth app 不能通过 graphql api 访问组织的私有数据,因此这里通过rest api 获取
199+
**/
200+
func getOrgReposInfo() {
201+
ZLUserServiceShared()?.getOrgInfo(withLoginName: login, serialNumber: NSString.generateSerialNumber())
202+
{ [weak self] model in
203+
204+
guard let self = self else { return }
205+
206+
if model.result,let model = model.data as? ZLGithubOrgModel {
207+
self.orgModel?.repositories = model.repositories
208+
self.delegate?.onOrgRepoInfoLoad()
209+
}
210+
}
211+
}
212+
192213

193214
func getFollowStatus() {
194215

ZLGitHubClient/ZLGitHubClient/Class/UI/user/ZLUserOrOrgInfoController/controller/ZLUserOrOrgInfoController.swift

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ class ZLUserOrOrgInfoController: ZMTableViewController {
111111

112112

113113
override func refreshLoadNewData() {
114-
stateModel.getUserInfo()
114+
stateModel.getUserOrOrgInfo()
115115
}
116116
}
117117

@@ -277,23 +277,25 @@ extension ZLUserOrOrgInfoController {
277277
// baseInfo
278278
var itemCellDatas = [ZMBaseTableViewCellViewModel]()
279279

280-
// company
281-
if model.repositories > 0 {
282-
let cellData = ZLCommonTableViewCellDataV3(canClick: true,
283-
title: { ZLLocalizedString(string: "repositories", comment: "")},
284-
info: { "\(model.repositories)" },
285-
cellHeight: 50,
286-
showSeparateLine: true) { [weak self] in
287-
guard let self = self else { return }
288-
289-
let login = self.stateModel.login
290-
if let vc = ZLUIRouter.getVC(key: .UserAdditionInfoController, params: ["login": login, "type": ZLUserAdditionInfoType.repositories.rawValue]) {
291-
vc.hidesBottomBarWhenPushed = true
292-
self.navigationController?.pushViewController(vc, animated: true)
293-
}
280+
// repo
281+
let cellData = ZLCommonTableViewCellDataV3(canClick: true,
282+
title: { ZLLocalizedString(string: "repositories", comment: "")},
283+
info: { [weak self] in
284+
guard let self, let repositories = stateModel.orgModel?.repositories else { return "" }
285+
return repositories > 0 ? "\(repositories)" : ""
286+
},
287+
cellHeight: 50,
288+
showSeparateLine: true) { [weak self] in
289+
guard let self = self else { return }
290+
291+
let login = self.stateModel.login
292+
if let vc = ZLUIRouter.getVC(key: .UserAdditionInfoController, params: ["login": login, "type": ZLUserAdditionInfoType.repositories.rawValue, "isOrg": true]) {
293+
vc.hidesBottomBarWhenPushed = true
294+
self.navigationController?.pushViewController(vc, animated: true)
294295
}
295-
itemCellDatas.append(cellData)
296296
}
297+
itemCellDatas.append(cellData)
298+
297299

298300
// address
299301
if let location = model.location,
@@ -390,6 +392,10 @@ extension ZLUserOrOrgInfoController {
390392
}
391393

392394
extension ZLUserOrOrgInfoController: ZLUserInfoStateModelDelegate {
395+
func onOrgRepoInfoLoad() {
396+
tableView.reloadData()
397+
}
398+
393399
func onUserInfoLoad(result: Bool, msg: String) {
394400
viewStatus = .normal
395401
endRefreshViews()

0 commit comments

Comments
 (0)