mirror of
https://github.com/RayLabsHQ/gitea-mirror.git
synced 2025-12-06 19:46:44 +03:00
fix for repo name collison
This commit is contained in:
@@ -460,6 +460,8 @@ export const mirrorGithubRepoToGitea = async ({
|
|||||||
config,
|
config,
|
||||||
octokit,
|
octokit,
|
||||||
repository,
|
repository,
|
||||||
|
giteaOwner: repoOwner,
|
||||||
|
giteaRepoName: targetRepoName,
|
||||||
});
|
});
|
||||||
console.log(`[Metadata] Successfully mirrored releases for ${repository.name}`);
|
console.log(`[Metadata] Successfully mirrored releases for ${repository.name}`);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -852,6 +854,8 @@ export async function mirrorGitHubRepoToGiteaOrg({
|
|||||||
config,
|
config,
|
||||||
octokit,
|
octokit,
|
||||||
repository,
|
repository,
|
||||||
|
giteaOwner: orgName,
|
||||||
|
giteaRepoName: targetRepoName,
|
||||||
});
|
});
|
||||||
console.log(`[Metadata] Successfully mirrored releases for ${repository.name}`);
|
console.log(`[Metadata] Successfully mirrored releases for ${repository.name}`);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -1378,9 +1382,7 @@ export const mirrorGitRepoIssuesToGitea = async ({
|
|||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
const created = await httpPost(
|
const created = await httpPost(
|
||||||
`${config.giteaConfig!.url}/api/v1/repos/${giteaOwner}/${
|
`${config.giteaConfig!.url}/api/v1/repos/${giteaOwner}/${repoName}/labels`,
|
||||||
repository.name
|
|
||||||
}/labels`,
|
|
||||||
{ name, color: "#ededed" }, // Default color
|
{ name, color: "#ededed" }, // Default color
|
||||||
{
|
{
|
||||||
Authorization: `token ${decryptedConfig.giteaConfig!.token}`,
|
Authorization: `token ${decryptedConfig.giteaConfig!.token}`,
|
||||||
@@ -1415,9 +1417,7 @@ export const mirrorGitRepoIssuesToGitea = async ({
|
|||||||
|
|
||||||
// Create the issue in Gitea
|
// Create the issue in Gitea
|
||||||
const createdIssue = await httpPost(
|
const createdIssue = await httpPost(
|
||||||
`${config.giteaConfig!.url}/api/v1/repos/${giteaOwner}/${
|
`${config.giteaConfig!.url}/api/v1/repos/${giteaOwner}/${repoName}/issues`,
|
||||||
repository.name
|
|
||||||
}/issues`,
|
|
||||||
issuePayload,
|
issuePayload,
|
||||||
{
|
{
|
||||||
Authorization: `token ${decryptedConfig.giteaConfig!.token}`,
|
Authorization: `token ${decryptedConfig.giteaConfig!.token}`,
|
||||||
@@ -1442,9 +1442,7 @@ export const mirrorGitRepoIssuesToGitea = async ({
|
|||||||
comments,
|
comments,
|
||||||
async (comment) => {
|
async (comment) => {
|
||||||
await httpPost(
|
await httpPost(
|
||||||
`${config.giteaConfig!.url}/api/v1/repos/${giteaOwner}/${
|
`${config.giteaConfig!.url}/api/v1/repos/${giteaOwner}/${repoName}/issues/${createdIssue.data.number}/comments`,
|
||||||
repository.name
|
|
||||||
}/issues/${createdIssue.data.number}/comments`,
|
|
||||||
{
|
{
|
||||||
body: `@${comment.user?.login} commented on GitHub:\n\n${comment.body}`,
|
body: `@${comment.user?.login} commented on GitHub:\n\n${comment.body}`,
|
||||||
},
|
},
|
||||||
@@ -1498,10 +1496,14 @@ export async function mirrorGitHubReleasesToGitea({
|
|||||||
octokit,
|
octokit,
|
||||||
repository,
|
repository,
|
||||||
config,
|
config,
|
||||||
|
giteaOwner,
|
||||||
|
giteaRepoName,
|
||||||
}: {
|
}: {
|
||||||
octokit: Octokit;
|
octokit: Octokit;
|
||||||
repository: Repository;
|
repository: Repository;
|
||||||
config: Partial<Config>;
|
config: Partial<Config>;
|
||||||
|
giteaOwner?: string;
|
||||||
|
giteaRepoName?: string;
|
||||||
}) {
|
}) {
|
||||||
if (
|
if (
|
||||||
!config.giteaConfig?.defaultOwner ||
|
!config.giteaConfig?.defaultOwner ||
|
||||||
@@ -1514,17 +1516,16 @@ export async function mirrorGitHubReleasesToGitea({
|
|||||||
// Decrypt config tokens for API usage
|
// Decrypt config tokens for API usage
|
||||||
const decryptedConfig = decryptConfigTokens(config as Config);
|
const decryptedConfig = decryptConfigTokens(config as Config);
|
||||||
|
|
||||||
const repoOwner = await getGiteaRepoOwnerAsync({
|
// Determine target owner/repo in Gitea (supports renamed repos)
|
||||||
config,
|
const repoOwner = giteaOwner || (await getGiteaRepoOwnerAsync({ config, repository }));
|
||||||
repository,
|
const repoName = giteaRepoName || repository.name;
|
||||||
});
|
|
||||||
|
|
||||||
// Verify the repository exists in Gitea before attempting to mirror releases
|
// Verify the repository exists in Gitea before attempting to mirror releases
|
||||||
console.log(`[Releases] Verifying repository ${repository.name} exists at ${repoOwner}`);
|
console.log(`[Releases] Verifying repository ${repoName} exists at ${repoOwner}`);
|
||||||
const repoExists = await isRepoPresentInGitea({
|
const repoExists = await isRepoPresentInGitea({
|
||||||
config,
|
config,
|
||||||
owner: repoOwner,
|
owner: repoOwner,
|
||||||
repoName: repository.name,
|
repoName: repoName,
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!repoExists) {
|
if (!repoExists) {
|
||||||
@@ -1560,7 +1561,7 @@ export async function mirrorGitHubReleasesToGitea({
|
|||||||
try {
|
try {
|
||||||
// Check if release already exists
|
// Check if release already exists
|
||||||
const existingReleasesResponse = await httpGet(
|
const existingReleasesResponse = await httpGet(
|
||||||
`${config.giteaConfig.url}/api/v1/repos/${repoOwner}/${repository.name}/releases/tags/${release.tag_name}`,
|
`${config.giteaConfig.url}/api/v1/repos/${repoOwner}/${repoName}/releases/tags/${release.tag_name}`,
|
||||||
{
|
{
|
||||||
Authorization: `token ${decryptedConfig.giteaConfig.token}`,
|
Authorization: `token ${decryptedConfig.giteaConfig.token}`,
|
||||||
}
|
}
|
||||||
@@ -1577,7 +1578,7 @@ export async function mirrorGitHubReleasesToGitea({
|
|||||||
console.log(`[Releases] Updating existing release ${release.tag_name} with new changelog/title`);
|
console.log(`[Releases] Updating existing release ${release.tag_name} with new changelog/title`);
|
||||||
|
|
||||||
await httpPut(
|
await httpPut(
|
||||||
`${config.giteaConfig.url}/api/v1/repos/${repoOwner}/${repository.name}/releases/${existingRelease.id}`,
|
`${config.giteaConfig.url}/api/v1/repos/${repoOwner}/${repoName}/releases/${existingRelease.id}`,
|
||||||
{
|
{
|
||||||
tag_name: release.tag_name,
|
tag_name: release.tag_name,
|
||||||
target: release.target_commitish,
|
target: release.target_commitish,
|
||||||
@@ -1608,7 +1609,7 @@ export async function mirrorGitHubReleasesToGitea({
|
|||||||
}
|
}
|
||||||
|
|
||||||
const createReleaseResponse = await httpPost(
|
const createReleaseResponse = await httpPost(
|
||||||
`${config.giteaConfig.url}/api/v1/repos/${repoOwner}/${repository.name}/releases`,
|
`${config.giteaConfig.url}/api/v1/repos/${repoOwner}/${repoName}/releases`,
|
||||||
{
|
{
|
||||||
tag_name: release.tag_name,
|
tag_name: release.tag_name,
|
||||||
target: release.target_commitish,
|
target: release.target_commitish,
|
||||||
@@ -1649,7 +1650,7 @@ export async function mirrorGitHubReleasesToGitea({
|
|||||||
formData.append('attachment', new Blob([assetData]), asset.name);
|
formData.append('attachment', new Blob([assetData]), asset.name);
|
||||||
|
|
||||||
const uploadResponse = await fetch(
|
const uploadResponse = await fetch(
|
||||||
`${config.giteaConfig.url}/api/v1/repos/${repoOwner}/${repository.name}/releases/${createReleaseResponse.data.id}/assets?name=${encodeURIComponent(asset.name)}`,
|
`${config.giteaConfig.url}/api/v1/repos/${repoOwner}/${repoName}/releases/${createReleaseResponse.data.id}/assets?name=${encodeURIComponent(asset.name)}`,
|
||||||
{
|
{
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: {
|
headers: {
|
||||||
|
|||||||
Reference in New Issue
Block a user